BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
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)
 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/4]

MucIdTransform::MucIdTransform ( )

Definition at line 17 of file Muc/MucCalib/src/MucIdTransform.cxx.

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

◆ ~MucIdTransform() [1/4]

MucIdTransform::~MucIdTransform ( )

Definition at line 26 of file Muc/MucCalib/src/MucIdTransform.cxx.

26{ ; }

◆ MucIdTransform() [2/4]

MucIdTransform::MucIdTransform ( )

◆ ~MucIdTransform() [2/4]

MucIdTransform::~MucIdTransform ( )

◆ MucIdTransform() [3/4]

MucIdTransform::MucIdTransform ( )

◆ ~MucIdTransform() [3/4]

MucIdTransform::~MucIdTransform ( )

◆ MucIdTransform() [4/4]

MucIdTransform::MucIdTransform ( )

◆ ~MucIdTransform() [4/4]

MucIdTransform::~MucIdTransform ( )

Member Function Documentation

◆ GetBoxId() [1/4]

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

Definition at line 48 of file Muc/MucCalib/src/MucIdTransform.cxx.

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

Referenced by GetStripId().

◆ GetBoxId() [2/4]

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

◆ GetBoxId() [3/4]

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

◆ GetBoxId() [4/4]

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

◆ GetId() [1/4]

int MucIdTransform::GetId ( )

Definition at line 29 of file Muc/MucCalib/src/MucIdTransform.cxx.

29{ return m_Id; }

◆ GetId() [2/4]

int MucIdTransform::GetId ( )

◆ GetId() [3/4]

int MucIdTransform::GetId ( )

◆ GetId() [4/4]

int MucIdTransform::GetId ( )

◆ GetLayer() [1/4]

int MucIdTransform::GetLayer ( )

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

32{ return m_Layer; }

◆ GetLayer() [2/4]

int MucIdTransform::GetLayer ( )

◆ GetLayer() [3/4]

int MucIdTransform::GetLayer ( )

◆ GetLayer() [4/4]

int MucIdTransform::GetLayer ( )

◆ GetPart() [1/4]

int MucIdTransform::GetPart ( )

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

30{ return m_Part; }

◆ GetPart() [2/4]

int MucIdTransform::GetPart ( )

◆ GetPart() [3/4]

int MucIdTransform::GetPart ( )

◆ GetPart() [4/4]

int MucIdTransform::GetPart ( )

◆ GetSegment() [1/4]

int MucIdTransform::GetSegment ( )

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

31{ return m_Segment; }

◆ GetSegment() [2/4]

int MucIdTransform::GetSegment ( )

◆ GetSegment() [3/4]

int MucIdTransform::GetSegment ( )

◆ GetSegment() [4/4]

int MucIdTransform::GetSegment ( )

◆ GetStrip() [1/4]

int MucIdTransform::GetStrip ( )

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

33{ return m_Strip; }

◆ GetStrip() [2/4]

int MucIdTransform::GetStrip ( )

◆ GetStrip() [3/4]

int MucIdTransform::GetStrip ( )

◆ GetStrip() [4/4]

int MucIdTransform::GetStrip ( )

◆ GetStripId() [1/4]

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

Definition at line 59 of file Muc/MucCalib/src/MucIdTransform.cxx.

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

◆ GetStripId() [2/4]

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

◆ GetStripId() [3/4]

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

◆ GetStripId() [4/4]

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

◆ GetStripMax() [1/4]

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

Definition at line 36 of file Muc/MucCalib/src/MucIdTransform.cxx.

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

◆ GetStripMax() [2/4]

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

◆ GetStripMax() [3/4]

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

◆ GetStripMax() [4/4]

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

◆ Print() [1/4]

void MucIdTransform::Print ( int mode)

Definition at line 203 of file Muc/MucCalib/src/MucIdTransform.cxx.

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

◆ Print() [2/4]

void MucIdTransform::Print ( int )

◆ Print() [3/4]

void MucIdTransform::Print ( int )

◆ Print() [4/4]

void MucIdTransform::Print ( int )

◆ SetBoxPos() [1/4]

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

Definition at line 88 of file Muc/MucCalib/src/MucIdTransform.cxx.

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

◆ SetBoxPos() [2/4]

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

◆ SetBoxPos() [3/4]

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

◆ SetBoxPos() [4/4]

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

◆ SetStripPos() [1/4]

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

Definition at line 127 of file Muc/MucCalib/src/MucIdTransform.cxx.

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

◆ SetStripPos() [2/4]

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

◆ SetStripPos() [3/4]

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

◆ SetStripPos() [4/4]

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

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