114{
115
116
118
119 G4double zHalfLength = fBesEmcGeometry->GetZHalfLength(fCrystalID);
120 G4double thetaAxis = fBesEmcGeometry->GetThetaAxis(fCrystalID);
121 G4double phiAxis = fBesEmcGeometry->GetPhiAxis(fCrystalID);
122 G4double yHalfLength1 = fBesEmcGeometry->GetYHalfLength1(fCrystalID);
123 G4double xHalfLength1 = fBesEmcGeometry->GetXHalfLength1(fCrystalID);
124 G4double xHalfLength2 = fBesEmcGeometry->GetXHalfLength2(fCrystalID);
125 G4double tanAlpha1 = fBesEmcGeometry->GetTanAlpha1(fCrystalID);
126 G4double yHalfLength2 = fBesEmcGeometry->GetYHalfLength2(fCrystalID);
127 G4double xHalfLength3 = fBesEmcGeometry->GetXHalfLength3(fCrystalID);
128 G4double xHalfLength4 = fBesEmcGeometry->GetXHalfLength4(fCrystalID);
129 G4double tanAlpha2 = fBesEmcGeometry->GetTanAlpha2(fCrystalID);
130
131 if(!fFlagLeft)
132 {
133 phiAxis=-phiAxis;
134 tanAlpha1=-tanAlpha1;
135 tanAlpha2=-tanAlpha2;
136 G4double tmp;
137 tmp=xHalfLength1;
138 xHalfLength1=xHalfLength2;
139 xHalfLength2=tmp;
140 tmp=xHalfLength3;
141 xHalfLength3=xHalfLength4;
142 xHalfLength4=tmp;
143 }
144 if(fVerboseLevel>5)
145 G4cout << "The size of No." << copyNo << " crystal(placed) are:" << G4endl
146 << "zHalfLength =" << zHalfLength/cm << "(cm), " << G4endl
147 << "thetaAxis =" << thetaAxis/deg << "(degree), " << G4endl
148 << "phiAxis =" << phiAxis/deg << "(degree), " << G4endl
149 << "yHalfLength1=" << yHalfLength1/cm << "(cm), " << G4endl
150 << "xHalfLength1=" << xHalfLength1/cm << "(cm), " << G4endl
151 << "xHalfLength2=" << xHalfLength2/cm << "(cm), " << G4endl
152 << "tanAlpha1 =" << tanAlpha1 << "(), " << G4endl
153 << "yHalfLength2=" << yHalfLength2/cm << "(cm), " << G4endl
154 << "xHalfLength3=" << xHalfLength3/cm << "(cm), " << G4endl
155 << "xHalfLength4=" << xHalfLength4/cm << "(cm)." << G4endl
156 << "tanAlpha2 =" << tanAlpha2 << "(), " << G4endl
157 << "(x4-x3)*y1/(x2-x1)/y2="
158 << (xHalfLength4-xHalfLength3)*yHalfLength1/(xHalfLength2-xHalfLength1)/yHalfLength2 << G4endl
159 << "tanAlpha2/tanAlpha1=" << tanAlpha2/tanAlpha1 <<G4endl;
160
161
162 trackerChamber.SetAllParameters(
163 zHalfLength,
164 thetaAxis,
165 phiAxis,
166 yHalfLength1,
167 xHalfLength1,
168 xHalfLength2,
169 tanAlpha1,
170 yHalfLength2,
171 xHalfLength3,
172 xHalfLength4,
173 tanAlpha2);
174
175}
void ComputeIDAndSide(const G4VPhysicalVolume *) const