BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MucStrip.cxx
Go to the documentation of this file.
1//------------------------------------------------------------------------------|
2// [File ]: MucStrip.cxx |
3// [Brief ]: Class MucStrip for MUC calibration |
4// [Author]: Xie Yuguang, <ygxie@mail.ihep.ac.cn> |
5// [Date ]: Apil 6, 2005 |
6//------------------------------------------------------------------------------|
7
8#include <cmath>
9#include <fstream>
10#include <iostream>
11
12using namespace std;
13
16
17// Constructor
18MucStrip::MucStrip( int part, int segment, int layer, int id )
19 : MucEntity( part, segment, layer, id ) {
21 // m_MucPadChain = NULL;
22}
23
24// Copy constructor
25MucStrip::MucStrip( const MucStrip& other ) : MucEntity( other ) {
26 m_Type = other.m_Type;
27 m_CenterLine = other.m_CenterLine;
28 m_Head = other.m_Head;
29 m_Tail = other.m_Tail;
30 m_Phi = other.m_Phi;
31
32 // m_MucPadChain = other.m_MucPadChain;
33}
34
35// Operator =
37 if ( this == &other ) return *this;
38
39 MucEntity::operator=( other );
40
41 m_Type = other.m_Type;
42 m_CenterLine = other.m_CenterLine;
43 m_Head = other.m_Head;
44 m_Tail = other.m_Tail;
45 m_Phi = other.m_Phi;
46
47 // m_MucPadChain = other.m_MucPadChain;
48
49 return *this;
50}
51
52// Destructor
54 // delete m_MucPadChain;
55}
56
57// Initialize
59 SetType();
60 SetW();
61 SetWu();
62 SetWd();
63 SetCenterLine(); // use strip width
64 SetHead();
65 SetTail();
66 SetPhi();
67
68 SetThin();
69 SetH();
70 SetL();
72
75
78
81}
82
83// ---------------------------------Get methods ------------------------
84int MucStrip::GetType() { return m_Type; }
85double MucStrip::GetCenterLine() { return m_CenterLine; }
86double MucStrip::GetHead() { return m_Head; }
87double MucStrip::GetTail() { return m_Tail; }
88double MucStrip::GetPhi() { return m_Phi; }
89int MucStrip::GetPadNumber() { return m_PadNumber; }
90
91/*
92MucPadChain* MucStrip::GetPadChain( )
93{
94 if( m_MucPadChain != NULL )
95 return m_MucPadChain;
96 else
97 return ( m_MucPadChain = new MucPadChain( m_Part, m_Segment, m_Layer, m_PadNumber ) );
98}
99
100*/
101
102//-----------------------------------Set methods-------------------------
103// Set strip type(readout direction)
105 if ( m_Part == BRID )
106 {
107 if ( ( m_Layer + 1 ) % 2 == 1 ) m_Type = ZSTR;
108 else m_Type = PHISTR;
109 }
110 else
111 {
112 if ( ( m_Layer + 1 ) % 2 == 1 ) m_Type = XSTR;
113 else m_Type = YSTR;
114 }
115}
116
117// Set x or y of endcap strip certerline in BES coordinate system
119 // Base on strips width and structure correlations
120 // Endcap only
121
122 int segFlag = 0;
123
124 if ( ( m_Layer + 1 ) % 2 == 1 ) // 1,3,5,7
125 {
126 if ( m_Segment < 2 ) segFlag = 1;
127 else segFlag = -1;
128
129 if ( m_ID == 0 ) m_CenterLine = segFlag * ( E_GP_DY + E_STRPLN_DA + m_W / 2.0 ); // NO.0
130 else if ( m_ID != E_STR_NUM - 1 ) // NO.1~62
131 m_CenterLine = segFlag * ( E_XSTR_OFFSET + m_ID * E_STR_DST );
132 else // NO.63 end strip
133 m_CenterLine = segFlag * ( E_XSTR_OFFSET + ( E_STR_NUM - 2 ) * E_STR_DST +
134 ( E_STR_DST + m_W + STR_GAP ) / 2 );
135 }
136 else // 2,4,6,8
137 {
138 if ( m_Segment % 3 == 0 ) segFlag = 1;
139 else segFlag = -1;
140
141 if ( m_ID == 0 ) m_CenterLine = segFlag * ( E_GP_DX + E_STRPLN_DA + m_W / 2.0 ); // NO.0
142 else if ( m_ID != E_STR_NUM - 1 ) // NO.1~62
143 m_CenterLine = segFlag * ( E_YSTR_OFFSET + m_ID * E_STR_DST );
144 else // NO.63 end strip
145 m_CenterLine = segFlag * ( E_YSTR_OFFSET + ( E_STR_NUM - 2 ) * E_STR_DST +
146 ( E_STR_DST + m_W + STR_GAP ) / 2 );
147 }
148}
149
150// Set x and y of the head of endcap strip in BES coordinate system
152 int segFlag = 0;
153
154 // base on strips width and correlations
155 if ( m_ID + 1 < HEAD_TURN_STR_NUM[m_Layer][0] ) m_Head = FIRST_TURN_HEAD[m_Layer][0];
156 else if ( m_ID + 1 == HEAD_TURN_STR_NUM[m_Layer][0] ) m_Head = FIRST_TURN_HEAD[m_Layer][1];
157 else if ( ( m_ID + 1 > HEAD_TURN_STR_NUM[m_Layer][0] ) &&
158 ( m_ID + 1 < HEAD_TURN_STR_NUM[m_Layer][1] ) )
159 m_Head =
160 FIRST_TURN_HEAD[m_Layer][1] - ( m_ID + 1 - HEAD_TURN_STR_NUM[m_Layer][0] ) * E_STR_DST;
161 else if ( m_ID + 1 >= HEAD_TURN_STR_NUM[m_Layer][1] ) m_Head = SECOND_TURN_HEAD[m_Layer % 2];
162
163 if ( ( m_Layer + 1 ) % 2 == 1 ) // 1,3,5,7
164 {
165 if ( m_Segment % 3 == 0 ) segFlag = 1;
166 else segFlag = -1;
167 }
168 else // 2,4,6,8
169 {
170 if ( m_Segment < 2 ) segFlag = 1;
171 else segFlag = -1;
172 }
173
174 m_Head *= segFlag;
175}
176
177// Set x and y of the tail of endcap strip in BES coordinate system
179 int segFlag = 0;
180
181 if ( ( m_Layer + 1 ) % 2 == 1 ) // 1,3,5,7
182 {
183 if ( m_Segment % 3 == 0 ) segFlag = 1;
184 else segFlag = -1;
185
186 if ( m_ID + 1 < TAIL_TURN_STR_NUM[0] )
187 m_Tail = ODD_TURN_POINT_TAIL[( m_Layer == 0 ) ? 0 : 1][0];
188 else if ( m_ID + 1 == TAIL_TURN_STR_NUM[0] )
189 m_Tail = ODD_TURN_POINT_TAIL[( m_Layer == 0 ) ? 0 : 1][1];
190 else if ( m_ID + 1 > TAIL_TURN_STR_NUM[0] )
191 m_Tail = ODD_TURN_POINT_TAIL[( m_Layer == 0 ) ? 0 : 1][1] -
192 ( m_ID + 1 - TAIL_TURN_STR_NUM[0] ) * E_STR_DST;
193 if ( m_ID == E_STR_NUM - 1 )
194 m_Tail = ODD_TURN_POINT_TAIL[( m_Layer == 0 ) ? 0 : 1][1] -
195 ( m_ID - TAIL_TURN_STR_NUM[0] ) * E_STR_DST - ( E_STR_DST + m_W + STR_GAP ) / 2;
196 }
197 else // 2,4,6,8
198 {
199 if ( m_Segment < 2 ) segFlag = 1;
200 else segFlag = -1;
201
202 if ( m_ID + 1 < TAIL_TURN_STR_NUM[1] ) m_Tail = EVEN_TURN_POINT_TAIL[0];
203 if ( m_ID + 1 == TAIL_TURN_STR_NUM[1] ) m_Tail = EVEN_TURN_POINT_TAIL[1];
204 if ( m_ID + 1 > TAIL_TURN_STR_NUM[1] )
205 m_Tail = EVEN_TURN_POINT_TAIL[1] - ( m_ID + 1 - TAIL_TURN_STR_NUM[1] ) * E_STR_DST;
206 if ( m_ID == E_STR_NUM - 1 )
207 m_Tail = EVEN_TURN_POINT_TAIL[1] - ( m_ID - TAIL_TURN_STR_NUM[1] ) * E_STR_DST -
208 ( E_STR_DST + m_W + STR_GAP ) / 2;
209 }
210
211 m_Tail *= segFlag;
212}
213
214// Set inclination angle of local coordinate x axis and global coordinate x axis
216 if ( m_Part == BRID ) // barrel
217 m_Phi = B_PHI[m_Segment] * ( MUC_PI / 4.0 );
218 else // endcap , all phi is zer
219 m_Phi = 0.;
220}
221
222// set strip thickness
223void MucStrip::SetThin() { m_Thin = STR_TH; }
224
225// Set strip width
227 if ( m_Part == BRID )
228 {
229 // Set maximum strip
230 int maxStrip;
231 if ( ( m_Layer + 1 ) % 2 == 1 ) maxStrip = B_ZSTR_NUM; // odd layer
232 else if ( m_Segment != B_TOP ) maxStrip = B_PHISTR_NUM; // even layer not top segment
233 else maxStrip = B_TOPSTR_NUM; // even layer top segment
234
235 if ( ( m_Layer + 1 ) % 2 == 1 ) // odd layer, z
236 {
237 if ( m_ID > 0 && m_ID < ( maxStrip - 1 ) ) // not marginal strip
238 m_W = B_STR_DST[m_Layer] - STR_GAP;
239 else // marginal strip
240 m_W = ( B_BOX_WT[m_Layer] - 2 * B_BOX_DT[SL_DOWN] -
241 ( maxStrip - 2 ) * B_STR_DST[m_Layer] - STR_GAP ) /
242 2;
243 }
244 else // even layer, phi
245 {
246 if ( m_ID > 0 && m_ID < ( maxStrip - 1 ) ) // not marginal strip
247 m_W = B_STR_DST[m_Layer] - STR_GAP;
248 else // marginal strip
249 m_W = B_BOX_LT / 2 - B_BOX_DZ[SL_DOWN] - B_STR_DST[m_Layer] * ( B_PHISTR_NUM - 2 ) / 2;
250
251 if ( ( maxStrip == B_TOPSTR_NUM ) && ( m_ID == ( B_PHISTR_NUM - 1 ) ) ) // special
252 // marginal strip
253 m_W = B_BOX_LT / 2 - B_BOX_DZ[SL_DOWN] - B_STR_DST[m_Layer] * ( B_PHISTR_NUM - 2 ) / 2;
254 }
255 } // End barrel
256 else
257 {
258 // Strip0:48;
259 // Strip1~62: 33;
260 // Strip63: L0: 34; L2/4/6: 43; L1/3/5/7: 53
261 if ( m_ID == 0 ) m_W = E_FIRST_STR_WT;
262 else if ( m_ID != E_STR_NUM - 1 ) m_W = E_STR_WT; // NO.1~62
263 else // NO.63, end strip
264 {
265 if ( ( m_Layer + 1 ) % 2 != 0 ) // 0,2,4,6
266 {
267 if ( m_Layer == 0 ) m_W = 31;
268 else m_W = 43;
269 }
270 else m_W = 53; // 1,3,5,7
271 }
272 }
273}
274
275// Set strip Wu, no use
277
278// Set strip Wd, no use
280
281// Set strip height
282void MucStrip::SetH() { m_H = STR_TH; }
283
284// Set strip length
286 if ( m_Part == BRID ) // barrel
287 {
288 int ZCUT_HEAD_NUM = B_ZSTR_NUM / 2 - B_ZSTR_CUT_NUM[m_Layer] - 1;
289 int ZCUT_TAIL_NUM = B_ZSTR_NUM / 2 + B_ZSTR_CUT_NUM[m_Layer];
290
291 if ( m_Segment != B_TOP ) // not top segment
292 {
293 if ( ( m_Layer + 1 ) % 2 == 1 ) // odd layer, Z
294 m_L = B_BOX_LT - 2 * B_BOX_DZ[SL_DOWN];
295 else // even layer, phi
296 m_L = B_BOX_WT[m_Layer] - 2 * B_BOX_DZ[SL_DOWN];
297 }
298 else // top segment
299 {
300 if ( ( m_Layer + 1 ) % 2 == 1 ) // odd layer, z
301 {
302 if ( m_ID > ZCUT_HEAD_NUM && m_ID < ZCUT_TAIL_NUM ) // be cut
303 {
304 if ( m_Layer == 0 ) m_L = B_BOX_LT - 2 * B_BOX_DZ[SL_DOWN] - B_ZSTR_CUT[1];
305 else m_L = B_BOX_LT - 2 * B_BOX_DZ[SL_DOWN] - B_ZSTR_CUT[0];
306 }
307 else // no cut
308 m_L = B_BOX_LT - 2 * B_BOX_DZ[SL_DOWN];
309 }
310 else // even layer, phi
311 {
312 if ( m_ID < B_PHISTR_CUT_NUM ) // no cut
313 m_L = B_BOX_WT[m_Layer] - 2 * B_BOX_DZ[SL_DOWN];
314 else // be cut
315 m_L = ( B_BOX_WT[m_Layer] - 2 * B_BOX_DZ[SL_DOWN] - B_PHISTR_CUT ) / 2;
316 }
317 } // End top segment
318 }
319 else // endcap
320 m_L = fabs( m_Head - m_Tail );
321}
322
323// Set area cm^2
324void MucStrip::SetArea() { m_Area = m_W * m_L / 100; }
325
326// Set Pad number of strip
328 int n = 0;
329 double fn = 0;
330
331 if ( m_W == 0 )
332 {
333 cout << "Error, strip width = 0!" << endl;
334 m_PadNumber = 0;
335 }
336 else
337 {
338 fn = ( m_L / m_W );
339 n = (int)fn;
340
341 if ( ( fn - n ) > 0.3 ) m_PadNumber = n + 1;
342 else m_PadNumber = n;
343 }
344}
345
346// Set local or temporary local(MucStripPlane) origin coordinates in BES
348 double x, y, z = 0;
349
350 if ( m_Part == BRID )
351 {
352 x = ( B_AS_RMIN[m_Layer] - AS_GAP / 2.0 ) * cos( m_Segment * ( MUC_PI / 4.0 ) );
353 y = ( B_AS_RMIN[m_Layer] - AS_GAP / 2.0 ) * sin( m_Segment * ( MUC_PI / 4.0 ) );
354 z = 0.;
355 } // barrel
356 else
357 {
358 //------------- set x and y --------------------
359 // segment 0 as reference
360 x = ( E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[( m_Layer == 0 ) ? 0 : 1] + E_GP_DX +
361 E_STRPLN_DA ) /
362 2.0;
363 y = ( E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[( m_Layer == 0 ) ? 0 : 1] + E_GP_DY +
364 E_STRPLN_DA ) /
365 2.0;
366
367 // x, y signs of coordinate different by segment
368 if ( m_Segment == 0 ) { ; }
369 else if ( m_Segment == 1 ) { x = -x; }
370 else if ( m_Segment == 2 )
371 {
372 x = -x;
373 y = -y;
374 }
375 else { y = -y; }
376
377 //-------------- set z --------------------------
378 for ( int i = 0; i < m_Layer + 1; i++ ) z += E_AS_TH[i];
379
380 z += m_Layer * AS_GAP;
381 z += ( E_AS_ZMAX - E_AS_TOTAL_TH ) + AS_GAP / 2.0;
382 z *= cos( m_Part * MUC_PI / 2.0 );
383 } // else, endcap
384
385 m_LocOrgInBes[0] = x;
386 m_LocOrgInBes[1] = y;
387 m_LocOrgInBes[2] = z;
388
389 // limit cut
390 for ( int i = 0; i < 3; i++ )
391 if ( fabs( m_LocOrgInBes[i] ) < ERR_LIMIT ) m_LocOrgInBes[i] = 0;
392}
393
394/*
395void MucStrip::SetObjRotToMot()
396{
397 // The x, y and z of strip coordinate system is always parallele with those of strip plane
398 for( int i=0; i<3; i++ )
399 m_ObjRotToMot[i] = 0.0;
400}
401*/
402
403// Set endcap strip origin coordinates in global
405 double x, y, z;
406
407 // Set x
408 if ( ( m_Layer + 1 ) % 2 == 0 ) // even layer
409 x = m_CenterLine;
410 else // odd layer
411 x = ( m_Head + m_Tail ) / 2;
412
413 // Set y
414 if ( ( m_Layer + 1 ) % 2 == 0 ) // even layer
415 y = ( m_Head + m_Tail ) / 2;
416 else // odd layer
417 y = m_CenterLine;
418
419 // Set z
420 z = 0.;
421 for ( int i = 0; i < m_Layer + 1; i++ ) z += E_AS_TH[i];
422
423 z += m_Layer * AS_GAP;
424 z = ( ( E_AS_ZMAX - E_AS_TOTAL_TH + z ) + AS_GAP / 2.0 ) * cos( m_Part * MUC_PI / 2.0 );
425
426 m_ObjOrgInBes[0] = x;
427 m_ObjOrgInBes[1] = y;
428 m_ObjOrgInBes[2] = z;
429
430 // limit cut
431 for ( int i = 0; i < 3; i++ )
432 if ( fabs( m_ObjOrgInBes[i] ) < ERR_LIMIT ) m_ObjOrgInBes[i] = 0.;
433}
434
435// Set x, y and z of barrel strip origin in local or temparory local(MucStripPlane) coordinate
437 int j = m_Layer;
438 int n = m_ID;
439
440 int maxStrip = 0;
441 double x, y, z = 0;
442
443 if ( m_Type == ZSTR ) maxStrip = B_ZSTR_NUM; // odd layer
444 else if ( m_Segment != B_TOP ) maxStrip = B_PHISTR_NUM; // even layer not top segment
445 else maxStrip = B_TOPSTR_NUM; // even layer top segment
446
447 if ( m_Segment != B_TOP ) // not top segment
448 {
449 if ( m_Type == ZSTR ) // odd layer, ZSTR
450 {
451 // Set x
452 if ( n == 0 )
453 x = ( B_BOX_WT[j] - 2 * B_BOX_DT[SL_DOWN] + ( maxStrip - 2 ) * B_STR_DST[j] +
454 STR_GAP ) /
455 4.0;
456 else if ( n == ( maxStrip - 1 ) )
457 x = ( 2 * B_BOX_DT[SL_DOWN] - B_BOX_WT[j] - ( maxStrip - 2 ) * B_STR_DST[j] -
458 STR_GAP ) /
459 4.0;
460 else x = ( ( ( maxStrip - 1 ) - 2 * n ) * B_STR_DST[j] ) / 2.0;
461
462 // Set y
463 y = 0.;
464
465 // Set z
466 z = 0.;
467 }
468 else // even layer, phi
469 {
470 // Set x
471 x = 0.;
472
473 // Set y
474 y = 0.;
475
476 // Set Z
477 if ( n == 0 )
478 z = -B_BOX_LT / 4.0 + B_BOX_DZ[SL_DOWN] / 2.0 -
479 B_STR_DST[j] * ( B_PHISTR_NUM - 2 ) / 4.0;
480 else if ( n == ( B_PHISTR_NUM - 1 ) )
481 z = B_BOX_LT / 4.0 - B_BOX_DZ[SL_DOWN] / 2.0 +
482 B_STR_DST[j] * ( B_PHISTR_NUM - 2 ) / 4.0;
483 else z = ( 2 * n - B_PHISTR_NUM + 1 ) * B_STR_DST[j] / 2.0;
484 }
485 } // end not top segment
486 else // top segment
487 {
488 if ( m_Type == ZSTR ) // odd layer, z
489 {
490 // Set x
491 if ( n == 0 )
492 x = B_BOX_WT[j] / 4.0 - B_BOX_DT[SL_DOWN] / 2.0 +
493 ( maxStrip - 2 ) * B_STR_DST[j] / 4.0 + STR_GAP / 4.0;
494 else if ( n == ( maxStrip - 1 ) )
495 x = -B_BOX_WT[j] / 4.0 + B_BOX_DT[SL_DOWN] / 2.0 -
496 ( maxStrip - 2 ) * B_STR_DST[j] / 4.0 - STR_GAP / 4.0;
497 else x = ( ( maxStrip - 1 ) - 2 * n ) * B_STR_DST[j] / 2.0;
498
499 // Set y
500 y = 0.;
501
502 // Set z
503 if ( ( n > ( B_ZSTR_NUM / 2 - 1 - B_ZSTR_CUT_NUM[j] ) ) &&
504 ( n < ( B_ZSTR_NUM / 2 + B_ZSTR_CUT_NUM[j] ) ) ) // be cut
505 z = -( ( j == 0 ) ? B_ZSTR_CUT[1] : B_ZSTR_CUT[0] ) / 2;
506 else // no cut
507 z = 0.;
508 }
509 else // even layer, phi
510 {
511 // Set x
512 if ( n < B_PHISTR_CUT_NUM ) // no cut
513 x = 0.;
514 else // be cut
515 {
516 if ( n < B_PHISTR_NUM )
517 x = -B_BOX_WT[j] / 4.0 - B_PHISTR_CUT / 4.0 + B_BOX_DZ[SL_DOWN] / 2.0;
518 else x = B_BOX_WT[j] / 4.0 + B_PHISTR_CUT / 4.0 - B_BOX_DZ[SL_DOWN] / 2.0;
519 }
520
521 // Set y
522 y = 0.;
523
524 // Set z
525 if ( n < B_PHISTR_NUM )
526 {
527 if ( n == 0 )
528 z = -B_BOX_LT / 4.0 + B_BOX_DZ[SL_DOWN] / 2.0 -
529 B_STR_DST[j] * ( B_PHISTR_NUM - 2 ) / 4.0;
530 else if ( n == ( B_PHISTR_NUM - 1 ) )
531 z = B_BOX_LT / 4.0 - B_BOX_DZ[SL_DOWN] / 2.0 +
532 B_STR_DST[j] * ( B_PHISTR_NUM - 2 ) / 4.0;
533 else z = ( 2 * n - B_PHISTR_NUM + 1 ) * B_STR_DST[j] / 2.0;
534 }
535 else
536 {
537 if ( n == ( B_TOPSTR_NUM - 1 ) )
538 z = B_BOX_LT / 4.0 - B_BOX_DZ[SL_DOWN] / 2.0 +
539 B_STR_DST[j] * ( B_PHISTR_NUM - 2 ) / 4.0;
540 else z = ( 2 * n - 3 * B_PHISTR_NUM + 2 * B_PHISTR_CUT_NUM + 1 ) * B_STR_DST[j] / 2.0;
541 }
542 } // end even
543 } // end top segment
544
545 m_ObjOrgInLoc[0] = x;
546 m_ObjOrgInLoc[1] = y;
547 m_ObjOrgInLoc[2] = z;
548
549 // limit cut
550 for ( int i = 0; i < 3; i++ )
551 {
552 if ( fabs( m_ObjOrgInLoc[i] ) < ERR_LIMIT ) m_ObjOrgInLoc[i] = 0.;
553 }
554}
555
556// Set strip origin in global coordinates
558 if ( m_Part == BRID )
559 {
561 // limit cut
562 for ( int i = 0; i < 3; i++ )
563 if ( fabs( m_ObjOrgInBes[i] ) < ERR_LIMIT ) m_ObjOrgInBes[i] = 0.0;
564 }
565}
566
567// Set strip local and global coordinates
569 if ( m_Part != BRID )
570 {
572 // limit cut
573 for ( int i = 0; i < 3; i++ )
574 if ( fabs( m_ObjOrgInLoc[i] ) < ERR_LIMIT ) m_ObjOrgInLoc[i] = 0.;
575 }
576}
577
578// END
const Int_t n
const double SECOND_TURN_HEAD[2]
Definition MucStrip.h:26
const double EVEN_TURN_POINT_TAIL[2]
Definition MucStrip.h:29
const int HEAD_TURN_STR_NUM[8][2]
Definition MucStrip.h:21
const double ODD_TURN_POINT_TAIL[2][2]
Definition MucStrip.h:28
const int TAIL_TURN_STR_NUM[2]
Definition MucStrip.h:27
const double FIRST_TURN_HEAD[8][2]
Definition MucStrip.h:23
const double E_FIRST_STR_WT
Definition MucStrip.h:30
virtual void SetObjRotToMot()
MucEntity(int part, int segment, int layer)
Definition MucEntity.cxx:17
double m_W
Definition MucEntity.h:101
double m_Area
Definition MucEntity.h:106
MucEntity & operator=(const MucEntity &other)
Definition MucEntity.cxx:87
double m_Thin
Definition MucEntity.h:100
double m_H
Definition MucEntity.h:102
int m_Layer
Definition MucEntity.h:89
double m_ObjOrgInLoc[3]
Definition MucEntity.h:118
double m_Wd
Definition MucEntity.h:105
void TransBesToLoc(double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
int m_Segment
Definition MucEntity.h:88
int m_Part
Definition MucEntity.h:87
double m_LocOrgInBes[3]
Definition MucEntity.h:108
double m_ObjOrgInBes[3]
Definition MucEntity.h:117
void TransLocToBes(double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
double m_Wu
Definition MucEntity.h:104
double m_L
Definition MucEntity.h:103
double GetTail()
Definition MucStrip.cxx:87
virtual void SetWu()
Definition MucStrip.cxx:276
virtual void SetLocOrgInBes()
Definition MucStrip.cxx:347
int GetType()
Definition MucStrip.cxx:84
MucStrip(int part, int segment, int layer, int id)
Definition MucStrip.cxx:18
double GetHead()
Definition MucStrip.cxx:86
virtual void SetL()
Definition MucStrip.cxx:285
void SetPadNumber()
Definition MucStrip.cxx:327
virtual void SetWd()
Definition MucStrip.cxx:279
virtual void SetThin()
Definition MucStrip.cxx:223
virtual void SetH()
Definition MucStrip.cxx:282
void SetEndcapStripInBes()
Definition MucStrip.cxx:404
double GetPhi()
Definition MucStrip.cxx:88
void SetCenterLine()
Definition MucStrip.cxx:118
void SetType()
Definition MucStrip.cxx:104
virtual void Init()
Definition MucStrip.cxx:58
void SetBarrelStripInLoc()
Definition MucStrip.cxx:436
int GetPadNumber()
Definition MucStrip.cxx:89
virtual void SetObjOrgInBes()
Definition MucStrip.cxx:557
virtual ~MucStrip()
Definition MucStrip.cxx:53
virtual void SetArea()
Definition MucStrip.cxx:324
virtual void SetW()
Definition MucStrip.cxx:226
MucStrip & operator=(const MucStrip &other)
Definition MucStrip.cxx:36
double GetCenterLine()
Definition MucStrip.cxx:85
void SetPhi()
Definition MucStrip.cxx:215
void SetTail()
Definition MucStrip.cxx:178
void SetHead()
Definition MucStrip.cxx:151
virtual void SetObjOrgInLoc()
Definition MucStrip.cxx:568