#include <MucBakelite.h>
Inheritance diagram for MucBakelite:
Public Member Functions | |
double | GetArea () |
double | GetArea () |
double | GetH () |
double | GetH () |
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 | 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 | GetTheta () |
double | GetTheta () |
double | GetThin () |
double | GetThin () |
int | GetUpDown () |
int | GetUpDown () |
double | GetW () |
double | GetW () |
double | GetWd () |
double | GetWd () |
double | GetWu () |
double | GetWu () |
MucBakelite (const MucBakelite &other) | |
MucBakelite (int part, int segment, int layer, int upDown, int rpcId, int id) | |
MucBakelite (const MucBakelite &other) | |
MucBakelite (int part, int segment, int layer, int upDown, int rpcId, int id) | |
MucBakelite & | operator= (const MucBakelite &other) |
MucBakelite & | operator= (const MucBakelite &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) |
~MucBakelite () | |
~MucBakelite () | |
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 () |
int | SetBarrelRpcInBes () |
int | SetBarrelRpcInBes () |
int | SetEndcapRpcInBes () |
int | SetEndcapRpcInBes () |
virtual void | SetH () |
virtual void | SetH () |
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 () |
virtual void | SetPhi () |
virtual void | SetPhi () |
virtual void | SetRc () |
virtual void | SetRc () |
virtual void | SetRin () |
virtual void | SetRin () |
virtual void | SetRout () |
virtual void | SetRout () |
virtual void | SetTheta () |
virtual void | SetTheta () |
virtual void | SetThin () |
virtual void | SetThin () |
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_Phi |
|
00018 : MucEntity( part, segment, layer, upDown, rpcId, id ) 00019 { 00020 MucBakelite::Init(); 00021 }
|
|
|
|
00043 { ; }
|
|
|
|
|
|
|
|
|
|
00150 { return m_Area; }
|
|
|
|
00146 { return m_H; }
|
|
|
|
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 }
|
|
|
|
00134 { return m_Part; }
|
|
|
|
00071 { return m_Phi; }
|
|
|
|
00143 { return m_Rc; }
|
|
|
|
00141 { return m_Rin; }
|
|
|
|
00142 { return m_Rout; }
|
|
|
|
00138 { return m_RpcId; }
|
|
|
|
00135 { return m_Segment; }
|
|
|
|
00140 { return m_Theta; }
|
|
|
|
00144 { return m_Thin; }
|
|
|
|
00137 { return m_UpDown; }
|
|
|
|
00145 { return m_W; }
|
|
|
|
00149 { return m_Wd; }
|
|
|
|
00148 { return m_Wu; }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00047 { 00048 SetPhi(); 00049 SetTheta(); 00050 SetRin(); 00051 SetRout(); 00052 SetRc(); 00053 00054 SetThin(); 00055 SetW(); 00056 SetWu(); 00057 SetWd(); 00058 SetH(); 00059 SetL(); 00060 00061 SetEndcapRpcInBes(); 00062 SetBarrelRpcInBes(); 00063 00064 SetLocOrgInBes(); 00065 SetObjOrgInLoc(); 00066 SetObjOrgInBes(); 00067 }
|
|
|
|
00031 { 00032 if( this == &other) 00033 return *this; 00034 00035 MucEntity::operator =(other); 00036 00037 m_Phi = other.m_Phi; 00038 00039 return *this; 00040 }
|
|
Reimplemented in MucBox, MucStripPlane, MucBox, and MucStripPlane. |
|
Reimplemented in MucBox, MucStripPlane, MucBox, and MucStripPlane. 00219 { ; }
|
|
|
|
Reimplemented in MucBox, MucStrip, MucBox, and MucStrip. 00212 { m_Area = 0.; }
|
|
|
|
00380 { 00381 if( m_Part != BRID ) return 0; 00382 00383 double x, y, z; 00384 x = y = z = 0.0; 00385 00386 if( m_Segment != B_TOP ) 00387 { 00388 // set x and y 00389 double r; 00390 r = (B_AS_RMIN[m_Layer] - AS_GAP / 2.0) + (1-2*m_UpDown)*(STR_TH + RPC_TH)/2.0; 00391 x = r * cos( m_Theta ); 00392 y = r * sin( m_Theta ); 00393 00394 // set z 00395 if( (m_UpDown == SL_UP && m_RpcId == 3) || (m_UpDown == SL_DOWN && m_RpcId == 0) ) 00396 { 00397 if( m_Layer != 1 ) // not layer NO.2 00398 z = (2*m_UpDown - 1) * 3 * B_RPC_LTN/2.0; 00399 else 00400 z = (2*m_UpDown - 1) * 3 * B_RPC_LTS/2.0; 00401 } 00402 else if( m_UpDown == SL_UP ) 00403 z = B_BOX_LT/2.0 - B_BOX_DZ[m_UpDown] - (1+2*m_RpcId)*B_RPC_LTN/2.0; 00404 else 00405 z = -B_BOX_LT/2.0 + B_BOX_DZ[m_UpDown] + (1+2*(3-m_RpcId))*B_RPC_LTN/2.0; 00406 00407 } // end not top segment 00408 else 00409 { 00410 //---------- set x-------- 00411 if( m_RpcId > 1 ) // NO.3, 4, 5 00412 x = 0.; 00413 else // NO.1 and NO.2 00414 x = (1-2*m_RpcId) * ( (B_BOX_WT[m_Layer] + B_BOX_SLOT_WT)/4.0 + (B_BOX_DZ[m_UpDown] - B_BOX_DT[m_UpDown])/2.0 ); 00415 00416 //---------- set y-------- 00417 y = (B_AS_RMIN[m_Layer] - AS_GAP / 2.0) + (1-2*m_UpDown)*(STR_TH + RPC_TH)/2.0; 00418 00419 //---------- set z-------- 00420 if( m_RpcId < 2 ) // rpc NO.1 and NO.2 00421 z = B_BOX_LT/2.0 - B_BOX_DZ[m_UpDown] - B_TOPRPC_LTS[ ((m_Layer==0)?1:(m_Layer%2)) ]; 00422 else if( m_UpDown == SL_UP && m_RpcId == 4 ) 00423 z = -B_RPC_LTN - B_TOPRPC_LTS[ ((m_Layer==0)?1:(m_Layer%2)) ]; 00424 else if( m_UpDown == SL_DOWN && m_RpcId == 2 ) 00425 z = B_RPC_LTN - B_TOPRPC_LTS[ ((m_Layer==0)?1:(m_Layer%2)) ]; 00426 else if( m_UpDown == SL_UP ) 00427 z = B_BOX_LT/2.0 - B_BOX_DZ[m_UpDown] - B_TOPRPC_LTS[ ((m_Layer==0)?1:(m_Layer%2)) ] + (3-2*m_RpcId)*B_RPC_LTN/2.0; 00428 else 00429 z = -B_BOX_LT/2.0 - B_BOX_DZ[m_UpDown] + (1+2*(4-m_RpcId))*B_RPC_LTN/2.0; 00430 00431 } // end top segment 00432 00433 m_LocOrgInBes[0] = x; 00434 m_LocOrgInBes[1] = y; 00435 m_LocOrgInBes[2] = z; 00436 00437 // limit cut 00438 for( int i=0; i<2; i++ ) { 00439 if( fabs(m_LocOrgInBes[i]) < ERR_LIMIT ) m_LocOrgInBes[i] = 0.0; 00440 } 00441 00442 return 0; 00443 }
|
|
|
|
00446 { 00447 if( m_Part == BRID ) return 0; 00448 00449 double x, y, z; 00450 x = y = z = 0.; 00451 00452 //------------ set x and y --------------- 00453 if( m_UpDown == SL_UP ) 00454 { 00455 if( m_RpcId == 0 ) 00456 { 00457 x = ( VALUE*m_Rc + E_GP_DX + E_STRPLN_DA + RPC_SL_OFFSET ) / 2.0; 00458 y = m_Rc; 00459 } 00460 else if( m_RpcId == 1 ) 00461 { 00462 x = m_Rc * cos( MUC_PI/4.0 ); 00463 y = m_Rc * sin( MUC_PI/4.0 ); 00464 } 00465 else 00466 { 00467 x = m_Rc; 00468 y = ( VALUE*m_Rc + E_GP_DY + E_STRPLN_DA + RPC_SL_OFFSET ) / 2.0; 00469 } 00470 } 00471 else 00472 { 00473 switch( m_RpcId ) 00474 { 00475 case 0: 00476 x = ( VALUE*m_Rc + E_GP_DX + E_STRPLN_DA )/2.0 + RPC_DEATH_EDGE/2.0; 00477 y = m_Rc; 00478 break; 00479 case 1: 00480 x = VALUE*m_Rc + sin(MUC_PI/4.0)*m_Wd/4.0; 00481 x += RPC_DEATH_EDGE * ( 3 - 2*sqrt(2.0) )/4.0; 00482 00483 y = m_Rc - cos(MUC_PI/4.0)*m_Wd/4.0; 00484 y += RPC_DEATH_EDGE * ( 1 + 4.0/sqrt(2.0) )/4.0; 00485 00486 break; 00487 case 2: 00488 x = m_Rc * cos( MUC_PI/4.0 ); 00489 y = m_Rc * sin( MUC_PI/4.0 ); 00490 break; 00491 case 3: 00492 x = m_Rc - cos(MUC_PI/4.0)*m_Wd/4.0; 00493 x += RPC_DEATH_EDGE * ( 1 + 4.0/sqrt(2.0) )/4.0; 00494 00495 y = VALUE*m_Rc + sin(MUC_PI/4.0)*m_Wd/4.0; 00496 y += RPC_DEATH_EDGE * ( 3 - 2*sqrt(2.0) )/4.0; 00497 00498 break; 00499 case 4: 00500 x = m_Rc; 00501 y = ( VALUE*m_Rc + E_GP_DY + E_STRPLN_DA )/2.0 + RPC_DEATH_EDGE/2.0; 00502 } 00503 00504 } 00505 00506 // sign different by segment 00507 if ( m_Segment == 0 ) { ; } 00508 else if( m_Segment == 1 ) { x = -x; } 00509 else if( m_Segment == 2 ) { x = -x; y = -y; } 00510 else { y = -y; } 00511 00512 00513 //------------ set z --------------------- 00514 for( int i=0; i<m_Layer+1; i++ ) z += E_AS_TH[i]; 00515 00516 z += m_Layer * AS_GAP; 00517 z += ( (E_AS_ZMAX - E_AS_TOTAL_TH ) + AS_GAP/2.0 ); 00518 z += (1-2*m_UpDown) * ( STR_TH + RPC_TH ) / 2.0; 00519 z *= cos( m_Part*MUC_PI/2.0 ); 00520 00521 m_LocOrgInBes[0] = x; 00522 m_LocOrgInBes[1] = y; 00523 m_LocOrgInBes[2] = z; 00524 00525 // limit cut 00526 for( int i=0; i<2; i++ ) { 00527 if( fabs(m_LocOrgInBes[i]) < ERR_LIMIT ) m_LocOrgInBes[i] = 0.; 00528 } 00529 00530 return 0; 00531 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00208 { 00209 if( m_Part == BRID ) 00210 m_H = BKLT_TH; 00211 else 00212 { 00213 m_H = m_Rout - m_Rin; 00214 00215 // cut rpc chamber death edge 00216 if( m_UpDown == SL_DOWN && (m_ID == 1 || m_ID == 3) ) 00217 m_H -= RPC_DEATH_EDGE * (1 + 1.0/VALUE); 00218 else 00219 m_H -= RPC_DEATH_EDGE * 2.0; 00220 } 00221 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00224 { 00225 if( m_Part == BRID ) // barrel 00226 { 00227 if( m_Segment != B_TOP ) // not top segment 00228 { 00229 // the first rpc of SL_DOWN is constructed as the same as the last rpc of SL_UP 00230 if( (m_UpDown == SL_UP && m_RpcId == 3) || (m_UpDown == SL_DOWN && m_RpcId == 0) ) 00231 { 00232 if( m_Layer != 1 ) // not layer NO.2 00233 m_L = B_BOX_LT - 2*B_BOX_DZ[m_UpDown] - 3*B_RPC_LTN; 00234 else // layer NO.2 is special 00235 m_L = B_BOX_LT - 2*B_BOX_DZ[m_UpDown] - 3*B_RPC_LTS; 00236 } 00237 else 00238 { 00239 if( m_Layer != 1 ) // not layer NO.2 00240 m_L = B_RPC_LTN; 00241 else // layer NO.2 is special 00242 m_L = B_RPC_LTS; 00243 } 00244 } 00245 else // top segment 00246 { 00247 if( m_RpcId < 2 ) // RPC NO.1 and NO.2 00248 { 00249 m_L = B_TOPRPC_LTS[ ((m_Layer == 0)?1:(m_Layer%2)) ]; 00250 } 00251 else if( (m_UpDown == SL_UP && m_RpcId == 4) || (m_UpDown == SL_DOWN && m_RpcId == 2) ) 00252 { 00253 m_L = B_BOX_LT - B_TOPRPC_LTS[ ((m_Layer == 0)?1:(m_Layer%2)) ] - 2*(B_BOX_DZ[m_UpDown]+B_RPC_LTN); 00254 } 00255 else 00256 m_L = B_RPC_LTN; 00257 00258 } // else, top segment 00259 00260 m_L -= RPC_DEATH_EDGE * 2.0; // cut rpc chamber death edge 00261 00262 } // if, barrel 00263 else // endcap 00264 { 00265 m_L = BKLT_TH; 00266 } 00267 00268 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00535 { 00536 if( m_Part == BRID ) 00537 SetBarrelRpcInBes(); 00538 else 00539 SetEndcapRpcInBes(); 00540 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00562 { 00563 MucEntity::TransLocToBes( m_ObjOrgInBes, m_ObjOrgInLoc, m_LocOrgInBes, m_Phi ); 00564 00565 // limit cut 00566 for( int i=0; i<3; i++ ) { 00567 if( fabs(m_ObjOrgInBes[i]) < ERR_LIMIT ) m_ObjOrgInBes[i] = 0.; 00568 } 00569 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00544 { 00545 if( m_Part == BRID ) 00546 { 00547 m_ObjOrgInLoc[0] = 0.; 00548 00549 m_ObjOrgInLoc[1] = (1-2*m_ID) * (BKLT_TH + GAS_TH)/2.0; 00550 00551 m_ObjOrgInLoc[2] = 0.; 00552 } 00553 else 00554 { 00555 m_ObjOrgInLoc[0] = 0.; 00556 m_ObjOrgInLoc[1] = 0.; 00557 m_ObjOrgInLoc[2] = (1-2*m_ID) * (BKLT_TH + GAS_TH)/2.0; 00558 } 00559 }
|
|
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.; }
|
|
|
|
00077 { 00078 if( m_Part == BRID ) 00079 m_Phi = B_PHI[m_Segment] * (MUC_PI/4.0); 00080 else 00081 m_Phi = 0.; 00082 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity.
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00105 { 00106 if( m_Part == BRID ) // Rin of bakelite 00107 m_Rin = B_AS_RMIN[m_Layer] - AS_GAP/2.0 + (1-2*m_UpDown) * (STR_TH + RPC_TH)/2.0 00108 + (1-2*m_ID)*(GAS_TH + BKLT_TH)/2.0 - BKLT_TH/2.0; 00109 else // Rin of RPC 00110 m_Rin = E_GP_RMIN[m_Layer] + E_STRPLN_DR + (1-m_UpDown)*RPC_SL_OFFSET; 00111 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00114 { 00115 if( m_Part == BRID ) // Rout of bakelite 00116 m_Rout = B_AS_RMIN[m_Layer] - AS_GAP/2.0 + (1-2*m_UpDown) * (STR_TH + RPC_TH)/2.0 00117 + (1-2*m_ID)*(GAS_TH + BKLT_TH)/2.0 + BKLT_TH/2.0; 00118 else 00119 { 00120 m_Rout = E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[(m_Layer==0)?0:1] + (m_UpDown-1)*RPC_SL_OFFSET; 00121 } 00122 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00085 { 00086 if( m_Part == BRID ) 00087 m_Theta = m_Segment * (MUC_PI/4.0); 00088 else 00089 { 00090 if( m_UpDown == SL_UP ) 00091 m_Theta = ( MUC_PI/4.0 ) + (1 - m_RpcId) * MUC_PI / 8.0 ; 00092 else 00093 { 00094 if( m_RpcId < 2 ) // RPC NO.1 and NO.2 00095 m_Theta = ( MUC_PI/4.0 ) + MUC_PI / 8.0 ; 00096 else if ( m_RpcId == 2 ) // center RPC, NO.3 00097 m_Theta = ( MUC_PI/4.0 ) ; 00098 else 00099 m_Theta = ( MUC_PI/4.0 ) - MUC_PI / 8.0 ; 00100 } 00101 } 00102 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00130 { 00131 m_Thin = BKLT_TH; 00132 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00135 { 00136 if( m_Part == BRID) 00137 { 00138 if( m_Segment == B_TOP && m_RpcId < 2 ) // the first 2 RPCs in top segment 00139 { 00140 if( (m_Layer+1)%2 == 1 ) // odd layer 00141 m_W = (B_BOX_WT[m_Layer] - 2*B_BOX_DT[m_UpDown] - 2*B_BOX_DZ[m_UpDown] - B_BOX_SLOT_WT)/2.0; 00142 else // even layer 00143 m_W = (B_BOX_WT[m_Layer] - 4*B_BOX_DZ[m_UpDown] - B_BOX_SLOT_WT)/2.0; 00144 } 00145 else // other RPCs 00146 { 00147 if( (m_Layer+1)%2 ==1 ) // odd layer 00148 m_W = B_BOX_WT[m_Layer] - 2 * B_BOX_DT[m_UpDown]; 00149 else // even layer 00150 m_W = B_BOX_WT[m_Layer] - 2 * B_BOX_DZ[m_UpDown]; 00151 00152 } 00153 } // end barrel 00154 else 00155 { 00156 if( m_UpDown == SL_UP ) // up layer 00157 { if( m_RpcId == 0 ) 00158 m_W = VALUE * m_Rc - E_GP_DX - E_STRPLN_DA - RPC_SL_OFFSET; 00159 else if ( m_RpcId == 1 ) 00160 m_W = 2 * VALUE * m_Rc; 00161 else 00162 m_W = VALUE * m_Rc - E_GP_DY - E_STRPLN_DA - RPC_SL_OFFSET; 00163 } 00164 else // down layer 00165 { 00166 switch( m_RpcId ) 00167 { 00168 case 0: 00169 m_W = VALUE * m_Rc - E_GP_DX - E_STRPLN_DA; 00170 break; 00171 case 1: 00172 case 3: 00173 m_W = VALUE * ( m_Rc - m_Rin ); 00174 break; 00175 case 2: 00176 m_W = 2 * VALUE * m_Rin; 00177 break; 00178 case 4: 00179 m_W = VALUE * m_Rc - E_GP_DY - E_STRPLN_DA; 00180 break; 00181 default: ; 00182 } 00183 } 00184 00185 } // else, endcap 00186 00187 // cut rpc chamber death edge 00188 if( m_Part == BRID ) 00189 m_W -= RPC_DEATH_EDGE * 2.0; 00190 else 00191 { 00192 if( m_UpDown == SL_UP ) 00193 { 00194 if( m_RpcId == 1 ) m_W -= RPC_DEATH_EDGE * 2.0; // center rpc 00195 else m_W -= ( 1 + 1.0/cos(MUC_PI/8.0) ) * RPC_DEATH_EDGE; 00196 } 00197 else 00198 { 00199 if( m_RpcId == 2 ) // center rpc 00200 m_W -= RPC_DEATH_EDGE * 2.0; 00201 else // DOWN 0,1,3,4 RPC 00202 m_W -= RPC_DEATH_EDGE; 00203 } 00204 } 00205 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00326 { 00327 if( m_Part == BRID ) 00328 m_Wd = m_W; 00329 else 00330 { 00331 if( m_UpDown == SL_UP ) 00332 { 00333 if( m_RpcId == 0 ) 00334 m_Wd = VALUE * m_Rout - E_GP_DX - E_STRPLN_DA - RPC_SL_OFFSET; 00335 else if( m_RpcId == 1 ) 00336 m_Wd = 2.0* VALUE * m_Rout; 00337 else 00338 m_Wd = VALUE * m_Rout - E_GP_DY - E_STRPLN_DA - RPC_SL_OFFSET; 00339 } 00340 else 00341 { 00342 switch( m_RpcId ) 00343 { 00344 case 0: 00345 m_Wd = VALUE * m_Rout - E_GP_DX - E_STRPLN_DA; 00346 break; 00347 case 1: 00348 case 3: 00349 m_Wd = VALUE * (m_Rout - m_Rin); 00350 break; 00351 case 2: 00352 m_Wd = 2.0 * VALUE * m_Rin; 00353 break; 00354 case 4: 00355 m_Wd = VALUE * m_Rout - E_GP_DY - E_STRPLN_DA; 00356 break; 00357 default: ; 00358 } 00359 } 00360 00361 // cut rpc chamber death edge 00362 if( m_UpDown == SL_UP ) 00363 { 00364 if( m_RpcId == 1 ) m_Wd -= RPC_DEATH_EDGE * 2.0; // center rpc 00365 else m_Wd -= ( 1 + 1.0/cos(MUC_PI/8.0) ) * RPC_DEATH_EDGE; 00366 } 00367 else 00368 { 00369 if( m_RpcId == 2 ) // center rpc 00370 m_Wd -= RPC_DEATH_EDGE * 2.0; 00371 else // DOWN 0,4 RPC 00372 m_Wd -= RPC_DEATH_EDGE; 00373 } 00374 00375 } // else, endcap 00376 }
|
|
Reimplemented from MucEntity. |
|
Reimplemented from MucEntity. 00271 { 00272 if( m_Part == BRID ) 00273 m_Wu = m_W; 00274 else 00275 { 00276 if( m_UpDown == SL_UP ) 00277 { 00278 if( m_RpcId == 0 ) 00279 m_Wu = VALUE * m_Rin - E_GP_DX - E_STRPLN_DA - RPC_SL_OFFSET; 00280 else if( m_RpcId == 1 ) 00281 m_Wu = 2.0* VALUE * m_Rin; 00282 else 00283 m_Wu = VALUE * m_Rin - E_GP_DY - E_STRPLN_DA - RPC_SL_OFFSET; 00284 } 00285 else 00286 { 00287 switch( m_RpcId ) 00288 { 00289 case 0: 00290 m_Wu = VALUE * m_Rin - E_GP_DX - E_STRPLN_DA; 00291 break; 00292 case 1: 00293 case 3: 00294 m_Wu = 0.0; 00295 break; 00296 case 2: 00297 m_Wu = 2.0* VALUE * m_Rin; 00298 break; 00299 case 4: 00300 m_Wu = VALUE * m_Rin - E_GP_DY - E_STRPLN_DA; 00301 break; 00302 default: ; 00303 } 00304 } 00305 00306 // cut rpc chamber death edge 00307 if( m_Wu > 0.0 ) 00308 { 00309 if( m_UpDown == SL_UP ) 00310 { 00311 if( m_RpcId == 1 ) m_Wu -= RPC_DEATH_EDGE * 2.0; // center rpc 00312 else m_Wu -= ( 1 + 1.0/cos(MUC_PI/8.0) ) * RPC_DEATH_EDGE; 00313 } 00314 else 00315 { 00316 if( m_RpcId == 2 ) // center rpc 00317 m_Wu -= RPC_DEATH_EDGE * 2.0; 00318 else // DOWN 0,4 RPC 00319 m_W -= RPC_DEATH_EDGE; 00320 } 00321 } 00322 } // else, endcap 00323 }
|
|
|
|
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 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|