21 m_MucStripPlane = NULL;
28 m_MucStripPlane = other.m_MucStripPlane;
29 m_MucRpc = other.m_MucRpc;
30 m_MucBoxCover = other.m_MucBoxCover;
35 if (
this == &other )
return *
this;
38 m_MucRpc = other.m_MucRpc;
39 m_MucBoxCover = other.m_MucBoxCover;
40 m_MucStripPlane = other.m_MucStripPlane;
47 delete m_MucStripPlane;
75 if ( m_MucStripPlane != NULL )
return m_MucStripPlane;
78 ( (
m_Part == BRID ) ? 0 : -1 ) ) );
82 if ( m_MucRpc != NULL )
delete m_MucRpc;
87 if ( m_MucBoxCover != NULL )
delete m_MucBoxCover;
97 else m_Theta = ( MUC_PI / 4.0 ) + (
m_ID - 1 ) * MUC_PI / 8.0;
112 else m_Rout = E_AS_RMAX - E_BOX_DR;
119 if (
m_ID == -1 )
m_Rc = sqrt( 2.0 ) * ( E_AS_RMAX - E_BOX_DR ) / 2.0;
133 else m_W = ( B_BOX_WT[
m_Layer] - B_BOX_SLOT_WT ) / 2.0;
139 m_W = E_AS_RMAX - E_BOX_DR - E_GP_DX;
149 m_H = E_AS_RMAX - E_BOX_DR - E_GP_DY;
150 else if (
m_ID == 1 )
151 m_H = E_AS_RMAX - E_BOX_DR - E_GP_RMIN[
m_Layer] + OVERLAP_WIDTH;
152 else m_H = E_AS_RMAX - E_BOX_DR - E_GP_RMIN[
m_Layer];
175 else if (
m_ID == 1 )
178 m_Wu -= 2 * VALUE * ( 2.0 / 2 );
179 m_Wu += OVERLAP_WIDTH;
184 if (
m_ID != -1 )
m_Wu += OVERLAP_WIDTH;
194 else if (
m_ID == 1 )
197 m_Wd += 2 * VALUE * ( 2.0 / 2 );
198 m_Wd += OVERLAP_WIDTH;
203 if (
m_ID != -1 )
m_Wd += OVERLAP_WIDTH;
229 x = ( E_AS_RMAX + E_GP_DX ) / 2.0;
230 y = ( E_AS_RMAX + E_GP_DY ) / 2.0;
234 x = ( E_AS_RMAX - E_BOX_DR + E_GP_DX ) / 2.0;
235 y = ( E_AS_RMAX - E_BOX_DR + E_GP_DY ) / 2.0;
249 for (
int i = 0; i <
m_Layer + 1; i++ ) z += E_AS_TH[i];
252 z += ( E_AS_ZMAX - E_AS_TOTAL_TH ) + AS_GAP / 2.0;
262 for (
int i = 0; i < 3; i++ )
292 if (
m_ID == 2 ) x = 0.;
293 else x = ( 1 - 2 *
m_ID ) * ( B_BOX_WT[
m_Layer] + B_BOX_SLOT_WT ) / 4.0;
297 else z = ( B_BOX_LT - B_TOPRPC_LTS[(
m_Layer == 0 ) ? 1 : (
m_Layer % 2 )] ) / 2.0;
306 for (
int i = 0; i < 3; i++ )
316 x = ( E_AS_RMAX - E_BOX_DR + E_GP_DX ) / 2.0;
317 y = ( E_AS_RMAX - E_BOX_DR + E_GP_DY ) / 2.0;
319 else if (
m_ID == 0 )
324 else if (
m_ID == 1 )
349 for (
int i = 0; i < 2; i++ )
double tan(const BesAngle a)
double sin(const BesAngle a)
double cos(const BesAngle a)
virtual void SetAlignment(double dx, double dy, double dz)
MucBox(int part, int segment, int layer, int id)
virtual void SetObjOrgInLoc()
virtual void SetObjOrgInBes()
MucRpc * GetRpc(int upDown, int id)
MucBoxCover * GetBoxCover(int upDown, int id)
virtual void SetLocOrgInBes()
virtual void SetObjRotToMot()
MucStripPlane * GetStripPlane()
MucBox & operator=(const MucBox &other)
MucEntity(int part, int segment, int layer)
MucEntity & operator=(const MucEntity &other)