25 m_MucStrip = other.m_MucStrip;
30 if (
this == &other )
return *
this;
32 m_MucStrip = other.m_MucStrip;
62 if ( m_MucStrip != NULL )
delete m_MucStrip;
72 else m_Theta = ( MUC_PI / 4.0 ) + (
m_ID - 1 ) * MUC_PI / 8.0;
87 else m_Rout = E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[(
m_Layer == 0 ) ? 0 : 1];
96 sqrt( 2.0 ) * ( E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[(
m_Layer == 0 ) ? 0 : 1] ) / 2.0;
105 if ( (
m_Layer + 1 ) % 2 == 0 ) offset = 2 * B_BOX_DZ[1];
106 else offset = 2 * B_BOX_DT[1];
113 else m_W = ( B_BOX_WT[
m_Layer] - offset - B_PHISTR_CUT ) / 2.0;
120 m_W = E_AS_RMAX - E_BOX_DR - E_GP_DX -
121 ( E_STRPLN_DA + E_STRPLN_DB[(
m_Layer == 0 ) ? 0 : 1] );
131 m_H = E_AS_RMAX - E_BOX_DR - E_GP_DY -
132 ( E_STRPLN_DA + E_STRPLN_DB[(
m_Layer == 0 ) ? 0 : 1] );
135 m_H = E_AS_RMAX - E_BOX_DR - E_GP_RMIN[
m_Layer] - E_STRPLN_DR -
136 E_STRPLN_DB[(
m_Layer == 0 ) ? 0 : 1];
137 if (
m_ID == 1 )
m_H += ( E_STR_DST + 5.0 ) / sqrt( 2.0 );
138 m_H += 4 * OVERLAP_WIDTH;
149 if (
m_ID == -1 )
m_L = B_BOX_LT - 2 * B_BOX_DZ[SL_DOWN];
150 else if (
m_ID == 2 )
151 m_L = B_BOX_LT - 2 * B_BOX_DZ[SL_DOWN] -
155 else m_L = B_BOX_LT - 2 * B_BOX_DZ[SL_DOWN];
166 else if (
m_ID == 1 )
169 m_Wu -= VALUE * ( E_STR_DST + 5.0 ) / sqrt( 2.0 );
171 else if (
m_ID == 0 )
m_Wu = VALUE *
m_Rin - E_GP_DY - E_STRPLN_DA;
172 else m_Wu = VALUE *
m_Rin - E_GP_DX - E_STRPLN_DA;
185 else if (
m_ID == 1 )
189 m_Wd += VALUE * ( E_STR_DST + 5.0 ) / sqrt( 2.0 );
191 else if (
m_ID == 0 )
m_Wd = VALUE *
m_Rout - E_GP_DY - E_STRPLN_DA;
192 else m_Wd = VALUE *
m_Rout - E_GP_DX - E_STRPLN_DA;
196 m_Wd += 4 * OVERLAP_WIDTH;
215 x = ( E_AS_RMAX - E_BOX_DR + E_GP_DX ) / 2.0;
216 y = ( E_AS_RMAX - E_BOX_DR + E_GP_DY ) / 2.0;
220 x = ( E_AS_RMAX + E_GP_DX + E_STRPLN_DA - E_BOX_DR -
221 E_STRPLN_DB[(
m_Layer == 0 ) ? 0 : 1] ) /
223 y = ( E_AS_RMAX + E_GP_DY + E_STRPLN_DA - E_BOX_DR -
224 E_STRPLN_DB[(
m_Layer == 0 ) ? 0 : 1] ) /
239 for (
int i = 0; i <
m_Layer + 1; i++ ) z += E_AS_TH[i];
242 z += ( E_AS_ZMAX - E_AS_TOTAL_TH + z ) + AS_GAP / 2.0;
251 for (
int i = 0; i < 3; i++ )
267 x = E_GP_DX + E_STRPLN_DA +
m_W / 2.0;
268 y = E_GP_DY + E_STRPLN_DA +
m_H / 2.0;
270 else if (
m_ID == 0 )
275 else if (
m_ID == 1 )
300 for (
int i = 0; i < 2; i++ )
316 if (
m_ID == 2 ) x = 0.0;
317 else if (
m_ID == 0 ) x = ( B_PHISTR_CUT +
m_W ) / 2.0;
318 else x = -( B_PHISTR_CUT +
m_W ) / 2.0;
326 z = B_BOX_LT / 2.0 - B_BOX_DZ[SL_DOWN] -
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)
MucStripPlane(int part, int segment, int layer, int id)
MucStrip * GetStrip(int id)
virtual void SetObjOrgInLoc()
virtual void SetObjOrgInBes()
virtual void SetLocOrgInBes()
MucStripPlane & operator=(const MucStripPlane &other)
virtual void SetAlignment(double dx, double dy, double dz)