28 if (
this == &other )
return *
this;
30 m_MucBox = other.m_MucBox;
61 if ( m_MucBox != NULL )
return m_MucBox;
73 else m_Theta = ( MUC_PI / 4.0 ) + (
m_ID - 1 ) * MUC_PI / 8.0;
95 if (
m_ID == -1 )
m_Rc = sqrt( 2.0 ) * E_AS_RMAX / 2.0;
109 else m_W = ( B_GP_WT[
m_Layer] - B_GP_SLOT_WT ) / 2.0;
115 m_W = E_AS_RMAX - E_GP_DX;
121 if (
m_Part == BRID )
m_H = AS_GAP - 0.2;
125 m_H = E_AS_RMAX - E_GP_DY;
126 else if (
m_ID == 1 )
128 m_H = E_AS_RMAX - E_GP_RMIN[
m_Layer] + 1.5 * OVERLAP_WIDTH;
140 if (
m_ID == 2 )
m_L = B_AS_LMAX - B_GP_SLOT_LT;
141 else m_L = B_GP_SLOT_LT;
153 else if (
m_ID == 1 )
156 m_Wu -= 2 * VALUE * ( 2.0 / 2 );
157 m_Wu += 1.5 * OVERLAP_WIDTH;
162 if (
m_ID != -1 )
m_Wu += OVERLAP_WIDTH;
172 else if (
m_ID == 1 )
175 m_Wd += 2 * VALUE * ( 2.0 / 2 );
176 m_Wd += 1.5 * OVERLAP_WIDTH;
181 if (
m_ID != -1 )
m_Wd += OVERLAP_WIDTH;
199 x = ( E_AS_RMAX + E_GP_DX ) / 2.0;
200 y = ( E_AS_RMAX + E_GP_DY ) / 2.0;
213 for (
int i = 0; i <
m_Layer + 1; i++ ) z += E_AS_TH[i];
216 z += ( E_AS_ZMAX - E_AS_TOTAL_TH ) + AS_GAP / 2.0;
225 for (
int i = 0; i < 3; i++ )
248 if (
m_ID == 2 ) x = 0.;
249 else x = ( 1 - 2 *
m_ID ) * ( B_GP_WT[
m_Layer] + B_GP_SLOT_WT ) / 4.0;
252 if (
m_ID == 2 ) z = -B_GP_SLOT_LT / 2.0;
253 else z = ( B_AS_LMAX - B_GP_SLOT_LT ) / 2.0;
262 for (
int i = 0; i < 3; i++ )
275 else if (
m_ID == 1 )
300 for (
int i = 0; i < 2; i++ )
double tan(const BesAngle a)
double sin(const BesAngle a)
double cos(const BesAngle a)
MucEntity(int part, int segment, int layer)
MucEntity & operator=(const MucEntity &other)
MucGap & operator=(const MucGap &other)
virtual void SetObjOrgInBes()
virtual void SetLocOrgInBes()
MucGap(int part, int segment, int layer, int id)
virtual void SetObjRotToMot()
virtual void SetObjOrgInLoc()