30 mStripWallWidthOut(0.),
31 mStripWallWidthIn(0.),
33 mInnerThermoWidthX(0.f),
34 mInnerThermoWidthY(0.f),
35 mInnerThermoWidthZ(0.f),
42 mAlCoverThickness(0.f),
43 mOuterThermoWidthXUp(0.f),
44 mOuterThermoWidthXLow(0.f),
45 mOuterThermoWidthY(0.f),
46 mOuterThermoWidthZ(0.f),
49 mFiberGlassSup2X(0.f),
50 mFiberGlassSup1X(0.f),
56 mWarmUpperThickness(0.f),
57 mWarmBottomThickness(0.f),
58 mWarmAlCoverWidthX(0.f),
59 mWarmAlCoverWidthY(0.f),
60 mWarmAlCoverWidthZ(0.f),
61 mFiberGlassSup1Y(0.f),
62 mFiberGlassSup2Y(0.f),
64 mTSupport1Thickness(0.f),
65 mTSupport2Thickness(0.f),
68 mIPtoOuterCoverDistance(0.f),
69 mIPtoCrystalSurface(0.f),
70 mSupportPlateThickness(0.f),
71 mzAirTightBoxToTopModuleDist(0.f),
80 mDistanceBetwRails(0.),
81 mRailsDistanceFromIP(0.),
82 mCradleWallThickness(0.),
91 mIPtoCrystalSurface = 460.0;
95 mCrystalHalfSize[0] = 2.2 / 2;
96 mCrystalHalfSize[1] = 18.0 / 2;
97 mCrystalHalfSize[2] = 2.2 / 2;
105 mPinDiodeHalfSize[0] = 0.5000 / 2;
106 mPinDiodeHalfSize[1] = 0.0100 / 2;
107 mPinDiodeHalfSize[2] = 0.5000 / 2;
109 mPreampHalfSize[0] = 1.5 / 2;
110 mPreampHalfSize[1] = 0.5 / 2;
111 mPreampHalfSize[2] = 1.5 / 2;
120 mStripWallWidthOut = 0.01;
121 mStripWallWidthIn = 0.02;
123 mTyvecThickness = 0.0175;
126 1.5 - 2 * mPreampHalfSize[1] - 2 * mPinDiodeHalfSize[1];
131 mWrappedHalfSize[0] = (2 * mTyvecThickness + 2 * mCrystalHalfSize[0]) / 2;
132 mWrappedHalfSize[1] = mCrystalHalfSize[1];
133 mWrappedHalfSize[2] = (2 * mTyvecThickness + 2 * mCrystalHalfSize[2]) / 2;
135 mAirCellHalfSize[0] = mWrappedHalfSize[0] + 0.01;
136 mAirCellHalfSize[1] =
137 (mAirGapLed + 2 * mPreampHalfSize[1] + 2 * mPinDiodeHalfSize[1] + 2 * mWrappedHalfSize[1]) / 2;
138 mAirCellHalfSize[2] = mWrappedHalfSize[2] + 0.01;
142 mSupportPlateHalfSize[0] = 18.04 / 2;
143 mSupportPlateHalfSize[1] = 6.0 / 2;
146 mSupportPlateHalfSize[2] = 4.51 / 2;
147 mSupportPlateThickness = 0.3;
148 mSupportPlateInHalfSize[0] = mSupportPlateHalfSize[0];
149 mSupportPlateInHalfSize[1] = mSupportPlateHalfSize[1] - mSupportPlateThickness;
150 mSupportPlateInHalfSize[2] = mSupportPlateHalfSize[2] - mSupportPlateThickness / 2;
152 mStripHalfSize[0] = mSupportPlateHalfSize[0];
153 mStripHalfSize[1] = (2 * mSupportPlateHalfSize[1] + 2 * mAirCellHalfSize[1]) / 2;
154 mStripHalfSize[2] = mSupportPlateHalfSize[2];
157 mInnerThermoWidthX = 2.0;
158 mInnerThermoWidthY = 2.0;
159 mInnerThermoWidthZ = 2.0;
161 mInnerThermoHalfSize[0] = (2 * mStripHalfSize[0] * mNStripX + 2 * mInnerThermoWidthX) / 2;
162 mInnerThermoHalfSize[1] = (2 * mStripHalfSize[1] + mInnerThermoWidthY) / 2;
163 mInnerThermoHalfSize[2] = (2 * mStripHalfSize[2] * mNStripZ + 2 * mInnerThermoWidthZ) / 2;
171 mAirGapHalfSize[0] = (2 * mInnerThermoHalfSize[0] + 2 * mAirGapWidthX) / 2;
172 mAirGapHalfSize[1] = (2 * mInnerThermoHalfSize[1] + mAirGapWidthY) / 2;
173 mAirGapHalfSize[2] = (2 * mInnerThermoHalfSize[2] + 2 * mAirGapWidthZ) / 2;
181 mCoolerHalfSize[0] = (2 * mAirGapHalfSize[0] + 2 * mCoolerWidthX) / 2;
182 mCoolerHalfSize[1] = (2 * mAirGapHalfSize[1] + mCoolerWidthY) / 2;
183 mCoolerHalfSize[2] = (2 * mAirGapHalfSize[2] + 2 * mCoolerWidthZ) / 2;
187 mAlCoverThickness = 0.1;
189 mOuterThermoWidthXUp = 156.0 - mAlCoverThickness;
191 mOuterThermoWidthY = 6.0;
192 mOuterThermoWidthZ = 6.0;
194 mAlFrontCoverX = 6.0;
195 mAlFrontCoverZ = 6.0;
197 mzAirTightBoxToTopModuleDist = 1.;
202 mIPtoOuterCoverDistance = mIPtoCrystalSurface - mAirGapLed - mInnerThermoWidthY - mAirGapWidthY - mCoolerWidthY -
203 mOuterThermoWidthY - mAlCoverThickness - mzAirTightBoxToTopModuleDist - mATBoxWall;
205 Float_t tanA = mOuterThermoWidthXUp / (2. * mIPtoOuterCoverDistance);
208 mOuterThermoWidthXLow =
209 mOuterThermoWidthXUp + 2 * (2 * mCoolerHalfSize[1] + mOuterThermoWidthY) * tanA - mAlCoverThickness;
212 mOuterThermoParams[0] = mOuterThermoWidthXUp / 2;
213 mOuterThermoParams[1] = mOuterThermoWidthXLow / 2;
214 mOuterThermoParams[2] = (2 * mCoolerHalfSize[2] + 2 * mOuterThermoWidthZ) / 2;
216 mOuterThermoParams[3] = (2 * mCoolerHalfSize[1] + mOuterThermoWidthY) / 2;
219 mAlCoverParams[0] = mOuterThermoParams[0] + mAlCoverThickness;
220 mAlCoverParams[1] = mOuterThermoParams[1] + mAlCoverThickness;
221 mAlCoverParams[2] = mOuterThermoParams[2] + mAlCoverThickness;
222 mAlCoverParams[3] = mOuterThermoParams[3] + mAlCoverThickness / 2;
224 mFiberGlassHalfSize[0] = mAlCoverParams[0] - mAlFrontCoverX;
225 mFiberGlassHalfSize[1] = mAlCoverParams[2] - mAlFrontCoverZ;
226 mFiberGlassHalfSize[2] = mAlCoverThickness / 2;
230 mWarmAlCoverWidthX = 2 * mAlCoverParams[1];
231 mWarmAlCoverWidthY = 159.0;
234 mTSupport1Thickness = 3.5;
235 mTSupport2Thickness = 5.0;
236 mTSupport1Width = 10.6;
237 mTSupport2Width = 3.1;
238 mNTSupports = mNStripX + 1;
239 mTSupportDist = 7.48;
242 mAirSpaceFeeX = 148.6;
243 mAirSpaceFeeY = 135.0;
244 mAirSpaceFeeZ = 19.0;
247 mWarmBottomThickness = 4.0;
248 mWarmUpperThickness = 4.0;
251 mFrameThickness = 5.0;
255 mFiberGlassSup1X = 6.0;
256 mFiberGlassSup1Y = 3.9 + mWarmUpperThickness;
258 mFiberGlassSup2X = 3.0;
259 mFiberGlassSup2Y = mFrameHeight;
264 mAirSpaceFeeZ + mWarmBottomThickness + mWarmUpperThickness + mTSupport1Thickness + mTSupport2Thickness;
266 mWarmAlCoverHalfSize[0] = mWarmAlCoverWidthX / 2;
267 mWarmAlCoverHalfSize[1] = mWarmAlCoverWidthY / 2;
268 mWarmAlCoverHalfSize[2] = mWarmAlCoverWidthZ / 2;
270 mWarmThermoHalfSize[0] = mWarmAlCoverHalfSize[0] - mAlCoverThickness;
271 mWarmThermoHalfSize[1] = mWarmAlCoverHalfSize[1] - mAlCoverThickness;
272 mWarmThermoHalfSize[2] = mWarmAlCoverHalfSize[2] - mAlCoverThickness / 2;
275 mTSupport1HalfSize[0] = mTSupport1Width / 2;
276 mTSupport1HalfSize[1] = (mAirSpaceFeeY + 2 * mFiberGlassSup1X) / 2;
277 mTSupport1HalfSize[2] = mTSupport1Thickness / 2;
279 mTSupport2HalfSize[0] = mTSupport2Width / 2;
280 mTSupport2HalfSize[1] = mTSupport1HalfSize[1];
281 mTSupport2HalfSize[2] = mTSupport2Thickness / 2;
284 mTCables1HalfSize[0] =
285 (2 * mTSupport1HalfSize[0] * mNTSupports + (mNTSupports - 1) * mTSupportDist) / 2;
286 mTCables1HalfSize[1] = mTSupport1HalfSize[1];
287 mTCables1HalfSize[2] = mTSupport1HalfSize[2];
289 mTCables2HalfSize[0] = mTCables1HalfSize[0];
290 mTCables2HalfSize[1] = mTSupport2HalfSize[1];
291 mTCables2HalfSize[2] = mTSupport2HalfSize[2];
294 mFrameXHalfSize[0] = (mAirSpaceFeeX + 2 * mFiberGlassSup2X + 2 * mFrameThickness) / 2;
295 mFrameXHalfSize[1] = mFrameThickness / 2;
296 mFrameXHalfSize[2] = mFrameHeight / 2;
298 mFrameXPosition[0] = 0;
299 mFrameXPosition[1] = mAirSpaceFeeY / 2 + mFiberGlassSup2X + mFrameXHalfSize[1];
300 mFrameXPosition[2] = mWarmThermoHalfSize[2] - mFrameHeight / 2 - mWarmBottomThickness;
302 mFrameZHalfSize[0] = mFrameThickness / 2;
303 mFrameZHalfSize[1] = (mAirSpaceFeeY + 2 * mFiberGlassSup2X) / 2;
304 mFrameZHalfSize[2] = mFrameHeight / 2;
306 mFrameZPosition[0] = mAirSpaceFeeX / 2 + mFiberGlassSup2X + mFrameZHalfSize[0];
307 mFrameZPosition[1] = 0;
308 mFrameZPosition[2] = mWarmThermoHalfSize[2] - mFrameHeight / 2 - mWarmBottomThickness;
312 mFGupXHalfSize[0] = mFrameXHalfSize[0];
313 mFGupXHalfSize[1] = mFiberGlassSup1X / 2;
314 mFGupXHalfSize[2] = mFiberGlassSup1Y / 2;
316 mFGupXPosition[0] = 0;
317 mFGupXPosition[1] = mAirSpaceFeeY / 2 + mFGupXHalfSize[1];
318 mFGupXPosition[2] = mWarmThermoHalfSize[2] - mFrameHeight - mWarmBottomThickness - mFGupXHalfSize[2];
320 mFGupZHalfSize[0] = mFiberGlassSup1X / 2;
321 mFGupZHalfSize[1] = mAirSpaceFeeY / 2;
322 mFGupZHalfSize[2] = mFiberGlassSup1Y / 2;
324 mFGupZPosition[0] = mAirSpaceFeeX / 2 + mFGupZHalfSize[0];
325 mFGupZPosition[1] = 0;
326 mFGupZPosition[2] = mWarmThermoHalfSize[2] - mFrameHeight - mWarmBottomThickness - mFGupXHalfSize[2];
328 mFGlowXHalfSize[0] = mFrameXHalfSize[0] - 2 * mFrameZHalfSize[0];
329 mFGlowXHalfSize[1] = mFiberGlassSup2X / 2;
330 mFGlowXHalfSize[2] = mFrameXHalfSize[2];
332 mFGlowXPosition[0] = 0;
333 mFGlowXPosition[1] = mAirSpaceFeeY / 2 + mFGlowXHalfSize[1];
334 mFGlowXPosition[2] = mWarmThermoHalfSize[2] - mWarmBottomThickness - mFGlowXHalfSize[2];
336 mFGlowZHalfSize[0] = mFiberGlassSup2X / 2;
337 mFGlowZHalfSize[1] = mAirSpaceFeeY / 2;
338 mFGlowZHalfSize[2] = mFrameZHalfSize[2];
340 mFGlowZPosition[0] = mAirSpaceFeeX / 2 + mFGlowZHalfSize[0];
341 mFGlowZPosition[1] = 0;
342 mFGlowZPosition[2] = mWarmThermoHalfSize[2] - mWarmBottomThickness - mFGlowXHalfSize[2];
346 mFEEAirHalfSize[0] = mAirSpaceFeeX / 2;
347 mFEEAirHalfSize[1] = mAirSpaceFeeY / 2;
348 mFEEAirHalfSize[2] = mAirSpaceFeeZ / 2;
350 mFEEAirPosition[0] = 0;
351 mFEEAirPosition[1] = 0;
352 mFEEAirPosition[2] = mWarmThermoHalfSize[2] - mWarmBottomThickness - mFEEAirHalfSize[2];
356 mEMCParams[3] = mAlCoverParams[3] + mWarmAlCoverHalfSize[2];
357 mEMCParams[0] = mAlCoverParams[0];
358 mEMCParams[1] = (mAlCoverParams[1] - mAlCoverParams[0]) * mEMCParams[3] / mAlCoverParams[3] +
360 mEMCParams[2] = mWarmAlCoverHalfSize[1];
362 mNPhi = mNStripX * mNCellsXInStrip;
363 mNz = mNStripZ * mNCellsZInStrip;
366 mPHOSParams[0] = 78.924;
367 mPHOSParams[1] = 93.704;
368 mPHOSParams[2] = 80.01;
369 mPHOSParams[3] = 41.91;
371 for (Int_t
i = 0;
i < 4;
i++) {
372 mPHOSATBParams[
i] = mPHOSParams[
i] - mATBoxWall;
376 mCrystalShift = -mInnerThermoHalfSize[1] + mStripHalfSize[1] + mSupportPlateHalfSize[1] + mCrystalHalfSize[1] -
377 mAirGapLed / 2. + mPinDiodeHalfSize[1] + mPreampHalfSize[1];
378 mCryCellShift = mCrystalHalfSize[1] - (mAirGapLed - 2 * mPinDiodeHalfSize[1] - 2 * mPreampHalfSize[1]) / 2;
380 Double_t
const kRADDEG = 180.0 / TMath::Pi();
382 for (Int_t
i = 1;
i <= mNModules;
i++) {
387 Float_t r = mIPtoOuterCoverDistance + mPHOSParams[3];
388 for (Int_t iModule = 1; iModule <= mNModules; iModule++) {
389 mModuleCenter[iModule][0] =
r * TMath::Sin(mPHOSAngle[iModule] / kRADDEG);
390 mModuleCenter[iModule][1] = -
r * TMath::Cos(mPHOSAngle[iModule] / kRADDEG);
391 mModuleCenter[iModule][2] = 0.;
393 mModuleAngle[iModule][0][0] = 90;
394 mModuleAngle[iModule][0][1] = mPHOSAngle[iModule];
395 mModuleAngle[iModule][1][0] = 0;
396 mModuleAngle[iModule][1][1] = 0;
397 mModuleAngle[iModule][2][0] = 90;
398 mModuleAngle[iModule][2][1] = 270 + mPHOSAngle[iModule];
402 mRailLength = 1200.0;
403 mDistanceBetwRails = 420.0;
404 mRailsDistanceFromIP = 590.;
405 mCradleWallThickness = 2.0;
406 mModuleCraddleGap = 4.;
408 mRailPart1[0] = 28.0;
410 mRailPart1[2] = mRailLength;
413 mRailPart2[1] = 34.0;
414 mRailPart2[2] = mRailLength;
418 mRailPart3[2] = mRailLength;
424 mRailOuterSize[0] = mRailPart1[0];
425 mRailOuterSize[1] = mRailPart1[1] * 2 + mRailPart2[1] + mRailPart3[1];
426 mRailOuterSize[2] = mRailLength;
428 mRailRoadSize[0] = mDistanceBetwRails + mRailOuterSize[0];
429 mRailRoadSize[1] = mRailOuterSize[1];
430 mRailRoadSize[2] = mRailOuterSize[2];
433 mCradleWall[1] = 65.;
434 mCradleWall[2] = 18.;
435 mCradleWall[3] = 270. - 50.;
436 mCradleWall[4] = 270. + 50.;
438 mCradleWheel[0] = 30.0;
439 mCradleWheel[1] = 80.0;
440 mCradleWheel[2] = 30.0;
GeometryParams()=default
Default constructor.
GLuint const GLchar * name