BOSS 7.0.8
BESIII Offline Software System
Loading...
Searching...
No Matches
MucStrip Class Reference

#include <MucStrip.h>

+ Inheritance diagram for MucStrip:

Public Member Functions

 MucStrip (int part, int segment, int layer, int id)
 
 MucStrip (const MucStrip &other)
 
MucStripoperator= (const MucStrip &other)
 
virtual ~MucStrip ()
 
int GetType ()
 
double GetCenterLine ()
 
double GetHead ()
 
double GetTail ()
 
double GetPhi ()
 
int GetPadNumber ()
 
- Public Member Functions inherited from MucEntity
 MucEntity (int part, int segment, int layer)
 
 MucEntity (int part, int segment, int layer, int id)
 
 MucEntity (int part, int segment, int layer, int upDown, int id)
 
 MucEntity (int part, int segment, int layer, int upDown, int rpcId, int id)
 
 MucEntity (const MucEntity &other)
 
MucEntityoperator= (const MucEntity &other)
 
virtual ~MucEntity ()
 
int GetPart ()
 
int GetSegment ()
 
int GetLayer ()
 
int GetUpDown ()
 
int GetRpcId ()
 
int GetID ()
 
double GetTheta ()
 
double GetRin ()
 
double GetRout ()
 
double GetRc ()
 
double GetThin ()
 
double GetW ()
 
double GetH ()
 
double GetL ()
 
double GetWu ()
 
double GetWd ()
 
double GetArea ()
 
double GetLocOrgInBes (int i)
 
double GetObjRotToMot (int i)
 
double GetObjOrgInBes (int i)
 
double GetObjOrgInLoc (int i)
 
double * GetLocOrgInBes ()
 
double * GetObjRotToMot ()
 
double * GetObjOrgInLoc ()
 
double * GetObjOrgInBes ()
 
