29 m_MucGas = other.m_MucGas;
30 m_MucBakelite = other.m_MucBakelite;
42 m_MucGas = other.m_MucGas;
43 m_MucBakelite = other.m_MucBakelite;
84 if( m_MucGas != NULL )
delete m_MucGas;
91 if( m_MucBakelite != NULL )
delete m_MucBakelite;
116 m_Theta = ( MUC_PI/4.0 ) + ( 1 -
m_ID ) * MUC_PI / 8.0 ;
121 m_Theta = ( MUC_PI/4.0 ) + MUC_PI / 8.0 ;
122 else if (
m_ID == 2 )
125 m_Theta = ( MUC_PI/4.0 ) - MUC_PI / 8.0 ;
181 m_W = VALUE *
m_Rc - E_GP_DX - E_STRPLN_DA - RPC_SL_OFFSET;
185 m_W = VALUE *
m_Rc - E_GP_DY - E_STRPLN_DA - RPC_SL_OFFSET;
190 m_W = VALUE *
m_Rc - E_GP_DX - E_STRPLN_DA;
196 m_W = VALUE *
m_Rc - E_GP_DY - E_STRPLN_DA;
203 m_W -= OVERLAP_WIDTH * 2.0;
208 if(
m_ID == 1 )
m_W -= OVERLAP_WIDTH * 2.0;
209 else m_W -= ( 1 + 1.0/
cos(MUC_PI/8.0) ) * OVERLAP_WIDTH;
214 m_W -= OVERLAP_WIDTH * 2.0;
216 m_W -= OVERLAP_WIDTH;
240 m_L = B_BOX_LT - 2*B_BOX_DZ[
m_UpDown] - 3*B_RPC_LTN;
242 m_L = B_BOX_LT - 2*B_BOX_DZ[
m_UpDown] - 3*B_RPC_LTS;
257 m_L = B_TOPRPC_LTS[1];
264 m_L = B_BOX_LT - B_TOPRPC_LTS[1] - 2*(B_BOX_DZ[
m_UpDown] + B_TOPRPC_LTN);
274 m_L -= OVERLAP_WIDTH * 2.0;
292 m_Wu = VALUE *
m_Rin - E_GP_DX - E_STRPLN_DA - RPC_SL_OFFSET;
296 m_Wu = VALUE *
m_Rin - E_GP_DY - E_STRPLN_DA - RPC_SL_OFFSET;
301 m_Wu = VALUE *
m_Rin - E_GP_DX - E_STRPLN_DA;
307 m_Wu = VALUE *
m_Rin - E_GP_DY - E_STRPLN_DA;
315 if(
m_ID == 1 )
m_Wu += 2.0*OVERLAP_WIDTH *(
sin(BETA)-1)/
cos(BETA);
316 else m_Wu -= ( 1 + 1.0/
cos(BETA) ) * OVERLAP_WIDTH;
320 m_Wu -= 1.5*OVERLAP_WIDTH;
335 m_Wd = VALUE *
m_Rout - E_GP_DX - E_STRPLN_DA - RPC_SL_OFFSET;
339 m_Wd = VALUE *
m_Rout - E_GP_DY - E_STRPLN_DA - RPC_SL_OFFSET;
346 m_Wd = VALUE *
m_Rout - E_GP_DX - E_STRPLN_DA;
356 m_Wd = VALUE *
m_Rout - E_GP_DY - E_STRPLN_DA;
365 if(
m_ID == 1 )
m_Wd -= 2.0*OVERLAP_WIDTH*(
sin(BETA)+1)/
cos(BETA);
366 else m_Wd -= ( 1 + 1.0/
cos(BETA) ) * OVERLAP_WIDTH;
372 m_Wd -= 1.5*OVERLAP_WIDTH;
391 x = ( VALUE *
m_Rc + E_GP_DX + E_STRPLN_DA + RPC_SL_OFFSET ) / 2.0;
402 y = ( VALUE *
m_Rc + E_GP_DY + E_STRPLN_DA + RPC_SL_OFFSET ) / 2.0;
409 x = ( VALUE *
m_Rc + E_GP_DX + E_STRPLN_DA )/2.0 + OVERLAP_WIDTH/2.0;
436 y = ( VALUE *
m_Rc + E_GP_DY + E_STRPLN_DA )/2.0 + OVERLAP_WIDTH/2.0;
447 for(
int i=0; i<
m_Layer+1; i++ ) z += E_AS_TH[i];
450 z += ( (E_AS_ZMAX - E_AS_TOTAL_TH) + AS_GAP/2.0 );
451 z += (1-2*
m_UpDown) * (RPC_TH + STR_TH)/2.0 ;
459 for(
int i=0;i<3;i++) {
483 y = (1-2*
m_UpDown) * ( RPC_TH + STR_TH )/2.0;
489 z = (2*
m_UpDown - 1) * 3 * B_RPC_LTN / 2.0;
491 z = (2*
m_UpDown - 1) * 3 * B_RPC_LTS / 2.0;
498 z = B_BOX_LT/2.0 - B_BOX_DZ[
m_UpDown] - (1+2*
m_ID)*B_RPC_LTN/2.0;
500 z = -B_BOX_LT/2.0 + B_BOX_DZ[
m_UpDown] + (1+2*(3-
m_ID))*B_RPC_LTN/2.0;
505 z = B_BOX_LT/2.0 - B_BOX_DZ[
m_UpDown] - (1+2*
m_ID)*B_RPC_LTS/2.0;
507 z = -B_BOX_LT/2.0 + B_BOX_DZ[
m_UpDown] + (1+2*(3-
m_ID))*B_RPC_LTS/2.0;
520 y = (1-2*
m_UpDown) * ( RPC_TH + STR_TH )/2.0;
530 z = B_BOX_LT/2.0 - B_BOX_DZ[
m_UpDown] - B_TOPRPC_LTS[1]/2.0;
537 z = B_BOX_LT/2.0 - B_BOX_DZ[
m_UpDown] - B_TOPRPC_LTS[1] + (3-2*
m_ID)*B_RPC_LTN/2.0;
539 z = B_BOX_LT/2.0 - B_BOX_DZ[
m_UpDown] - B_TOPRPC_LTS[
m_Layer%2] + (3-2*
m_ID)*B_RPC_LTN/2.0;
543 z = -B_RPC_LTN - B_TOPRPC_LTS[1]/2.0;
545 z = -B_RPC_LTN - B_TOPRPC_LTS[
m_Layer%2]/2.0;
556 z = B_BOX_LT/2.0 - B_BOX_DZ[
m_UpDown] - B_TOPRPC_LTS[1]/2.0;
562 z = B_RPC_LTN - B_TOPRPC_LTS[1]/2.0;
564 z = B_RPC_LTN - B_TOPRPC_LTS[
m_Layer%2]/2.0;
568 z = -B_BOX_LT/2.0 + B_BOX_DZ[
m_UpDown] + (1+2*(4-
m_ID))*B_RPC_LTN/2.0;
580 for(
int i=0;i<3;i++) {
606 x = (E_AS_RMAX - E_BOX_DR + E_GP_DX) / 2.0;
607 y = (E_AS_RMAX - E_BOX_DR + E_GP_DY) / 2.0;
616 for(
int i=0; i<
m_Layer+1; i++ ) z += E_AS_TH[i];
619 z += ( (E_AS_ZMAX - E_AS_TOTAL_TH) + AS_GAP/2.0 );
629 for(
int i=0;i<3;i++) {
641 for(
int i=0;i<3;i++) {
653 for(
int i=0;i<3;i++) {
double sin(const BesAngle a)
double cos(const BesAngle a)
MucEntity & operator=(const MucEntity &other)
void TransBesToLoc(double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
void TransLocToBes(double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
virtual void SetLocOrgInBes()
MucRpc & operator=(const MucRpc &other)
virtual void SetObjOrgInBes()
MucBakelite * GetBakelite(int id)
virtual void SetObjOrgInLoc()
MucRpc(int part, int segment, int layer, int upDown, int id)