BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
CalibData::MucIdTransform Class Reference

#include <MucIdTransform.h>

Public Member Functions

 MucIdTransform ()
 ~MucIdTransform ()
int GetId ()
int GetPart ()
int GetSegment ()
int GetLayer ()
int GetStrip ()
int GetStripMax (int part, int segment, int layer)
int GetBoxId (int part, int segment, int layer)
int GetStripId (int part, int segment, int layer, int subid)
bool SetBoxPos (int boxid, int *part, int *segment, int *layer)
bool SetStripPos (int stripid, int *part, int *segment, int *layer, int *subid)
void Print (int)
 MucIdTransform ()
 ~MucIdTransform ()
int GetId ()
int GetPart ()
int GetSegment ()
int GetLayer ()
int GetStrip ()
int GetStripMax (int part, int segment, int layer)
int GetBoxId (int part, int segment, int layer)
int GetStripId (int part, int segment, int layer, int subid)
bool SetBoxPos (int boxid, int *part, int *segment, int *layer)
bool SetStripPos (int stripid, int *part, int *segment, int *layer, int *subid)
void Print (int)
 MucIdTransform ()
 ~MucIdTransform ()
int GetId ()
int GetPart ()
int GetSegment ()
int GetLayer ()
int GetStrip ()
int GetStripMax (int part, int segment, int layer)
int GetBoxId (int part, int segment, int layer)
int GetStripId (int part, int segment, int layer, int subid)
bool SetBoxPos (int boxid, int *part, int *segment, int *layer)
bool SetStripPos (int stripid, int *part, int *segment, int *layer, int *subid)
void Print (int)

Detailed Description

Constructor & Destructor Documentation

◆ MucIdTransform() [1/3]

MucIdTransform::MucIdTransform ( )

Definition at line 18 of file Calibration/CalibData/src/Muc/MucIdTransform.cxx.

18 {
19 m_Id = 0;
20 m_Part = 0;
21 m_Segment = 0;
22 m_Layer = 0;
23 m_Strip = 0;
24 }

◆ ~MucIdTransform() [1/3]

MucIdTransform::~MucIdTransform ( )

Definition at line 27 of file Calibration/CalibData/src/Muc/MucIdTransform.cxx.

27{ ; }

◆ MucIdTransform() [2/3]

CalibData::MucIdTransform::MucIdTransform ( )

◆ ~MucIdTransform() [2/3]

CalibData::MucIdTransform::~MucIdTransform ( )

◆ MucIdTransform() [3/3]

CalibData::MucIdTransform::MucIdTransform ( )

◆ ~MucIdTransform() [3/3]

CalibData::MucIdTransform::~MucIdTransform ( )

Member Function Documentation

◆ GetBoxId() [1/3]

int MucIdTransform::GetBoxId ( int part,
int segment,
int layer )

Definition at line 49 of file Calibration/CalibData/src/Muc/MucIdTransform.cxx.

49 {
50 int boxId = 0;
51 for ( int i = 0; i < part; i++ ) { boxId += BOX_PER_PART[i]; }
52
53 if ( segment == 0 ) boxId += layer;
54 else boxId += ( segment * BOX_PER_SEG[part] + layer );
55
56 return boxId;
57 }

Referenced by GetStripId().

◆ GetBoxId() [2/3]

int CalibData::MucIdTransform::GetBoxId ( int part,
int segment,
int layer )

◆ GetBoxId() [3/3]

int CalibData::MucIdTransform::GetBoxId ( int part,
int segment,
int layer )

◆ GetId() [1/3]

int MucIdTransform::GetId ( )

Definition at line 30 of file Calibration/CalibData/src/Muc/MucIdTransform.cxx.

30{ return m_Id; }

◆ GetId() [2/3]

int CalibData::MucIdTransform::GetId ( )

◆ GetId() [3/3]

int CalibData::MucIdTransform::GetId ( )

◆ GetLayer() [1/3]

int MucIdTransform::GetLayer ( )

Definition at line 33 of file Calibration/CalibData/src/Muc/MucIdTransform.cxx.

33{ return m_Layer; }

◆ GetLayer() [2/3]

int CalibData::MucIdTransform::GetLayer ( )

◆ GetLayer() [3/3]

int CalibData::MucIdTransform::GetLayer ( )

◆ GetPart() [1/3]

int MucIdTransform::GetPart ( )

Definition at line 31 of file Calibration/CalibData/src/Muc/MucIdTransform.cxx.

31{ return m_Part; }

◆ GetPart() [2/3]

int CalibData::MucIdTransform::GetPart ( )

