18 :
MucEntity( part, segment, layer, upDown, rpcId, id )
32 if(
this == &other)
return *
this;
90 m_Theta = ( MUC_PI/4.0 ) + MUC_PI / 8.0 ;
94 m_Theta = ( MUC_PI/4.0 ) - MUC_PI / 8.0 ;
103 + (1-2*
m_ID)*(GAS_TH + BKLT_TH)/2.0 - BKLT_TH/2.0;
112 + (1-2*
m_ID)*(GAS_TH + BKLT_TH)/2.0 + BKLT_TH/2.0;
151 m_W = VALUE *
m_Rc - E_GP_DX - E_STRPLN_DA - RPC_SL_OFFSET;
155 m_W = VALUE *
m_Rc - E_GP_DY - E_STRPLN_DA - RPC_SL_OFFSET;
162 m_W = VALUE *
m_Rc - E_GP_DX - E_STRPLN_DA;
172 m_W = VALUE *
m_Rc - E_GP_DY - E_STRPLN_DA;
181 m_W -= RPC_DEATH_EDGE * 2.0;
185 if(
m_RpcId == 1 )
m_W -= RPC_DEATH_EDGE * 2.0;
186 else m_W -= ( 1 + 1.0/
cos(MUC_PI/8.0) ) * RPC_DEATH_EDGE;
191 m_W -= RPC_DEATH_EDGE * 2.0;
193 m_W -= RPC_DEATH_EDGE;
208 m_H -= RPC_DEATH_EDGE * (1 + 1.0/VALUE);
210 m_H -= RPC_DEATH_EDGE * 2.0;
224 m_L = B_BOX_LT - 2*B_BOX_DZ[
m_UpDown] - 3*B_RPC_LTN;
226 m_L = B_BOX_LT - 2*B_BOX_DZ[
m_UpDown] - 3*B_RPC_LTS;
249 m_L -= RPC_DEATH_EDGE * 2.0;
265 m_Wu = VALUE *
m_Rin - E_GP_DX - E_STRPLN_DA - RPC_SL_OFFSET;
269 m_Wu = VALUE *
m_Rin - E_GP_DY - E_STRPLN_DA - RPC_SL_OFFSET;
276 m_Wu = VALUE *
m_Rin - E_GP_DX - E_STRPLN_DA;
286 m_Wu = VALUE *
m_Rin - E_GP_DY - E_STRPLN_DA;
297 else m_Wu -= ( 1 + 1.0/
cos(MUC_PI/8.0) ) * RPC_DEATH_EDGE;
302 m_Wu -= RPC_DEATH_EDGE * 2.0;
304 m_W -= RPC_DEATH_EDGE;
318 m_Wd = VALUE *
m_Rout - E_GP_DX - E_STRPLN_DA - RPC_SL_OFFSET;
322 m_Wd = VALUE *
m_Rout - E_GP_DY - E_STRPLN_DA - RPC_SL_OFFSET;
329 m_Wd = VALUE *
m_Rout - E_GP_DX - E_STRPLN_DA;
339 m_Wd = VALUE *
m_Rout - E_GP_DY - E_STRPLN_DA;
348 else m_Wd -= ( 1 + 1.0/
cos(MUC_PI/8.0) ) * RPC_DEATH_EDGE;
353 m_Wd -= RPC_DEATH_EDGE * 2.0;
355 m_Wd -= RPC_DEATH_EDGE;
372 r = (B_AS_RMIN[
m_Layer] - AS_GAP / 2.0) + (1-2*
m_UpDown)*(STR_TH + RPC_TH)/2.0;
380 z = (2*
m_UpDown - 1) * 3 * B_RPC_LTN/2.0;
382 z = (2*
m_UpDown - 1) * 3 * B_RPC_LTS/2.0;
387 z = -B_BOX_LT/2.0 + B_BOX_DZ[
m_UpDown] + (1+2*(3-
m_RpcId))*B_RPC_LTN/2.0;
398 y = (B_AS_RMIN[
m_Layer] - AS_GAP / 2.0) + (1-2*
m_UpDown)*(STR_TH + RPC_TH)/2.0;
410 z = -B_BOX_LT/2.0 - B_BOX_DZ[
m_UpDown] + (1+2*(4-
m_RpcId))*B_RPC_LTN/2.0;
418 for(
int i=0; i<2; i++ ) {
436 x = ( VALUE*
m_Rc + E_GP_DX + E_STRPLN_DA + RPC_SL_OFFSET ) / 2.0;
445 y = ( VALUE*
m_Rc + E_GP_DY + E_STRPLN_DA + RPC_SL_OFFSET ) / 2.0;
453 x = ( VALUE*
m_Rc + E_GP_DX + E_STRPLN_DA )/2.0 + RPC_DEATH_EDGE/2.0;
458 x += RPC_DEATH_EDGE * ( 3 - 2*sqrt(2.0) )/4.0;
460 y += RPC_DEATH_EDGE * ( 1 + 4.0/sqrt(2.0) )/4.0;
468 x += RPC_DEATH_EDGE * ( 1 + 4.0/sqrt(2.0) )/4.0;
470 y += RPC_DEATH_EDGE * ( 3 - 2*sqrt(2.0) )/4.0;
474 y = ( VALUE*
m_Rc + E_GP_DY + E_STRPLN_DA )/2.0 + RPC_DEATH_EDGE/2.0;
485 for(
int i=0; i<
m_Layer+1; i++ ) z += E_AS_TH[i];
488 z += ( (E_AS_ZMAX - E_AS_TOTAL_TH ) + AS_GAP/2.0 );
489 z += (1-2*
m_UpDown) * ( STR_TH + RPC_TH ) / 2.0;
497 for(
int i=0; i<2; i++ ) {
533 for(
int i=0; i<3; i++ ) {
double sin(const BesAngle a)
double cos(const BesAngle a)
virtual void SetObjOrgInBes()
MucBakelite(int part, int segment, int layer, int upDown, int rpcId, int id)
virtual void SetObjOrgInLoc()
MucBakelite & operator=(const MucBakelite &other)
virtual void SetLocOrgInBes()
MucEntity & operator=(const MucEntity &other)
void TransLocToBes(double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)