9 #include "CLHEP/Units/PhysicalConstants.h" 10 using namespace CLHEP;
15 intersensors = (0.11 + 0.002)*mm;
20 NSensors.push_back(3); NSensors.push_back(3);
21 NSensors.push_back(3); NSensors.push_back(3);
22 NSensors.push_back(3); NSensors.push_back(3);
23 NSensors.push_back(3); NSensors.push_back(3);
25 DZ_inLength = 0.984*mm;
26 DZ_inWidth = 0.835*mm;
27 SensorLength = 111.625*mm;
28 SensorWidth = 42.02*mm;
31 Nstrips = (int) floor((SensorWidth-2.0*DZ_inLength)/pitch) - 1;
43 vector<double> strip_id;
47 double dalpha = alpha/((float)Nstrips);
50 double lx = Lxyz.x() + SensorWidth/2.0 - DZ_inLength;
53 double lz = Lxyz.z() + SensorLength/2.0 - DZ_inWidth + (isens-1)*(SensorLength + intersensors) ;
56 if( fabs(Lxyz.z()) < (SensorLength/2.0 - DZ_inWidth) && fabs(Lxyz.x()) < (SensorWidth/2.0 - DZ_inLength))
60 for(
int k=0; k<Nstrips; k++)
63 double alpha_k = k*dalpha;
73 intcp = SensorWidth - 2*DZ_inLength - (k+1)*pitch ;
74 m = -tan(alpha_k/rad);
86 double stripx = intcp + m*lz;
88 if(fabs(lx - stripx) < fabs(minDist))
90 minDist = lx - stripx;
102 double dpitch = pitch + lz*tan(dalpha/rad);
106 int moduleDirection = 1;
108 moduleDirection = -1;
111 if(fabs(minDist)<=dpitch/4.0)
113 strip_id.push_back(StripHit);
114 strip_id.push_back(1);
118 if(minDist>dpitch/4.0)
120 strip_id.push_back(StripHit);
121 strip_id.push_back(0.45);
122 if(StripHit + moduleDirection != 0)
124 strip_id.push_back(StripHit + moduleDirection);
125 strip_id.push_back(0.45);
131 if(minDist<-dpitch/4.0)
133 strip_id.push_back(StripHit);
134 strip_id.push_back(0.45);
135 if(StripHit - moduleDirection != 0)
137 strip_id.push_back(StripHit - moduleDirection);
138 strip_id.push_back(0.45);
145 strip_id.push_back(-5);
146 strip_id.push_back(1);
vector< double > FindStrip(int layer, int sector, int isens, G4ThreeVector Lxyz)