18 :
MucEntity( part, segment, layer, upDown, id ) {
27 if (
this == &other )
return *
this;
61 else m_Theta = ( MUC_PI / 4.0 ) + (
m_ID - 1 ) * MUC_PI / 8.0;
78 else m_Rout = E_AS_RMAX - E_BOX_DR;
86 if (
m_ID == -1 )
m_Rc = sqrt( 2.0 ) * ( E_AS_RMAX - E_BOX_DR ) / 2.0;
100 else m_W = ( B_BOX_WT[
m_Layer] - B_BOX_SLOT_WT ) / 2.0;
106 m_W = E_AS_RMAX - E_BOX_DR - E_GP_DX;
112 if (
m_Part == BRID )
m_H = BOX_COVER_TH;
116 m_H = E_AS_RMAX - E_BOX_DR - E_GP_DY;
117 else m_H = E_AS_RMAX - E_BOX_DR - E_GP_RMIN[
m_Layer];
131 else m_L = BOX_COVER_TH;
140 else if (
m_ID == 1 )
153 else if (
m_ID == 1 )
175 x = ( E_AS_RMAX - E_BOX_DR + E_GP_DX ) / 2.0;
176 y = ( E_AS_RMAX - E_BOX_DR + E_GP_DY ) / 2.0;
189 for (
int i = 0; i <
m_Layer + 1; i++ ) z += E_AS_TH[i];
192 z += ( E_AS_ZMAX - E_AS_TOTAL_TH ) + AS_GAP / 2.0;
195 if (
m_ID != -1 ) z += ( 1 - 2 *
m_UpDown ) * ( BOX_TH - BOX_COVER_TH ) / 2.0;
204 for (
int i = 0; i < 3; i++ )
217 r =
m_Rc + ( 1 - 2 *
m_UpDown ) * ( BOX_TH - BOX_COVER_TH ) / 2.0;
225 if (
m_ID == 2 ) x = 0.;
226 else x = ( 1 - 2 *
m_ID ) * ( B_BOX_WT[
m_Layer] + B_BOX_SLOT_WT ) / 4.0;
229 y =
m_Rc + ( 1 - 2 *
m_UpDown ) * ( BOX_TH - BOX_COVER_TH ) / 2.0;
233 else z = ( B_BOX_LT - B_TOPRPC_LTS[(
m_Layer == 0 ) ? 1 : (
m_Layer % 2 )] ) / 2.0;
242 x = ( E_AS_RMAX - E_BOX_DR + E_GP_DX ) / 2.0;
243 y = ( E_AS_RMAX - E_BOX_DR + E_GP_DY ) / 2.0;
245 else if (
m_ID == 0 )
250 else if (
m_ID == 1 )
282 for (
int i = 0; i < 3; i++ )
305 ( B_BOX_LT - B_TOPRPC_LTS[(
m_Layer == 0 ) ? 1 : (
m_Layer % 2 )] ) / 2.0;
314 for (
int i = 0; i < 3; i++ )
double tan(const BesAngle a)
double sin(const BesAngle a)
double cos(const BesAngle a)
virtual void SetObjOrgInBes()
MucBoxCover(int part, int segment, int layer, int upDown, int id)
virtual void SetLocOrgInBes()
virtual void SetObjOrgInLoc()
MucBoxCover & operator=(const MucBoxCover &other)
MucEntity(int part, int segment, int layer)
MucEntity & operator=(const MucEntity &other)