◆ GetPart() [3/3]

int CalibData::MucIdTransform::GetPart ( )

◆ GetSegment() [1/3]

int MucIdTransform::GetSegment ( )

Definition at line 32 of file Calibration/CalibData/src/Muc/MucIdTransform.cxx.

32{ return m_Segment; }

◆ GetSegment() [2/3]

int CalibData::MucIdTransform::GetSegment ( )

◆ GetSegment() [3/3]

int CalibData::MucIdTransform::GetSegment ( )

◆ GetStrip() [1/3]

int MucIdTransform::GetStrip ( )

Definition at line 34 of file Calibration/CalibData/src/Muc/MucIdTransform.cxx.

34{ return m_Strip; }

◆ GetStrip() [2/3]

int CalibData::MucIdTransform::GetStrip ( )

◆ GetStrip() [3/3]

int CalibData::MucIdTransform::GetStrip ( )

◆ GetStripId() [1/3]

int MucIdTransform::GetStripId ( int part,
int segment,
int layer,
int subid )

Definition at line 60 of file Calibration/CalibData/src/Muc/MucIdTransform.cxx.

60 {
61 int strId = 0;
62 int boxId = 0;
63
64 boxId = GetBoxId( part, segment, layer );
65
66 if ( part == EEID ) { strId = boxId * E_STR_NUM + strSubId; }
67 else if ( part == BRID )
68 {
69 strId = STR_PER_PART[0];
70
71 if ( segment > B_TOP ) strId += segment * B_STR_PER_SEG[0] + E_STR_NUM;
72 else strId += segment * B_STR_PER_SEG[0];
73
74 strId += ( ( 1 + layer ) / 2 ) * B_ZSTR_NUM;
75 strId += ( layer / 2 ) * ( ( segment == B_TOP ) ? B_TOPSTR_NUM : B_PHISTR_NUM );
76
77 strId += strSubId;
78 }
79 else
80 {
81 strId = STR_PER_PART[0] + STR_PER_PART[1];
82 strId += ( boxId - BOX_SUM[1] ) * E_STR_NUM + strSubId;
83 }
84
85 return strId;
86 }

◆ GetStripId() [2/3]

int CalibData::MucIdTransform::GetStripId ( int part,
int segment,
int layer,
int subid )

◆ GetStripId() [3/3]

int CalibData::MucIdTransform::GetStripId ( int part,
int segment,
int layer,
int subid )

◆ GetStripMax() [1/3]

int MucIdTransform::GetStripMax ( int part,
int segment,
int layer )

Definition at line 37 of file Calibration/CalibData/src/Muc/MucIdTransform.cxx.

37 {
38 int max = 0;
39
40 if ( part != BRID ) max = E_STR_NUM;
41 else if ( ( layer + 1 ) % 2 == 1 ) max = B_ZSTR_NUM;
42 else if ( segment == B_TOP ) max = B_TOPSTR_NUM;
43 else max = B_PHISTR_NUM;
44
45 return max;
46 }
#define max(a, b)

◆ GetStripMax() [2/3]

int CalibData::MucIdTransform::GetStripMax ( int part,
int segment,
int layer )

◆ GetStripMax() [3/3]

int CalibData::MucIdTransform::GetStripMax ( int part,
int segment,
int layer )

◆ Print() [1/3]

void MucIdTransform::Print ( int mode)

Definition at line 206 of file Calibration/CalibData/src/Muc/MucIdTransform.cxx.

206 {
207 if ( mode == 0 ) // position to id
208 {
209 cout << "prt: " << m_Part << "\tseg: " << m_Segment << "\tlay: " << m_Layer
210 << "\tstr: " << m_Strip << "\tid: " << m_Id << endl;
211 }
212 else // id to position
213 {
214 cout << "id: " << m_Id << "\tprt: " << m_Part << "\tseg: " << m_Segment
215 << "\tlay: " << m_Layer << "\tstr: " << m_Strip << endl;
216 }
217 }

◆ Print() [2/3]

void CalibData::MucIdTransform::Print ( int )

◆ Print() [3/3]

void CalibData::MucIdTransform::Print ( int )

◆ SetBoxPos() [1/3]

bool MucIdTransform::SetBoxPos ( int boxid,
int * part,
int * segment,
int * layer )

Definition at line 89 of file Calibration/CalibData/src/Muc/MucIdTransform.cxx.

