11#include "MucGeoCreateAlg/MucGeoConst.h"
12#include "MucGeoCreateAlg/MucStripPlane.h"
26 m_MucStrip = other.m_MucStrip;
37 m_MucStrip = other.m_MucStrip;
72 if( m_MucStrip != NULL )
delete m_MucStrip;
87 m_Theta = ( MUC_PI/4.0 ) + (
m_ID - 1) * MUC_PI / 8.0 ;
109 m_Rout = E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[(
m_Layer==0)?0:1];
119 m_Rc = sqrt(2.0) * ( E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[(
m_Layer==0)?0:1] ) / 2.0;
133 if( (
m_Layer+1)%2 == 0 ) offset = 2*B_BOX_DZ[1];
134 else offset = 2*B_BOX_DT[1];
143 m_W = (B_BOX_WT[
m_Layer] - offset - B_PHISTR_CUT)/2.0;
151 m_W = E_AS_RMAX - E_BOX_DR - E_GP_DX - (E_STRPLN_DA + E_STRPLN_DB[(
m_Layer==0)?0:1]);
164 m_H = E_AS_RMAX - E_BOX_DR - E_GP_DY - (E_STRPLN_DA + E_STRPLN_DB[(
m_Layer==0)?0:1]);
167 m_H = E_AS_RMAX - E_BOX_DR - E_GP_RMIN[
m_Layer] - E_STRPLN_DR - E_STRPLN_DB[(
m_Layer==0)?0:1];
168 if(
m_ID==1)
m_H += (E_STR_DST+5.0)/sqrt(2.0);
170 m_H += 4*OVERLAP_WIDTH;
182 if(
m_ID == -1)
m_L = B_BOX_LT - 2*B_BOX_DZ[SL_DOWN];
187 m_L = B_BOX_LT - 2*B_BOX_DZ[SL_DOWN];
204 m_Wu -= VALUE*(E_STR_DST+5.0)/sqrt(2.0);
207 m_Wu = VALUE *
m_Rin - E_GP_DY - E_STRPLN_DA;
209 m_Wu = VALUE *
m_Rin - E_GP_DX - E_STRPLN_DA;
228 m_Wd += VALUE*(E_STR_DST+5.0)/sqrt(2.0);
231 m_Wd = VALUE *
m_Rout - E_GP_DY - E_STRPLN_DA;
233 m_Wd = VALUE *
m_Rout - E_GP_DX - E_STRPLN_DA;
237 m_Wd += 4*OVERLAP_WIDTH;
260 x = (E_AS_RMAX - E_BOX_DR + E_GP_DX) / 2.0;
261 y = (E_AS_RMAX - E_BOX_DR + E_GP_DY) / 2.0;
265 x = (E_AS_RMAX+E_GP_DX+E_STRPLN_DA -E_BOX_DR-E_STRPLN_DB[(
m_Layer==0)?0:1])/2.0;
266 y = (E_AS_RMAX+E_GP_DY+E_STRPLN_DA -E_BOX_DR-E_STRPLN_DB[(
m_Layer==0)?0:1])/2.0;
276 for(
int i=0; i<
m_Layer+1; i++ ) z += E_AS_TH[i];
279 z += (E_AS_ZMAX - E_AS_TOTAL_TH + z) + AS_GAP/2.0;
289 for(
int i=0;i<3;i++) {
298 for(
int i=0; i<3; i++ )
308 x = E_GP_DX + E_STRPLN_DA +
m_W/2.0;
309 y = E_GP_DY + E_STRPLN_DA +
m_H/2.0;
337 for(
int i=0; i<2; i++ ) {
355 if(
m_ID == 2)
x = 0.0;
356 else if(
m_ID == 0)
x = (B_PHISTR_CUT +
m_W)/2.0;
357 else x = -(B_PHISTR_CUT +
m_W)/2.0;
double tan(const BesAngle a)
double sin(const BesAngle a)
double cos(const BesAngle a)
const double B_ZSTR_CUT[2]
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)