void TransBesToLoc (double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
 
void TransLocToBes (double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
 

Protected Member Functions

virtual void Init ()
 
void SetType ()
 
void SetCenterLine ()
 
void SetHead ()
 
void SetTail ()
 
void SetPhi ()
 
virtual void SetThin ()
 
virtual void SetW ()
 
virtual void SetWu ()
 
virtual void SetWd ()
 
virtual void SetH ()
 
virtual void SetL ()
 
virtual void SetArea ()
 
void SetPadNumber ()
 
void SetEndcapStripInBes ()
 
void SetBarrelStripInLoc ()
 
virtual void SetLocOrgInBes ()
 
virtual void SetObjOrgInBes ()
 
virtual void SetObjOrgInLoc ()
 
- Protected Member Functions inherited from MucEntity
virtual void Init ()
 
virtual void SetTheta ()
 
virtual void SetRin ()
 
virtual void SetRout ()
 
virtual void SetRc ()
 
virtual void SetThin ()
 
virtual void SetW ()
 
virtual void SetH ()
 
virtual void SetL ()
 
virtual void SetWu ()
 
virtual void SetWd ()
 
virtual void SetArea ()
 
virtual void SetLocOrgInBes ()
 
virtual void SetObjRotToMot ()
 
virtual void SetObjOrgInBes ()
 
virtual void SetObjOrgInLoc ()
 
virtual void SetAlignment (double dx, double dy, double dz)
 

Additional Inherited Members

- Protected Attributes inherited from MucEntity
int m_Part
 
int m_Segment
 
int m_Layer
 
int m_UpDown
 
int m_RpcId
 
int m_ID
 
double m_Theta
 
double m_Rin
 
double m_Rout
 
double m_Rc
 
double m_Thin
 
double m_W
 
double m_H
 
double m_L
 
double m_Wu
 
double m_Wd
 
double m_Area
 
double m_LocOrgInBes [3]
 
double m_ObjRotToMot [3]
 
double m_ObjOrgInBes [3]
 
double m_ObjOrgInLoc [3]
 

Detailed Description

Definition at line 32 of file MucStrip.h.

Constructor & Destructor Documentation

◆ MucStrip() [1/2]

MucStrip::MucStrip ( int  part,
int  segment,
int  layer,
int  id 
)

Definition at line 18 of file MucStrip.cxx.

18 : MucEntity( part, segment, layer, id )
19{
21
22// m_MucPadChain = NULL;
23}
virtual void Init()
Definition: MucStrip.cxx:64

◆ MucStrip() [2/2]

MucStrip::MucStrip ( const MucStrip other)

Definition at line 26 of file MucStrip.cxx.

26 : MucEntity( other )
27{
28 m_Type = other.m_Type;
29 m_CenterLine = other.m_CenterLine;
30 m_Head = other.m_Head;
31 m_Tail = other.m_Tail;
32 m_Phi = other.m_Phi;
33
34// m_MucPadChain = other.m_MucPadChain;
35}
Index other(Index i, Index j)
Definition: EvtCyclic3.cc:118

◆ ~MucStrip()

MucStrip::~MucStrip ( )
virtual

Definition at line 57 of file MucStrip.cxx.

58{
59// delete m_MucPadChain;
60 ;
61}

Member Function Documentation

◆ GetCenterLine()

double MucStrip::GetCenterLine ( )

Definition at line 93 of file MucStrip.cxx.

93{ return m_CenterLine; }

◆ GetHead()

double MucStrip::GetHead ( )

Definition at line 94 of file MucStrip.cxx.

94{ return m_Head; }

◆ GetPadNumber()

int MucStrip::GetPadNumber ( )

Definition at line 97 of file MucStrip.cxx.

97{ return m_PadNumber; }

◆ GetPhi()

double MucStrip::GetPhi ( )

Definition at line 96 of file MucStrip.cxx.

96{ return m_Phi; }

◆ GetTail()

double MucStrip::GetTail ( )

Definition at line 95 of file MucStrip.cxx.

95{ return m_Tail; }

◆ GetType()

int MucStrip::GetType ( )

Definition at line 92 of file MucStrip.cxx.

92{ return m_Type; }

Referenced by MucGeoMgr::CreateOnlineStripGeo(), and MucGeoMgr::CreateStrip().

◆ Init()

void MucStrip::Init ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 64 of file MucStrip.cxx.

65{
66 SetType();
67 SetW();
68 SetWu();
69 SetWd();
70 SetCenterLine(); // use strip width
71 SetHead();
72 SetTail();
73 SetPhi();
74
75 SetThin();
76 SetH();
77 SetL();
79
82
85
88}
virtual void SetObjRotToMot()
Definition: MucEntity.cxx:215
virtual void SetWu()
Definition: MucStrip.cxx:294
virtual void SetLocOrgInBes()
Definition: MucStrip.cxx:387
virtual void SetL()
Definition: MucStrip.cxx:312
void SetPadNumber()
Definition: MucStrip.cxx:363
virtual void SetWd()
Definition: MucStrip.cxx:300
virtual void SetThin()
Definition: MucStrip.cxx:236
virtual void SetH()
Definition: MucStrip.cxx:306
void SetEndcapStripInBes()
Definition: MucStrip.cxx:440
void SetCenterLine()
Definition: MucStrip.cxx:128
void SetType()
Definition: MucStrip.cxx:112
void SetBarrelStripInLoc()
Definition: MucStrip.cxx:474
virtual void SetObjOrgInBes()
Definition: MucStrip.cxx:592
virtual void SetW()
Definition: MucStrip.cxx:242
void SetPhi()
Definition: MucStrip.cxx:227
void SetTail()
Definition: MucStrip.cxx:190
void SetHead()
Definition: MucStrip.cxx:160
virtual void SetObjOrgInLoc()
Definition: MucStrip.cxx:606

Referenced by MucStrip().

◆ operator=()

MucStrip & MucStrip::operator= ( const MucStrip other)

Definition at line 38 of file MucStrip.cxx.

39{
40 if( this == &other)
41 return *this;
42
44
45 m_Type = other.m_Type;
46 m_CenterLine = other.m_CenterLine;
47 m_Head = other.m_Head;
48 m_Tail = other.m_Tail;
49 m_Phi = other.m_Phi;
50
51// m_MucPadChain = other.m_MucPadChain;
52
53 return *this;
54}
MucEntity & operator=(const MucEntity &other)
Definition: MucEntity.cxx:92

◆ SetArea()

void MucStrip::SetArea ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 357 of file MucStrip.cxx.

358{
359 m_Area = m_W*m_L/100;
360}
double m_W
Definition: MucEntity.h:102
double m_Area
Definition: MucEntity.h:107
double m_L
Definition: MucEntity.h:104

◆ SetBarrelStripInLoc()

void MucStrip::SetBarrelStripInLoc ( )
protected

Definition at line 474 of file MucStrip.cxx.

475{
476 int j = m_Layer;
477 int n = m_ID;
478
479 int maxStrip = 0;
480 double x, y, z = 0;
481
482 if( m_Type == ZSTR ) maxStrip = B_ZSTR_NUM; // odd layer
483 else if( m_Segment != B_TOP ) maxStrip = B_PHISTR_NUM; // even layer not top segment
484 else maxStrip = B_TOPSTR_NUM; // even layer top segment
485
486 if( m_Segment != B_TOP ) // not top segment
487 {
488 if( m_Type == ZSTR ) // odd layer, ZSTR
489 {
490 // Set x
491 if( n == 0 )
492 x = ( B_BOX_WT[j] - 2*B_BOX_DT[SL_DOWN] + (maxStrip-2)*B_STR_DST[j] + STR_GAP )/4.0;
493 else if( n == (maxStrip-1) )
494 x = ( 2*B_BOX_DT[SL_DOWN] - B_BOX_WT[j] - (maxStrip-2)*B_STR_DST[j] - STR_GAP )/4.0;
495 else
496 x =( ((maxStrip-1) - 2*n) * B_STR_DST[j] )/2.0;
497
498 // Set y
499 y = 0.;
500
501 // Set z
502 z = 0.;
503
504 }
505 else // even layer, phi
506 {
507 // Set x
508 x = 0.;
509
510 // Set y
511 y = 0.;
512
513 // Set Z
514 if( n == 0 )
515 z = -B_BOX_LT/4.0 + B_BOX_DZ[SL_DOWN]/2.0 - B_STR_DST[j]*(B_PHISTR_NUM-2)/4.0;
516 else if( n == (B_PHISTR_NUM - 1) )
517 z = B_BOX_LT/4.0 - B_BOX_DZ[SL_DOWN]/2.0 + B_STR_DST[j]*(B_PHISTR_NUM-2)/4.0;
518 else
519 z = ( 2*n - B_PHISTR_NUM + 1 ) * B_STR_DST[j] / 2.0;
520 }
521
522 } // end not top segment
523 else // top segment
524 {
525 if( m_Type == ZSTR ) // odd layer, z
526 {
527 // Set x
528 if( n == 0 )
529 x = B_BOX_WT[j]/4.0 - B_BOX_DT[SL_DOWN]/2.0 + (maxStrip-2)*B_STR_DST[j]/4.0 + STR_GAP/4.0;
530 else if( n == (maxStrip-1) )
531 x = -B_BOX_WT[j]/4.0 + B_BOX_DT[SL_DOWN]/2.0 - (maxStrip-2)*B_STR_DST[j]/4.0 - STR_GAP/4.0;
532 else
533 x = ( (maxStrip-1) - 2*n ) * B_STR_DST[j] / 2.0;
534
535 // Set y
536 y = 0.;
537
538 // Set z
539 if( (n > (B_ZSTR_NUM/2 - 1 - B_ZSTR_CUT_NUM[j])) && (n < (B_ZSTR_NUM/2 + B_ZSTR_CUT_NUM[j])) ) // be cut
540 z = -( (j==0) ? B_ZSTR_CUT[1] : B_ZSTR_CUT[0] )/2;
541 else // no cut
542 z = 0.;
543 }
544 else // even layer, phi
545 {
546 // Set x
547 if( n < B_PHISTR_CUT_NUM ) // no cut
548 x = 0.;
549 else // be cut
550 {
551 if( n < B_PHISTR_NUM )
552 x = -B_BOX_WT[j]/4.0 - B_PHISTR_CUT/4.0 + B_BOX_DZ[SL_DOWN]/2.0;
553 else
554 x = B_BOX_WT[j]/4.0 + B_PHISTR_CUT/4.0 - B_BOX_DZ[SL_DOWN]/2.0;
555 }
556
557 // Set y
558 y = 0.;
559
560 // Set z
561 if( n < B_PHISTR_NUM )
562 {
563 if( n == 0 )
564 z = -B_BOX_LT/4.0 + B_BOX_DZ[SL_DOWN]/2.0 - B_STR_DST[j]*(B_PHISTR_NUM-2)/4.0;
565 else if( n == (B_PHISTR_NUM - 1) )
566 z = B_BOX_LT/4.0 - B_BOX_DZ[SL_DOWN]/2.0 + B_STR_DST[j]*(B_PHISTR_NUM-2)/4.0;
567 else
568 z = ( 2*n - B_PHISTR_NUM + 1 ) * B_STR_DST[j] / 2.0;
569 }
570 else
571 {
572 if( n == (B_TOPSTR_NUM-1) )
573 z = B_BOX_LT/4.0 - B_BOX_DZ[SL_DOWN]/2.0 + B_STR_DST[j]*(B_PHISTR_NUM-2)/4.0;
574 else
575 z = ( 2*n - 3*B_PHISTR_NUM + 2*B_PHISTR_CUT_NUM + 1 ) * B_STR_DST[j]/2.0;
576 }
577 } // end even
578 } // end top segment
579
580 m_ObjOrgInLoc[0] = x;
581 m_ObjOrgInLoc[1] = y;
582 m_ObjOrgInLoc[2] = z;
583
584 // limit cut
585 for( int i=0; i<3; i++ ) {
586 if( fabs(m_ObjOrgInLoc[i]) < ERR_LIMIT )
587 m_ObjOrgInLoc[i] = 0.;
588 }
589}
const Int_t n
Double_t x[10]
int m_Layer
Definition: MucEntity.h:90
double m_ObjOrgInLoc[3]
Definition: MucEntity.h:119
int m_Segment
Definition: MucEntity.h:89
int m_ID
Definition: MucEntity.h:93
double y[1000]

Referenced by Init().

◆ SetCenterLine()

void MucStrip::SetCenterLine ( )
protected

Definition at line 128 of file MucStrip.cxx.

129{
130 // Base on strips width and structure correlations
131 // Endcap only
132
133 int segFlag = 0;
134
135 if( (m_Layer+1)%2 == 1 ) // 1,3,5,7
136 {
137 if( m_Segment < 2 ) segFlag = 1;
138 else segFlag = -1;
139
140 if( m_ID == 0 ) m_CenterLine = segFlag * (E_GP_DY+E_STRPLN_DA+m_W/2.0); // NO.0
141 else if( m_ID != E_STR_NUM-1 ) // NO.1~62
142 m_CenterLine = segFlag * ( E_XSTR_OFFSET + m_ID*E_STR_DST );
143 else // NO.63 end strip
144 m_CenterLine = segFlag * ( E_XSTR_OFFSET + (E_STR_NUM-2)*E_STR_DST + (E_STR_DST + m_W + STR_GAP)/2);
145 }
146 else // 2,4,6,8
147 {
148 if( m_Segment%3 == 0 ) segFlag = 1;
149 else segFlag = -1;
150
151 if( m_ID == 0 ) m_CenterLine = segFlag * (E_GP_DX+E_STRPLN_DA+m_W/2.0); // NO.0
152 else if(m_ID != E_STR_NUM-1) // NO.1~62
153 m_CenterLine = segFlag * ( E_YSTR_OFFSET + m_ID*E_STR_DST );
154 else // NO.63 end strip
155 m_CenterLine = segFlag * ( E_YSTR_OFFSET + (E_STR_NUM-2)*E_STR_DST + (E_STR_DST + m_W + STR_GAP)/2);
156 }
157}

Referenced by Init().

◆ SetEndcapStripInBes()

void MucStrip::SetEndcapStripInBes ( )
protected

Definition at line 440 of file MucStrip.cxx.

441{
442 double x, y, z;
443
444 // Set x
445 if( (m_Layer+1)%2 == 0 ) // even layer
446 x = m_CenterLine;
447 else // odd layer
448 x = ( m_Head + m_Tail )/2;
449
450 // Set y
451 if( (m_Layer+1)%2 == 0 ) // even layer
452 y = ( m_Head + m_Tail )/2;
453 else // odd layer
454 y = m_CenterLine;
455
456 // Set z
457 z = 0.;
458 for(int i=0; i<m_Layer+1; i++) z += E_AS_TH[i];
459
460 z += m_Layer * AS_GAP;
461 z = ( (E_AS_ZMAX - E_AS_TOTAL_TH + z) + AS_GAP/2.0 ) * cos( m_Part*MUC_PI/2.0 );
462
463 m_ObjOrgInBes[0] = x;
464 m_ObjOrgInBes[1] = y;
465 m_ObjOrgInBes[2] = z;
466
467 // limit cut
468 for( int i=0; i<3; i++ ) {
469 if( fabs(m_ObjOrgInBes[i]) < ERR_LIMIT ) m_ObjOrgInBes[i] = 0.;
470 }
471}
double cos(const BesAngle a)
Definition: BesAngle.h:213
int m_Part
Definition: MucEntity.h:88
double m_ObjOrgInBes[3]
Definition: MucEntity.h:118

Referenced by Init().

◆ SetH()

void MucStrip::SetH ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 306 of file MucStrip.cxx.

307{
308 m_H = STR_TH;
309}
double m_H
Definition: MucEntity.h:103

Referenced by Init().

◆ SetHead()

void MucStrip::SetHead ( )
protected

Definition at line 160 of file MucStrip.cxx.

161{
162 int segFlag = 0;
163
164 // base on strips width and correlations
165 if( m_ID+1 < HEAD_TURN_STR_NUM[m_Layer][0] )
166 m_Head = FIRST_TURN_HEAD[m_Layer][0];
167 else if( m_ID+1 == HEAD_TURN_STR_NUM[m_Layer][0] )
168 m_Head = FIRST_TURN_HEAD[m_Layer][1];
169 else if( (m_ID+1 > HEAD_TURN_STR_NUM[m_Layer][0]) && (m_ID+1 < HEAD_TURN_STR_NUM[m_Layer][1]) )
170 m_Head = FIRST_TURN_HEAD[m_Layer][1] - ( m_ID + 1 - HEAD_TURN_STR_NUM[m_Layer][0] )*E_STR_DST;
171 else if( m_ID+1 >= HEAD_TURN_STR_NUM[m_Layer][1] )
172 m_Head = SECOND_TURN_HEAD[m_Layer%2];
173
174
175 if( (m_Layer+1)%2 == 1 ) // 1,3,5,7
176 {
177 if( m_Segment%3 ==0 ) segFlag = 1;
178 else segFlag = -1;
179 }
180 else // 2,4,6,8
181 {
182 if( m_Segment < 2 ) segFlag = 1;
183 else segFlag = -1;
184 }
185
186 m_Head *= segFlag;
187}
const double SECOND_TURN_HEAD[2]
Definition: MucStrip.h:25
const int HEAD_TURN_STR_NUM[8][2]
Definition: MucStrip.h:22
const double FIRST_TURN_HEAD[8][2]
Definition: MucStrip.h:23

Referenced by Init().

◆ SetL()

void MucStrip::SetL ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 312 of file MucStrip.cxx.

313{
314 if( m_Part==BRID ) // barrel
315 {
316 int ZCUT_HEAD_NUM = B_ZSTR_NUM/2 - B_ZSTR_CUT_NUM[m_Layer] - 1;
317 int ZCUT_TAIL_NUM = B_ZSTR_NUM/2 + B_ZSTR_CUT_NUM[m_Layer];
318
319
320 if( m_Segment != B_TOP ) // not top segment
321 {
322 if( (m_Layer+1)%2 == 1) // odd layer, Z
323 m_L = B_BOX_LT - 2*B_BOX_DZ[SL_DOWN];
324 else // even layer, phi
325 m_L = B_BOX_WT[m_Layer] - 2*B_BOX_DZ[SL_DOWN];
326 }
327 else // top segment
328 {
329 if((m_Layer+1)%2 == 1) // odd layer, z
330 {
331 if( m_ID > ZCUT_HEAD_NUM && m_ID < ZCUT_TAIL_NUM ) // be cut
332 {
333 if( m_Layer == 0 )
334 m_L = B_BOX_LT - 2*B_BOX_DZ[SL_DOWN] - B_ZSTR_CUT[1];
335 else
336 m_L = B_BOX_LT - 2*B_BOX_DZ[SL_DOWN] - B_ZSTR_CUT[0];
337 }
338 else // no cut
339 m_L = B_BOX_LT - 2*B_BOX_DZ[SL_DOWN];
340 }
341 else // even layer, phi
342 {
343 if( m_ID < B_PHISTR_CUT_NUM ) // no cut
344 m_L = B_BOX_WT[m_Layer] - 2*B_BOX_DZ[SL_DOWN];
345 else // be cut
346 m_L = (B_BOX_WT[m_Layer] - 2*B_BOX_DZ[SL_DOWN] - B_PHISTR_CUT)/2;
347 }
348 }
349 }
350 else // endcap
351 {
352 m_L = fabs( m_Head - m_Tail );
353 }
354}

Referenced by Init().

◆ SetLocOrgInBes()

void MucStrip::SetLocOrgInBes ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 387 of file MucStrip.cxx.

388{
389 double x, y, z = 0 ;
390
391 if( m_Part == BRID )
392 {
393 x = ( B_AS_RMIN[m_Layer] - AS_GAP/2.0 ) * cos( m_Segment * ( MUC_PI/4.0 ) );
394 y = ( B_AS_RMIN[m_Layer] - AS_GAP/2.0 ) * sin( m_Segment * ( MUC_PI/4.0 ) );
395 z = 0.;
396
397 } // barrel
398 else
399 {
400 //------------- set x and y --------------------
401 // segment 0 as reference
402 x = (E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[(m_Layer==0)?0:1] + E_GP_DX + E_STRPLN_DA) / 2.0;
403 y = (E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[(m_Layer==0)?0:1] + E_GP_DY + E_STRPLN_DA) / 2.0;
404
405 // x, y signs of coordinate different by segment
406 if( m_Segment == 0 ) { ; }
407 else if ( m_Segment == 1 ) { x = -x; }
408 else if ( m_Segment == 2 ) { x = -x; y = -y; }
409 else { y = -y; }
410
411 //-------------- set z --------------------------
412 for( int i=0; i<m_Layer+1; i++ ) z += E_AS_TH[i];
413
414 z += m_Layer * AS_GAP;
415 z += (E_AS_ZMAX - E_AS_TOTAL_TH) + AS_GAP/2.0;
416 z *= cos( m_Part*MUC_PI/2.0 );
417
418 } // else, endcap
419
420 m_LocOrgInBes[0] = x;
421 m_LocOrgInBes[1] = y;
422 m_LocOrgInBes[2] = z;
423
424 // limit cut
425 for( int i=0; i<3; i++ ) {
426 if( fabs(m_LocOrgInBes[i]) < ERR_LIMIT ) m_LocOrgInBes[i] = 0;
427 }
428}
double sin(const BesAngle a)
Definition: BesAngle.h:210
double m_LocOrgInBes[3]
Definition: MucEntity.h:109

Referenced by Init().

◆ SetObjOrgInBes()

void MucStrip::SetObjOrgInBes ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 592 of file MucStrip.cxx.

593{
594 if( m_Part == BRID )
595 {
597
598 // limit cut
599 for( int i=0; i<3; i++ ) {
600 if( fabs(m_ObjOrgInBes[i]) < ERR_LIMIT ) m_ObjOrgInBes[i] = 0.0;
601 }
602 }
603}
void TransLocToBes(double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
Definition: MucEntity.cxx:232

Referenced by Init().

◆ SetObjOrgInLoc()

void MucStrip::SetObjOrgInLoc ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 606 of file MucStrip.cxx.

607{
608 if( m_Part != BRID )
609 {
611
612 // limit cut
613 for( int i=0; i<3; i++ ) {
614 if( fabs(m_ObjOrgInLoc[i]) < ERR_LIMIT ) m_ObjOrgInLoc[i] = 0.;
615 }
616 }
617}
void TransBesToLoc(double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
Definition: MucEntity.cxx:223

Referenced by Init().

◆ SetPadNumber()

void MucStrip::SetPadNumber ( )
protected

Definition at line 363 of file MucStrip.cxx.

364{
365 int n = 0;
366 double fn = 0;
367
368 if(m_W == 0)
369 {
370 cout<<"Error, strip width = 0!"<<endl;
371 m_PadNumber = 0;
372 }
373 else
374 {
375 fn = (m_L/m_W);
376 n = (int)fn;
377
378 if( (fn - n) > 0.3 )
379 m_PadNumber = n + 1;
380 else
381 m_PadNumber = n;
382 }
383}

Referenced by Init().

◆ SetPhi()

void MucStrip::SetPhi ( )
protected

Definition at line 227 of file MucStrip.cxx.

228{
229 if ( m_Part == BRID ) // barrel
230 m_Phi = B_PHI[m_Segment] * (MUC_PI/4.0);
231 else // endcap , all phi is zer
232 m_Phi = 0.;
233}

Referenced by Init().

◆ SetTail()

void MucStrip::SetTail ( )
protected

Definition at line 190 of file MucStrip.cxx.

191{
192 int segFlag = 0;
193
194 if( (m_Layer+1)%2 == 1 ) // 1,3,5,7
195 {
196 if( m_Segment%3 ==0 ) segFlag = 1;
197 else segFlag = -1;
198
199 if( m_ID+1 < TAIL_TURN_STR_NUM[0] )
200 m_Tail = ODD_TURN_POINT_TAIL[(m_Layer==0)?0:1][0];
201 else if( m_ID+1 == TAIL_TURN_STR_NUM[0] )
202 m_Tail = ODD_TURN_POINT_TAIL[(m_Layer==0)?0:1][1];
203 else if( m_ID+1 > TAIL_TURN_STR_NUM[0] )
204 m_Tail = ODD_TURN_POINT_TAIL[(m_Layer==0)?0:1][1]-( m_ID + 1 - TAIL_TURN_STR_NUM[0] )* E_STR_DST;
205 if( m_ID == E_STR_NUM - 1 )
206 m_Tail = ODD_TURN_POINT_TAIL[(m_Layer==0)?0:1][1]-( m_ID -TAIL_TURN_STR_NUM[0] ) * E_STR_DST - ( E_STR_DST + m_W + STR_GAP )/2;
207 }
208 else // 2,4,6,8
209 {
210 if( m_Segment < 2 ) segFlag = 1;
211 else segFlag = -1;
212
213 if( m_ID+1 < TAIL_TURN_STR_NUM[1] )
214 m_Tail = EVEN_TURN_POINT_TAIL[0];
215 if( m_ID+1 == TAIL_TURN_STR_NUM[1] )
216 m_Tail = EVEN_TURN_POINT_TAIL[1];
217 if( m_ID+1 > TAIL_TURN_STR_NUM[1] )
218 m_Tail = EVEN_TURN_POINT_TAIL[1] - ( m_ID + 1 - TAIL_TURN_STR_NUM[1] ) * E_STR_DST;
219 if( m_ID == E_STR_NUM - 1 )
220 m_Tail = EVEN_TURN_POINT_TAIL[1]-(m_ID - TAIL_TURN_STR_NUM[1]) * E_STR_DST - ( E_STR_DST + m_W + STR_GAP )/2;
221 }
222
223 m_Tail *= segFlag;
224}
const double EVEN_TURN_POINT_TAIL[2]
Definition: MucStrip.h:28
const double ODD_TURN_POINT_TAIL[2][2]
Definition: MucStrip.h:27
const int TAIL_TURN_STR_NUM[2]
Definition: MucStrip.h:26

Referenced by Init().

◆ SetThin()

void MucStrip::SetThin ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 236 of file MucStrip.cxx.

237{
238 m_Thin = STR_TH;
239}
double m_Thin
Definition: MucEntity.h:101

Referenced by Init().

◆ SetType()

void MucStrip::SetType ( )
protected

Definition at line 112 of file MucStrip.cxx.

113{
114 if( m_Part == BRID )
115 {
116 if( (m_Layer+1)%2 == 1 ) m_Type = ZSTR;
117 else m_Type = PHISTR;
118 }
119 else
120 {
121 if( (m_Layer+1)%2 == 1 ) m_Type = XSTR;
122 else m_Type = YSTR;
123 }
124}

Referenced by Init().

◆ SetW()

void MucStrip::SetW ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 242 of file MucStrip.cxx.

243{
244 if( m_Part == BRID )
245 {
246 // Set maximum strip
247 int maxStrip;
248 if( (m_Layer+1)%2 == 1 )
249 maxStrip = B_ZSTR_NUM; // odd layer
250 else if( m_Segment != B_TOP )
251 maxStrip = B_PHISTR_NUM; // even layer not top segment
252 else
253 maxStrip = B_TOPSTR_NUM; // even layer top segment
254
255
256 if( (m_Layer+1)%2 == 1 ) // odd layer, z
257 {
258 if( m_ID > 0 && m_ID < (maxStrip-1)) // not marginal strip
259 m_W = B_STR_DST[m_Layer] - STR_GAP;
260 else // marginal strip
261 m_W = (B_BOX_WT[m_Layer] - 2*B_BOX_DT[SL_DOWN] - (maxStrip-2)*B_STR_DST[m_Layer] - STR_GAP)/2;
262 }
263 else // even layer, phi
264 {
265 if( m_ID >0 && m_ID < (maxStrip-1) ) // not marginal strip
266 m_W = B_STR_DST[m_Layer] - STR_GAP;
267 else // marginal strip
268 m_W = B_BOX_LT/2 - B_BOX_DZ[SL_DOWN] - B_STR_DST[m_Layer]*(B_PHISTR_NUM-2)/2;
269
270 if( (maxStrip == B_TOPSTR_NUM) && (m_ID == (B_PHISTR_NUM - 1)) ) // special marginal strip
271 m_W = B_BOX_LT/2 - B_BOX_DZ[SL_DOWN] - B_STR_DST[m_Layer]*(B_PHISTR_NUM-2)/2;
272 }
273 }
274 else
275 {
276 // Strip0:48;
277 // Strip1~62: 33;
278 // Strip63: L0: 34; L2/4/6: 43; L1/3/5/7: 53
279 if(m_ID ==0 ) m_W = E_FIRST_STR_WT;
280 else if(m_ID != E_STR_NUM-1) m_W = E_STR_WT; // NO.1~62
281 else // NO.63, end strip
282 {
283 if((m_Layer+1)%2!=0) // 0,2,4,6
284 {
285 if(m_Layer==0) m_W = 31;
286 else m_W = 43;
287 }
288 else m_W = 53; // 1,3,5,7
289 }
290 }
291}
const double E_FIRST_STR_WT
Definition: MucStrip.h:29

Referenced by Init().

◆ SetWd()

void MucStrip::SetWd ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 300 of file MucStrip.cxx.

301{
302 m_Wd = m_W;
303}
double m_Wd
Definition: MucEntity.h:106

Referenced by Init().

◆ SetWu()

void MucStrip::SetWu ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 294 of file MucStrip.cxx.

295{
296 m_Wu = m_W;
297}
double m_Wu
Definition: MucEntity.h:105

Referenced by Init().


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