#include <MucStrip.h>
Inheritance diagram for MucStrip:
Public Member Functions | |
double | GetArea () |
double | GetArea () |
double | GetCenterLine () |
double | GetCenterLine () |
double | GetH () |
double | GetH () |
double | GetHead () |
double | GetHead () |
int | GetID () |
int | GetID () |
double | GetL () |
double | GetL () |
int | GetLayer () |
int | GetLayer () |
double * | GetLocOrgInBes () |
double | GetLocOrgInBes (int i) |
double * | GetLocOrgInBes () |
double | GetLocOrgInBes (int i) |
double * | GetObjOrgInBes () |
double | GetObjOrgInBes (int i) |
double * | GetObjOrgInBes () |
double | GetObjOrgInBes (int i) |
double * | GetObjOrgInLoc () |
double | GetObjOrgInLoc (int i) |
double * | GetObjOrgInLoc () |
double | GetObjOrgInLoc (int i) |
double * | GetObjRotToMot () |
double | GetObjRotToMot (int i) |
double * | GetObjRotToMot () |
double | GetObjRotToMot (int i) |
int | GetPadNumber () |
int | GetPadNumber () |
int | GetPart () |
int | GetPart () |
double | GetPhi () |
double | GetPhi () |
double | GetRc () |
double | GetRc () |
double | GetRin () |
double | GetRin () |
double | GetRout () |
double | GetRout () |
int | GetRpcId () |
int | GetRpcId () |
int | GetSegment () |
int | GetSegment () |
double | GetTail () |
double | GetTail () |
double | GetTheta () |
double | GetTheta () |
double | GetThin () |
double | GetThin () |
int | GetType () |
int | GetType () |
int | GetUpDown () |
int | GetUpDown () |
double | GetW () |
double | GetW () |
double | GetWd () |
double | GetWd () |
double | GetWu () |
double | GetWu () |
MucStrip (const MucStrip &other) | |
MucStrip (int part, int segment, int layer, int id) | |
MucStrip (const MucStrip &other) | |
MucStrip (int part, int segment, int layer, int id) | |
MucStrip & | operator= (const MucStrip &other) |
MucStrip & | operator= (const MucStrip &other) |
void | TransBesToLoc (double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z) |
void | TransBesToLoc (double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z) |
void | TransLocToBes (double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z) |
void | TransLocToBes (double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z) |
virtual | ~MucStrip () |
virtual | ~MucStrip () |
Protected Member Functions | |
virtual void | Init () |
virtual void | Init () |
virtual void | SetAlignment (double dx, double dy, double dz) |
virtual void | SetAlignment (double dx, double dy, double dz) |
virtual void | SetArea () |
virtual void | SetArea () |
void | SetBarrelStripInLoc () |
void | SetBarrelStripInLoc () |
void | SetCenterLine () |
void | SetCenterLine () |
void | SetEndcapStripInBes () |
void | SetEndcapStripInBes () |
virtual void | SetH () |
virtual void | SetH () |
void | SetHead () |
void | SetHead () |
virtual void | SetL () |
virtual void | SetL () |
virtual void | SetLocOrgInBes () |
virtual void | SetLocOrgInBes () |
virtual void | SetObjOrgInBes () |
virtual void | SetObjOrgInBes () |
virtual void | SetObjOrgInLoc () |
virtual void | SetObjOrgInLoc () |
virtual void | SetObjRotToMot () |
virtual void | SetObjRotToMot () |
void | SetPadNumber () |
void | SetPadNumber () |
void | SetPhi () |
void | SetPhi () |
virtual void | SetRc () |
virtual void | SetRc () |
virtual void | SetRin () |
virtual void | SetRin () |
virtual void | SetRout () |
virtual void | SetRout () |
void | SetTail () |
void | SetTail () |
virtual void | SetTheta () |
virtual void | SetTheta () |
virtual void | SetThin () |
virtual void | SetThin () |
void | SetType () |
void | SetType () |
virtual void | SetW () |
virtual void | SetW () |
virtual void | SetWd () |
virtual void | SetWd () |
virtual void | SetWu () |
virtual void | SetWu () |
Protected Attributes | |
double | m_Area |
double | m_H |
int | m_ID |
double | m_L |
int | m_Layer |
double | m_LocOrgInBes [3] |
double | m_ObjOrgInBes [3] |
double | m_ObjOrgInLoc [3] |
double | m_ObjRotToMot [3] |
int | m_Part |
double | m_Rc |
double | m_Rin |
double | m_Rout |
int | m_RpcId |
int | m_Segment |
double | m_Theta |
double | m_Thin |
int | m_UpDown |
double | m_W |
double | m_Wd |
double | m_Wu |
Private Attributes | |
double | m_CenterLine |
double | m_Head |
int | m_PadNumber |
double | m_Phi |
double | m_Tail |
int | m_Type |
|
00018 : MucEntity( part, segment, layer, id ) 00019 { 00020 MucStrip::Init(); 00021 00022 // m_MucPadChain = NULL; 00023 }
|
|
00026 : MucEntity( other ) 00027 { 00028 m_Type = other.m_Type; 00029 m_CenterLine = other.m_CenterLine; 00030 m_Head = other.m_Head; 00031 m_Tail = other.m_Tail; 00032 m_Phi = other.m_Phi; 00033 00034 // m_MucPadChain = other.m_MucPadChain; 00035 }
|
|
00058 {
00059 // delete m_MucPadChain;
00060 ;
00061 }
|
|
|
|
|
|
|
|
|
|
00150 { return m_Area; }
|
|
|
|
00093 { return m_CenterLine; }
|
|
|
|
00146 { return m_H; }
|
|
|
|
00094 { return m_Head; }
|
|
|
|
00139 { return m_ID; }
|
|
|
|
00147 { return m_L; }
|
|
|
|
00136 { return m_Layer; }
|
|
|
|
|
|
00176 { return &m_LocOrgInBes[0]; }
|
|
00153 { 00154 if( i<1 || i>3 ) i=1; 00155 return m_LocOrgInBes[i-1]; 00156 }
|
|
|
|
|
|
00178 { return &m_ObjOrgInBes[0]; }
|
|
00165 { 00166 if( i<1 || i>3 ) i=1; 00167 return m_ObjOrgInBes[i-1]; 00168 }
|
|
|
|
|
|
00179 { return &m_ObjOrgInLoc[0]; }
|
|
00171 { 00172 if( i<1 || i>3 ) i=1; 00173 return m_ObjOrgInLoc[i-1]; 00174 }
|
|
|
|
|
|
00177 { return &m_ObjRotToMot[0]; }
|
|
00159 { 00160 if( i<1 || i>3 ) i=1; 00161 return m_ObjRotToMot[i-1]; 00162 }
|
|
|
|
00097 { return m_PadNumber; }
|
|
|
|
00134 { return m_Part; }
|
|
|
|
00096 { return m_Phi; }
|
|
|
|
00143 { return m_Rc; }
|
|
|
|
00141 { return m_Rin; }
|
|
|
|
00142 { return m_Rout; }
|
|
|
|
00138 { return m_RpcId; }
|
|
|
|
00135 { return m_Segment; }
|
|
|
|
00095 { return m_Tail; }
|
|
|
|
00140 { return m_Theta; }
|
|
|
|
00144 { return m_Thin; }
|
|
|
|
00092 { return m_Type; }
|
|
|
|
00137 { return m_UpDown; }
|
|
|
|
00145 { return m_W; }
|
|
|
|
00149 { return m_Wd; }
|
|
|
|
00148 { return m_Wu; }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00065 { 00066 SetType(); 00067 SetW(); 00068 SetWu(); 00069 SetWd(); 00070 SetCenterLine(); // use strip width 00071 SetHead(); 00072 SetTail(); 00073 SetPhi(); 00074 00075 SetThin(); 00076 SetH(); 00077 SetL(); 00078 SetPadNumber(); 00079 00080 SetLocOrgInBes(); 00081 SetObjRotToMot(); 00082 00083 SetEndcapStripInBes(); 00084 SetBarrelStripInLoc(); 00085 00086 SetObjOrgInBes(); 00087 SetObjOrgInLoc(); 00088 }
|
|
|
|
00039 { 00040 if( this == &other) 00041 return *this; 00042 00043 MucEntity::operator =(other); 00044 00045 m_Type = other.m_Type; 00046 m_CenterLine = other.m_CenterLine; 00047 m_Head = other.m_Head; 00048 m_Tail = other.m_Tail; 00049 m_Phi = other.m_Phi; 00050 00051 // m_MucPadChain = other.m_MucPadChain; 00052 00053 return *this; 00054 }
|
|
Reimplemented in MucBox, MucStripPlane, MucBox, and MucStripPlane. |
|
Reimplemented in MucBox, MucStripPlane, MucBox, and MucStripPlane. 00219 { ; }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity.
|
|
|
|
00475 { 00476 int j = m_Layer; 00477 int n = m_ID; 00478 00479 int maxStrip = 0; 00480 double x, y, z = 0; 00481 00482 if( m_Type == ZSTR ) maxStrip = B_ZSTR_NUM; // odd layer 00483 else if( m_Segment != B_TOP ) maxStrip = B_PHISTR_NUM; // even layer not top segment 00484 else maxStrip = B_TOPSTR_NUM; // even layer top segment 00485 00486 if( m_Segment != B_TOP ) // not top segment 00487 { 00488 if( m_Type == ZSTR ) // odd layer, ZSTR 00489 { 00490 // Set x 00491 if( n == 0 ) 00492 x = ( B_BOX_WT[j] - 2*B_BOX_DT[SL_DOWN] + (maxStrip-2)*B_STR_DST[j] + STR_GAP )/4.0; 00493 else if( n == (maxStrip-1) ) 00494 x = ( 2*B_BOX_DT[SL_DOWN] - B_BOX_WT[j] - (maxStrip-2)*B_STR_DST[j] - STR_GAP )/4.0; 00495 else 00496 x =( ((maxStrip-1) - 2*n) * B_STR_DST[j] )/2.0; 00497 00498 // Set y 00499 y = 0.; 00500 00501 // Set z 00502 z = 0.; 00503 00504 } 00505 else // even layer, phi 00506 { 00507 // Set x 00508 x = 0.; 00509 00510 // Set y 00511 y = 0.; 00512 00513 // Set Z 00514 if( n == 0 ) 00515 z = -B_BOX_LT/4.0 + B_BOX_DZ[SL_DOWN]/2.0 - B_STR_DST[j]*(B_PHISTR_NUM-2)/4.0; 00516 else if( n == (B_PHISTR_NUM - 1) ) 00517 z = B_BOX_LT/4.0 - B_BOX_DZ[SL_DOWN]/2.0 + B_STR_DST[j]*(B_PHISTR_NUM-2)/4.0; 00518 else 00519 z = ( 2*n - B_PHISTR_NUM + 1 ) * B_STR_DST[j] / 2.0; 00520 } 00521 00522 } // end not top segment 00523 else // top segment 00524 { 00525 if( m_Type == ZSTR ) // odd layer, z 00526 { 00527 // Set x 00528 if( n == 0 ) 00529 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; 00530 else if( n == (maxStrip-1) ) 00531 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; 00532 else 00533 x = ( (maxStrip-1) - 2*n ) * B_STR_DST[j] / 2.0; 00534 00535 // Set y 00536 y = 0.; 00537 00538 // Set z 00539 if( (n > (B_ZSTR_NUM/2 - 1 - B_ZSTR_CUT_NUM[j])) && (n < (B_ZSTR_NUM/2 + B_ZSTR_CUT_NUM[j])) ) // be cut 00540 z = -( (j==0) ? B_ZSTR_CUT[1] : B_ZSTR_CUT[0] )/2; 00541 else // no cut 00542 z = 0.; 00543 } 00544 else // even layer, phi 00545 { 00546 // Set x 00547 if( n < B_PHISTR_CUT_NUM ) // no cut 00548 x = 0.; 00549 else // be cut 00550 { 00551 if( n < B_PHISTR_NUM ) 00552 x = -B_BOX_WT[j]/4.0 - B_PHISTR_CUT/4.0 + B_BOX_DZ[SL_DOWN]/2.0; 00553 else 00554 x = B_BOX_WT[j]/4.0 + B_PHISTR_CUT/4.0 - B_BOX_DZ[SL_DOWN]/2.0; 00555 } 00556 00557 // Set y 00558 y = 0.; 00559 00560 // Set z 00561 if( n < B_PHISTR_NUM ) 00562 { 00563 if( n == 0 ) 00564 z = -B_BOX_LT/4.0 + B_BOX_DZ[SL_DOWN]/2.0 - B_STR_DST[j]*(B_PHISTR_NUM-2)/4.0; 00565 else if( n == (B_PHISTR_NUM - 1) ) 00566 z = B_BOX_LT/4.0 - B_BOX_DZ[SL_DOWN]/2.0 + B_STR_DST[j]*(B_PHISTR_NUM-2)/4.0; 00567 else 00568 z = ( 2*n - B_PHISTR_NUM + 1 ) * B_STR_DST[j] / 2.0; 00569 } 00570 else 00571 { 00572 if( n == (B_TOPSTR_NUM-1) ) 00573 z = B_BOX_LT/4.0 - B_BOX_DZ[SL_DOWN]/2.0 + B_STR_DST[j]*(B_PHISTR_NUM-2)/4.0; 00574 else 00575 z = ( 2*n - 3*B_PHISTR_NUM + 2*B_PHISTR_CUT_NUM + 1 ) * B_STR_DST[j]/2.0; 00576 } 00577 } // end even 00578 } // end top segment 00579 00580 m_ObjOrgInLoc[0] = x; 00581 m_ObjOrgInLoc[1] = y; 00582 m_ObjOrgInLoc[2] = z; 00583 00584 // limit cut 00585 for( int i=0; i<3; i++ ) { 00586 if( fabs(m_ObjOrgInLoc[i]) < ERR_LIMIT ) 00587 m_ObjOrgInLoc[i] = 0.; 00588 } 00589 }
|
|
|
|
00129 { 00130 // Base on strips width and structure correlations 00131 // Endcap only 00132 00133 int segFlag = 0; 00134 00135 if( (m_Layer+1)%2 == 1 ) // 1,3,5,7 00136 { 00137 if( m_Segment < 2 ) segFlag = 1; 00138 else segFlag = -1; 00139 00140 if( m_ID == 0 ) m_CenterLine = segFlag * (E_GP_DY+E_STRPLN_DA+m_W/2.0); // NO.0 00141 else if( m_ID != E_STR_NUM-1 ) // NO.1~62 00142 m_CenterLine = segFlag * ( E_XSTR_OFFSET + m_ID*E_STR_DST ); 00143 else // NO.63 end strip 00144 m_CenterLine = segFlag * ( E_XSTR_OFFSET + (E_STR_NUM-2)*E_STR_DST + (E_STR_DST + m_W + STR_GAP)/2); 00145 } 00146 else // 2,4,6,8 00147 { 00148 if( m_Segment%3 == 0 ) segFlag = 1; 00149 else segFlag = -1; 00150 00151 if( m_ID == 0 ) m_CenterLine = segFlag * (E_GP_DX+E_STRPLN_DA+m_W/2.0); // NO.0 00152 else if(m_ID != E_STR_NUM-1) // NO.1~62 00153 m_CenterLine = segFlag * ( E_YSTR_OFFSET + m_ID*E_STR_DST ); 00154 else // NO.63 end strip 00155 m_CenterLine = segFlag * ( E_YSTR_OFFSET + (E_STR_NUM-2)*E_STR_DST + (E_STR_DST + m_W + STR_GAP)/2); 00156 } 00157 }
|
|
|
|
00441 { 00442 double x, y, z; 00443 00444 // Set x 00445 if( (m_Layer+1)%2 == 0 ) // even layer 00446 x = m_CenterLine; 00447 else // odd layer 00448 x = ( m_Head + m_Tail )/2; 00449 00450 // Set y 00451 if( (m_Layer+1)%2 == 0 ) // even layer 00452 y = ( m_Head + m_Tail )/2; 00453 else // odd layer 00454 y = m_CenterLine; 00455 00456 // Set z 00457 z = 0.; 00458 for(int i=0; i<m_Layer+1; i++) z += E_AS_TH[i]; 00459 00460 z += m_Layer * AS_GAP; 00461 z = ( (E_AS_ZMAX - E_AS_TOTAL_TH + z) + AS_GAP/2.0 ) * cos( m_Part*MUC_PI/2.0 ); 00462 00463 m_ObjOrgInBes[0] = x; 00464 m_ObjOrgInBes[1] = y; 00465 m_ObjOrgInBes[2] = z; 00466 00467 // limit cut 00468 for( int i=0; i<3; i++ ) { 00469 if( fabs(m_ObjOrgInBes[i]) < ERR_LIMIT ) m_ObjOrgInBes[i] = 0.; 00470 } 00471 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00307 { 00308 m_H = STR_TH; 00309 }
|
|
|
|
00161 { 00162 int segFlag = 0; 00163 00164 // base on strips width and correlations 00165 if( m_ID+1 < HEAD_TURN_STR_NUM[m_Layer][0] ) 00166 m_Head = FIRST_TURN_HEAD[m_Layer][0]; 00167 else if( m_ID+1 == HEAD_TURN_STR_NUM[m_Layer][0] ) 00168 m_Head = FIRST_TURN_HEAD[m_Layer][1]; 00169 else if( (m_ID+1 > HEAD_TURN_STR_NUM[m_Layer][0]) && (m_ID+1 < HEAD_TURN_STR_NUM[m_Layer][1]) ) 00170 m_Head = FIRST_TURN_HEAD[m_Layer][1] - ( m_ID + 1 - HEAD_TURN_STR_NUM[m_Layer][0] )*E_STR_DST; 00171 else if( m_ID+1 >= HEAD_TURN_STR_NUM[m_Layer][1] ) 00172 m_Head = SECOND_TURN_HEAD[m_Layer%2]; 00173 00174 00175 if( (m_Layer+1)%2 == 1 ) // 1,3,5,7 00176 { 00177 if( m_Segment%3 ==0 ) segFlag = 1; 00178 else segFlag = -1; 00179 } 00180 else // 2,4,6,8 00181 { 00182 if( m_Segment < 2 ) segFlag = 1; 00183 else segFlag = -1; 00184 } 00185 00186 m_Head *= segFlag; 00187 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00313 { 00314 if( m_Part==BRID ) // barrel 00315 { 00316 int ZCUT_HEAD_NUM = B_ZSTR_NUM/2 - B_ZSTR_CUT_NUM[m_Layer] - 1; 00317 int ZCUT_TAIL_NUM = B_ZSTR_NUM/2 + B_ZSTR_CUT_NUM[m_Layer]; 00318 00319 00320 if( m_Segment != B_TOP ) // not top segment 00321 { 00322 if( (m_Layer+1)%2 == 1) // odd layer, Z 00323 m_L = B_BOX_LT - 2*B_BOX_DZ[SL_DOWN]; 00324 else // even layer, phi 00325 m_L = B_BOX_WT[m_Layer] - 2*B_BOX_DZ[SL_DOWN]; 00326 } 00327 else // top segment 00328 { 00329 if((m_Layer+1)%2 == 1) // odd layer, z 00330 { 00331 if( m_ID > ZCUT_HEAD_NUM && m_ID < ZCUT_TAIL_NUM ) // be cut 00332 { 00333 if( m_Layer == 0 ) 00334 m_L = B_BOX_LT - 2*B_BOX_DZ[SL_DOWN] - B_ZSTR_CUT[1]; 00335 else 00336 m_L = B_BOX_LT - 2*B_BOX_DZ[SL_DOWN] - B_ZSTR_CUT[0]; 00337 } 00338 else // no cut 00339 m_L = B_BOX_LT - 2*B_BOX_DZ[SL_DOWN]; 00340 } 00341 else // even layer, phi 00342 { 00343 if( m_ID < B_PHISTR_CUT_NUM ) // no cut 00344 m_L = B_BOX_WT[m_Layer] - 2*B_BOX_DZ[SL_DOWN]; 00345 else // be cut 00346 m_L = (B_BOX_WT[m_Layer] - 2*B_BOX_DZ[SL_DOWN] - B_PHISTR_CUT)/2; 00347 } 00348 } 00349 } 00350 else // endcap 00351 { 00352 m_L = fabs( m_Head - m_Tail ); 00353 } 00354 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00388 { 00389 double x, y, z = 0 ; 00390 00391 if( m_Part == BRID ) 00392 { 00393 x = ( B_AS_RMIN[m_Layer] - AS_GAP/2.0 ) * cos( m_Segment * ( MUC_PI/4.0 ) ); 00394 y = ( B_AS_RMIN[m_Layer] - AS_GAP/2.0 ) * sin( m_Segment * ( MUC_PI/4.0 ) ); 00395 z = 0.; 00396 00397 } // barrel 00398 else 00399 { 00400 //------------- set x and y -------------------- 00401 // segment 0 as reference 00402 x = (E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[(m_Layer==0)?0:1] + E_GP_DX + E_STRPLN_DA) / 2.0; 00403 y = (E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[(m_Layer==0)?0:1] + E_GP_DY + E_STRPLN_DA) / 2.0; 00404 00405 // x, y signs of coordinate different by segment 00406 if( m_Segment == 0 ) { ; } 00407 else if ( m_Segment == 1 ) { x = -x; } 00408 else if ( m_Segment == 2 ) { x = -x; y = -y; } 00409 else { y = -y; } 00410 00411 //-------------- set z -------------------------- 00412 for( int i=0; i<m_Layer+1; i++ ) z += E_AS_TH[i]; 00413 00414 z += m_Layer * AS_GAP; 00415 z += (E_AS_ZMAX - E_AS_TOTAL_TH) + AS_GAP/2.0; 00416 z *= cos( m_Part*MUC_PI/2.0 ); 00417 00418 } // else, endcap 00419 00420 m_LocOrgInBes[0] = x; 00421 m_LocOrgInBes[1] = y; 00422 m_LocOrgInBes[2] = z; 00423 00424 // limit cut 00425 for( int i=0; i<3; i++ ) { 00426 if( fabs(m_LocOrgInBes[i]) < ERR_LIMIT ) m_LocOrgInBes[i] = 0; 00427 } 00428 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00593 { 00594 if( m_Part == BRID ) 00595 { 00596 MucEntity::TransLocToBes( m_ObjOrgInBes, m_ObjOrgInLoc, m_LocOrgInBes, m_Phi ); 00597 00598 // limit cut 00599 for( int i=0; i<3; i++ ) { 00600 if( fabs(m_ObjOrgInBes[i]) < ERR_LIMIT ) m_ObjOrgInBes[i] = 0.0; 00601 } 00602 } 00603 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00607 { 00608 if( m_Part != BRID ) 00609 { 00610 MucEntity::TransBesToLoc( m_ObjOrgInLoc, m_ObjOrgInBes, m_LocOrgInBes, m_Phi ); 00611 00612 // limit cut 00613 for( int i=0; i<3; i++ ) { 00614 if( fabs(m_ObjOrgInLoc[i]) < ERR_LIMIT ) m_ObjOrgInLoc[i] = 0.; 00615 } 00616 } 00617 }
|
|
Reimplemented in MucAbsorber, MucBox, MucGap, MucAbsorber, MucBox, and MucGap. |
|
Reimplemented in MucAbsorber, MucBox, MucGap, MucAbsorber, MucBox, and MucGap. 00215 { for( int i=0; i<3; i++) m_ObjRotToMot[i] = 0.; }
|
|
|
|
00364 { 00365 int n = 0; 00366 double fn = 0; 00367 00368 if(m_W == 0) 00369 { 00370 cout<<"Error, strip width = 0!"<<endl; 00371 m_PadNumber = 0; 00372 } 00373 else 00374 { 00375 fn = (m_L/m_W); 00376 n = (int)fn; 00377 00378 if( (fn - n) > 0.3 ) 00379 m_PadNumber = n + 1; 00380 else 00381 m_PadNumber = n; 00382 } 00383 }
|
|
|
|
00228 { 00229 if ( m_Part == BRID ) // barrel 00230 m_Phi = B_PHI[m_Segment] * (MUC_PI/4.0); 00231 else // endcap , all phi is zer 00232 m_Phi = 0.; 00233 }
|
|
Reimplemented in MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, MucStripPlane, MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, and MucStripPlane. |
|
Reimplemented in MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, MucStripPlane, MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, and MucStripPlane. 00205 { m_Rc = 0.; }
|
|
Reimplemented in MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, MucStripPlane, MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, and MucStripPlane. |
|
Reimplemented in MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, MucStripPlane, MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, and MucStripPlane. 00203 { m_Rin = 0.; }
|
|
Reimplemented in MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, MucStripPlane, MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, and MucStripPlane. |
|
Reimplemented in MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, MucStripPlane, MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, and MucStripPlane. 00204 { m_Rout = 0.; }
|
|
|
|
00191 { 00192 int segFlag = 0; 00193 00194 if( (m_Layer+1)%2 == 1 ) // 1,3,5,7 00195 { 00196 if( m_Segment%3 ==0 ) segFlag = 1; 00197 else segFlag = -1; 00198 00199 if( m_ID+1 < TAIL_TURN_STR_NUM[0] ) 00200 m_Tail = ODD_TURN_POINT_TAIL[(m_Layer==0)?0:1][0]; 00201 else if( m_ID+1 == TAIL_TURN_STR_NUM[0] ) 00202 m_Tail = ODD_TURN_POINT_TAIL[(m_Layer==0)?0:1][1]; 00203 else if( m_ID+1 > TAIL_TURN_STR_NUM[0] ) 00204 m_Tail = ODD_TURN_POINT_TAIL[(m_Layer==0)?0:1][1]-( m_ID + 1 - TAIL_TURN_STR_NUM[0] )* E_STR_DST; 00205 if( m_ID == E_STR_NUM - 1 ) 00206 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; 00207 } 00208 else // 2,4,6,8 00209 { 00210 if( m_Segment < 2 ) segFlag = 1; 00211 else segFlag = -1; 00212 00213 if( m_ID+1 < TAIL_TURN_STR_NUM[1] ) 00214 m_Tail = EVEN_TURN_POINT_TAIL[0]; 00215 if( m_ID+1 == TAIL_TURN_STR_NUM[1] ) 00216 m_Tail = EVEN_TURN_POINT_TAIL[1]; 00217 if( m_ID+1 > TAIL_TURN_STR_NUM[1] ) 00218 m_Tail = EVEN_TURN_POINT_TAIL[1] - ( m_ID + 1 - TAIL_TURN_STR_NUM[1] ) * E_STR_DST; 00219 if( m_ID == E_STR_NUM - 1 ) 00220 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; 00221 } 00222 00223 m_Tail *= segFlag; 00224 }
|
|
Reimplemented in MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, MucStripPlane, MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, and MucStripPlane. |
|
Reimplemented in MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, MucStripPlane, MucAbsorber, MucBakelite, MucBox, MucBoxCover, MucGap, MucGas, MucRpc, and MucStripPlane. 00202 { m_Theta = 0.; }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00237 { 00238 m_Thin = STR_TH; 00239 }
|
|
|
|
00113 { 00114 if( m_Part == BRID ) 00115 { 00116 if( (m_Layer+1)%2 == 1 ) m_Type = ZSTR; 00117 else m_Type = PHISTR; 00118 } 00119 else 00120 { 00121 if( (m_Layer+1)%2 == 1 ) m_Type = XSTR; 00122 else m_Type = YSTR; 00123 } 00124 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00243 { 00244 if( m_Part == BRID ) 00245 { 00246 // Set maximum strip 00247 int maxStrip; 00248 if( (m_Layer+1)%2 == 1 ) 00249 maxStrip = B_ZSTR_NUM; // odd layer 00250 else if( m_Segment != B_TOP ) 00251 maxStrip = B_PHISTR_NUM; // even layer not top segment 00252 else 00253 maxStrip = B_TOPSTR_NUM; // even layer top segment 00254 00255 00256 if( (m_Layer+1)%2 == 1 ) // odd layer, z 00257 { 00258 if( m_ID > 0 && m_ID < (maxStrip-1)) // not marginal strip 00259 m_W = B_STR_DST[m_Layer] - STR_GAP; 00260 else // marginal strip 00261 m_W = (B_BOX_WT[m_Layer] - 2*B_BOX_DT[SL_DOWN] - (maxStrip-2)*B_STR_DST[m_Layer] - STR_GAP)/2; 00262 } 00263 else // even layer, phi 00264 { 00265 if( m_ID >0 && m_ID < (maxStrip-1) ) // not marginal strip 00266 m_W = B_STR_DST[m_Layer] - STR_GAP; 00267 else // marginal strip 00268 m_W = B_BOX_LT/2 - B_BOX_DZ[SL_DOWN] - B_STR_DST[m_Layer]*(B_PHISTR_NUM-2)/2; 00269 00270 if( (maxStrip == B_TOPSTR_NUM) && (m_ID == (B_PHISTR_NUM - 1)) ) // special marginal strip 00271 m_W = B_BOX_LT/2 - B_BOX_DZ[SL_DOWN] - B_STR_DST[m_Layer]*(B_PHISTR_NUM-2)/2; 00272 } 00273 } 00274 else 00275 { 00276 // Strip0:48; 00277 // Strip1~62: 33; 00278 // Strip63: L0: 34; L2/4/6: 43; L1/3/5/7: 53 00279 if(m_ID ==0 ) m_W = E_FIRST_STR_WT; 00280 else if(m_ID != E_STR_NUM-1) m_W = E_STR_WT; // NO.1~62 00281 else // NO.63, end strip 00282 { 00283 if((m_Layer+1)%2!=0) // 0,2,4,6 00284 { 00285 if(m_Layer==0) m_W = 31; 00286 else m_W = 43; 00287 } 00288 else m_W = 53; // 1,3,5,7 00289 } 00290 } 00291 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00301 { 00302 m_Wd = m_W; 00303 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00295 { 00296 m_Wu = m_W; 00297 }
|
|
|
|
00224 { 00225 LocCoord[0] = (BesCoord[0] - LocOrgInBes[0])*cos(Rot_z) + (BesCoord[1] - LocOrgInBes[1])*sin(Rot_z); 00226 LocCoord[1] = -(BesCoord[0] - LocOrgInBes[0])*sin(Rot_z) + (BesCoord[1] - LocOrgInBes[1])*cos(Rot_z); 00227 LocCoord[2] = BesCoord[2] - LocOrgInBes[2]; 00228 }
|
|
|
|
00233 { 00234 BesCoord[0] = LocCoord[0]*cos(Rot_z) - LocCoord[1]*sin(Rot_z) + LocOrgInBes[0]; 00235 BesCoord[1] = LocCoord[0]*sin(Rot_z) + LocCoord[1]*cos(Rot_z) + LocOrgInBes[1]; 00236 BesCoord[2] = LocCoord[2] + LocOrgInBes[2]; 00237 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|