89 {
90
91 if ( ( boxId < 0 ) || ( boxId > BOX_MAX - 1 ) )
92 {
93 *part = 0;
94 *segment = 0;
95 *layer = 0;
96 cout << "box id out range:\t" << boxId << "!" << endl;
97 return false;
98 }
99
100 // get part
101 if ( boxId < BOX_SUM[0] ) { *part = 0; }
102 else if ( boxId < BOX_SUM[1] )
103 {
104 *part = 1;
105 boxId -= BOX_SUM[0];
106 }
107 else
108 {
109 *part = 2;
110 boxId -= BOX_SUM[1];
111 }
112
113 // get segment and layer
114 if ( *part == BRID )
115 {
116 *segment = boxId / B_LAY_NUM;
117 *layer = boxId % B_LAY_NUM;
118 }
119 else
120 {
121 *segment = boxId / E_LAY_NUM;
122 *layer = boxId % E_LAY_NUM;
123 }
124
125 return true;
126 }

◆ SetBoxPos() [2/3]

bool CalibData::MucIdTransform::SetBoxPos ( int boxid,
int * part,
int * segment,
int * layer )

◆ SetBoxPos() [3/3]

bool CalibData::MucIdTransform::SetBoxPos ( int boxid,
int * part,
int * segment,
int * layer )

◆ SetStripPos() [1/3]

bool MucIdTransform::SetStripPos ( int stripid,
int * part,
int * segment,
int * layer,
int * subid )

Definition at line 129 of file Calibration/CalibData/src/Muc/MucIdTransform.cxx.

130 {
131 if ( ( stripId < 0 ) || ( stripId > STRIP_MAX - 1 ) )
132 {
133 *part = 0;
134 *segment = 0;
135 *layer = 0;
136 *strSubId = 0;
137 cout << "strip id out range:\t" << stripId << "!" << endl;
138 return false;
139 }
140
141 // get part
142 if ( stripId < STR_SUM[0] ) { *part = 0; }
143 else if ( stripId < STR_SUM[1] )
144 {
145 *part = 1;
146 stripId -= STR_SUM[0];
147 }
148 else
149 {
150 *part = 2;
151 stripId -= STR_SUM[1];
152 }
153
154 // get segment and layer
155 if ( *part == BRID )
156 {
157 int temp = 0;
158 if ( stripId >= 2 * B_STR_PER_SEG[0] &&
159 stripId < 2 * B_STR_PER_SEG[0] + B_STR_PER_SEG[1] )
160 {
161 // get segment
162 *segment = B_TOP;
163
164 stripId -= 2 * B_STR_PER_SEG[0];
165 temp = stripId % ( B_ZSTR_NUM + B_TOPSTR_NUM );
166
167 // get layer
168 if ( temp < B_ZSTR_NUM ) *layer = 2 * ( stripId / ( B_ZSTR_NUM + B_TOPSTR_NUM ) );
169 else *layer = 2 * ( stripId / ( B_ZSTR_NUM + B_TOPSTR_NUM ) ) + 1;
170
171 // get strip
172 if ( temp < B_ZSTR_NUM ) *strSubId = temp;
173 else *strSubId = temp - B_ZSTR_NUM;
174
175 } // top segment
176 else
177 {
178 if ( stripId >= 2 * B_STR_PER_SEG[0] + B_STR_PER_SEG[1] ) stripId -= E_STR_NUM;
179
180 // get segment
181 *segment = stripId / B_STR_PER_SEG[0];
182
183 stripId %= B_STR_PER_SEG[0];
184 temp = stripId % ( B_ZSTR_NUM + B_PHISTR_NUM );
185
186 // get layer
187 if ( temp < B_ZSTR_NUM ) *layer = 2 * ( stripId / ( B_ZSTR_NUM + B_PHISTR_NUM ) );
188 else *layer = 2 * ( stripId / ( B_ZSTR_NUM + B_PHISTR_NUM ) ) + 1;
189
190 // get strip
191 if ( temp < B_ZSTR_NUM ) *strSubId = temp;
192 else *strSubId = temp - B_ZSTR_NUM;
193 }
194 } // barrel
195 else
196 {
197 *strSubId = stripId % E_STR_NUM;
198 *layer = ( stripId / E_STR_NUM ) % E_LAY_NUM;
199 *segment = ( stripId / E_STR_NUM ) / E_LAY_NUM;
200 }
201
202 return true;
203 }
const int STRIP_MAX

◆ SetStripPos() [2/3]

bool CalibData::MucIdTransform::SetStripPos ( int stripid,
int * part,
int * segment,
int * layer,
int * subid )

◆ SetStripPos() [3/3]

bool CalibData::MucIdTransform::SetStripPos ( int stripid,
int * part,
int * segment,
int * layer,
int * subid )

The documentation for this class was generated from the following files: