30 mSupRad{17.5, 17.5, 17.5, 23.0, 23.0},
35 mOuterCut{15.5, 15.5, 16.9, 20.5, 21.9},
36 mRaisedBoxHeight(0.305),
38 mRad_M2(.156657 / 2.),
61 TGeoSubtraction* localSubtraction;
64 TGeoUnion* localUnion;
65 TGeoTranslation* localTranslation;
66 TGeoCompositeShape* localCS =
nullptr;
69 mHalfDisk =
new TGeoVolumeAssembly(Form(
"Support_H%d_D%d", half, disk));
70 auto* base =
new TGeoTubeSeg(Form(
"Base_H%d_D%d", half, disk), 0, mSupRad[disk], mSupThickness / 2., mPhi0, mPhi1);
89 for (
auto iVoid = 0; iVoid < mNumberOfVoids[disk]; iVoid++) {
91 localArb =
new TGeoArb8(Form(
"sc_void_%d_H%d_D%d", iVoid, half, disk), mSupThickness + 10. * mT_delta);
92 for (
auto iVertex = 0; iVertex < 4; iVertex++) {
93 Double_t*
vertex = &mVoidVert[disk][iVoid][iVertex][0];
95 y = ((disk == 3) || (disk == 4)) ? mOuterCut[disk] -
vertex[1] :
vertex[1];
96 localArb->SetVertex(iVertex,
vertex[0],
y);
97 localArb->SetVertex(iVertex + 4,
vertex[0],
y);
99 localCS =
new TGeoCompositeShape(
nullptr,
compositeOperation(localCS, localArb,
nullptr, TGeoSubtraction()));
104 localTube =
new TGeoTube(Form(
"sc_tube1_a_H%d_D%d", half, disk), 0, mRad_M2, mHeight_M2 + 6. * mT_delta);
105 for (
auto iHole = 0; iHole < mNumberOfM2Holes[disk]; iHole++) {
106 localTranslation =
new TGeoTranslation(-mM2Holes[disk][iHole][0],
107 mOuterCut[disk] - mM2Holes[disk][iHole][1],
108 mRaisedBoxHeight + mSupThickness / 2. - mHeight_M2);
109 localCS =
new TGeoCompositeShape(
nullptr,
compositeOperation(localCS, localTube, localTranslation, TGeoSubtraction()));
112 localTranslation =
new TGeoTranslation(mM2Holes[disk][iHole][0],
113 mOuterCut[disk] - mM2Holes[disk][iHole][1],
114 -(mRaisedBoxHeight + mSupThickness / 2. - mHeight_M2));
115 localCS =
new TGeoCompositeShape(
nullptr,
compositeOperation(localCS, localTube, localTranslation, TGeoSubtraction()));
120 localTube =
new TGeoTube(Form(
"sc_tube1_a_H%d_D%d", half, disk), 0, mRad_D2_h, mHeight_D2_h + 6. * mT_delta);
122 for (
auto iHole = 0; iHole < mNumberOfD2_hHoles[disk]; iHole++) {
123 localTranslation =
new TGeoTranslation(-mD2_hHoles[disk][iHole][0],
124 mOuterCut[disk] - mD2_hHoles[disk][iHole][1],
125 mRaisedBoxHeight + mSupThickness / 2. - mHeight_D2_h);
126 localCS =
new TGeoCompositeShape(
nullptr,
compositeOperation(localCS, localTube, localTranslation, TGeoSubtraction()));
129 localTranslation =
new TGeoTranslation(mD2_hHoles[disk][iHole][0],
130 mOuterCut[disk] - mD2_hHoles[disk][iHole][1],
131 -(mRaisedBoxHeight + mSupThickness / 2. - mHeight_D2_h));
132 localCS =
new TGeoCompositeShape(
nullptr,
compositeOperation(localCS, localTube, localTranslation, TGeoSubtraction()));
137 localTube =
new TGeoTube(Form(
"D65tube_H%d_D%d", half, disk), 0, mD65, mSupThickness / 2. + 20. * mT_delta);
138 for (
auto iHole = 0; iHole < mTwoHoles; iHole++) {
139 localTranslation =
new TGeoTranslation(-mD65Holes[disk][iHole][0],
140 mOuterCut[disk] - mD65Holes[disk][iHole][1],
142 localCS =
new TGeoCompositeShape(
nullptr,
compositeOperation(localCS, localTube, localTranslation, TGeoSubtraction()));
147 localTube =
new TGeoTube(Form(
"D6tube_H%d_D%d", half, disk), 0, mD6, mSupThickness / 2. + mT_delta);
148 for (
auto iHole = 0; iHole < mTwoHoles; iHole++) {
149 localTranslation =
new TGeoTranslation(-mD6Holes[disk][iHole][0],
150 mOuterCut[disk] - mD6Holes[disk][iHole][1],
152 localCS =
new TGeoCompositeShape(
nullptr,
compositeOperation(localCS, localTube, localTranslation, TGeoSubtraction()));
157 localTube =
new TGeoTube(Form(
"D8tube_H%d_D%d", half, disk), 0, mD8, mSupThickness / 2. + mRaisedBoxHeight + 20 * mT_delta);
158 for (
auto iHole = 0; iHole < mNumberOfD8_Holes[disk]; iHole++) {
159 localTranslation =
new TGeoTranslation(-mD8Holes[disk][iHole][0],
160 mOuterCut[disk] - mD8Holes[disk][iHole][1],
162 localCS =
new TGeoCompositeShape(
nullptr,
compositeOperation(localCS, localTube, localTranslation, TGeoSubtraction()));
167 localTube =
new TGeoTube(Form(
"D3tube_H%d_D%d", half, disk), 0, mD3, mSupThickness / 2. + mT_delta);
168 for (
auto iHole = 0; iHole < mTwoHoles; iHole++) {
169 localTranslation =
new TGeoTranslation(-mD3Holes[disk][iHole][0],
170 mOuterCut[disk] - mD3Holes[disk][iHole][1],
172 localCS =
new TGeoCompositeShape(
nullptr,
compositeOperation(localCS, localTube, localTranslation, TGeoSubtraction()));
177 localTube =
new TGeoTube(Form(
"M3tube_H%d_D%d", half, disk), 0, mM3, mSupThickness / 2. + mT_delta);
178 for (
auto iHole = 0; iHole < mNumberOfM3Holes[disk]; iHole++) {
179 localTranslation =
new TGeoTranslation(-mM3Holes[disk][iHole][0],
180 mOuterCut[disk] - mM3Holes[disk][iHole][1],
182 localCS =
new TGeoCompositeShape(
nullptr,
compositeOperation(localCS, localTube, localTranslation, TGeoSubtraction()));
187 localTube =
new TGeoTube(Form(
"D45tube_H%d_D%d", half, disk), 0, mD45, mSupThickness / 2. + mT_delta);
188 for (
auto iHole = 0; iHole < mTwoHoles; iHole++) {
189 localTranslation =
new TGeoTranslation(-mD45Holes[disk][iHole][0],
190 mOuterCut[disk] - mD45Holes[disk][iHole][1],
192 localCS =
new TGeoCompositeShape(
nullptr,
compositeOperation(localCS, localTube, localTranslation, TGeoSubtraction()));
197 localTube =
new TGeoTube(Form(
"D2tube_H%d_D%d", half, disk), 0, mD2, .4 / 2. + 6 * mT_delta);
198 for (
auto iHole = 0; iHole < mTwoHoles; iHole++) {
199 localTranslation =
new TGeoTranslation(-mD2Holes[disk][iHole][0],
200 mOuterCut[disk] - mD2Holes[disk][iHole][1],
201 mSupThickness / 2. - .4 / 2);
202 localCS =
new TGeoCompositeShape(
nullptr,
compositeOperation(localCS, localTube, localTranslation, TGeoSubtraction()));
207 auto* support_vol =
new TGeoVolume(Form(
"Support_H%d_D%d", half, disk), localCS, mSupportMedium);
209 auto* rot =
new TGeoRotation(
"rot", 0, 0, 180);
210 mHalfDisk->AddNode(support_vol, 0, rot);
215void Support::initParameters()
218 mSupportMedium = gGeoManager->GetMedium(
"MFT_PEEK$");
219 auto th = mSupThickness;
228 {mSupRad[0] + mT_delta, mDiskGap, th, 0., 0., 0},
229 {sqrt(pow(mSupRad[0], 2.) - pow(mOuterCut[0], 2.)), (mSupRad[0] - mOuterCut[0]) / 2., th, 0., (mSupRad[0] + mOuterCut[0]) / 2., 0},
230 {12.4, 6.91, th, 0., 0., 0},
231 {7.95, 9.4, th, 0., 0., 0},
232 {2.9, 11.885, th, 0., 0., 0},
233 {2.9 / 2, .7, th, -12.15, 9.9, 0},
234 {2.9 / 2, .7, th, 12.15, 9.9, 0},
235 {1.3875, 1.4, th, 16.1875, 7.9, 0},
236 {1.3875, 1.4, th, -16.1875, 7.9, 0}};
239 mDiskBoxCuts[1] = mDiskBoxCuts[0];
244 {mSupRad[2] + mT_delta, mDiskGap, th, 0., 0., 0},
245 {sqrt(pow(mSupRad[2], 2.) - pow(mOuterCut[2], 2.)),
246 (mSupRad[2] - mOuterCut[2]) / 2., th,
248 (mSupRad[2] + mOuterCut[2]) / 2., 0},
249 {12.8, 6.91, th, 0., 0., 0},
250 {9.7, 9.4, th, 0., 0., 0},
251 {(6.3 - 2.2) / 2, 12.4, th, (6.3 + 2.2) / 2, 0, 0},
252 {2.2 + mT_delta, 11.9, th, 0., 0., 0},
253 {(6.3 - 2.2) / 2, 12.4, th, -(6.3 + 2.2) / 2, 0, 0},
254 {2.8 / 2, .7, th, -12.95, 9.85, 0},
255 {2.8 / 2, .7, th, 12.95, 9.85, 0},
256 {(mSupRad[2] - 14.8) / 2, (10.0 - 6.5) / 2, th, (mSupRad[2] + 14.8) / 2, (10.0 + 6.5) / 2, 0},
257 {(mSupRad[2] - 14.8) / 2, (10.0 - 6.5) / 2, th, -(mSupRad[2] + 14.8) / 2, (10.0 + 6.5) / 2, 0}};
262 {mSupRad[3] + mT_delta, mDiskGap, th, 0., 0., 0},
263 {sqrt(pow(mSupRad[3], 2.) - pow(mOuterCut[3], 2.)),
264 (mSupRad[3] - mOuterCut[3]) / 2., th,
266 (mSupRad[3] + mOuterCut[3]) / 2., 0},
267 {15.7, 9.4, th, 0., 0., 0},
268 {9.7, 12.4, th, 0., 0., 0},
269 {4.6, 14.73, th, 0., 0., 0},
270 {2.9, 16.0, th, 0., 0., 0},
271 {(mSupRad[3] - 18.3) / 2., 4.2, th, (mSupRad[3] + 18.3) / 2, 0, 0},
272 {(mSupRad[3] - 18.3) / 2., 4.2, th, -(mSupRad[3] + 18.3) / 2, 0, 0}};
277 {mSupRad[4] + mT_delta, mDiskGap, th, 0., 0., 0},
278 {sqrt(pow(mSupRad[4], 2.) - pow(mOuterCut[4], 2.)),
279 (mSupRad[4] - mOuterCut[4]) / 2., th,
281 (mSupRad[4] + mOuterCut[4]) / 2., 0},
282 {16.2, 9.4, th, 0., 0., 0},
283 {11.4, 12.4, th, 0., 0., 0},
284 {8.0, 15.35, th, 0., 0., 0},
285 {2.9, 16.4, th, 0., 0., 0},
286 {2.35, 4.2, th, -20.65, 0., 0},
287 {2.35, 4.2, th, 20.65, 0., 0}};
293 auto rBT = mRaisedBoxHeight / 2.;
294 auto rBS = mRaisedBoxHeight / 2. + mSupThickness / 2.;
296 mDiskRaisedBoxes[0] =
298 {(9.35 - 7.95) / 2., (8.81 - 6.91) / 2., rBT, (9.35 + 7.95) / 2., (8.81 + 6.91) / 2., rBS},
299 {(7.65 - 2.9) / 2., (11.82 - 9.4) / 2., rBT, (7.65 + 2.9) / 2., (11.82 + 9.4) / 2., rBS},
300 {(2.55 + 2.05) / 2., (13.92 - 11.885) / 2., rBT, (2.55 - 2.05) / 2., (13.92 + 11.885) / 2., rBS},
301 {(7.15 - 2.9) / 2., (11.82 - 9.4) / 2., rBT, (-7.152 - 2.92) / 2., (11.82 + 9.4) / 2, rBS},
302 {(10.55 - 7.95) / 2., (8.81 - 6.91) / 2., rBT, (-10.55 - 7.95) / 2., (8.81 + 6.91) / 2., rBS},
304 {(9.35 - 7.95) / 2., (8.81 - 6.91) / 2., rBT, -(9.35 + 7.95) / 2., (8.81 + 6.91) / 2., -rBS},
305 {(7.65 - 2.9) / 2., (11.82 - 9.4) / 2., rBT, -(7.65 + 2.9) / 2., (11.82 + 9.4) / 2., -rBS},
306 {(2.55 + 2.05) / 2., (13.92 - 11.885) / 2., rBT, -(2.55 - 2.05) / 2., (13.92 + 11.885) / 2., -rBS},
307 {(7.15 - 2.9) / 2., (11.82 - 9.4) / 2., rBT, -(-7.152 - 2.92) / 2., (11.82 + 9.4) / 2, -rBS},
308 {(10.55 - 7.95) / 2., (8.81 - 6.91) / 2., rBT, -(-10.55 - 7.95) / 2., (8.81 + 6.91) / 2., -rBS}};
311 mDiskRaisedBoxes[1] = mDiskRaisedBoxes[0];
314 mDiskRaisedBoxes[2] =
316 {(10.55 - 9.7) / 2., (8.81 - 6.91) / 2., rBT, (10.55 + 9.7) / 2., (8.81 + 6.91) / 2., rBS},
317 {(8.85 - 6.3) / 2., (11.82 - 9.4) / 2., rBT, (8.85 + 6.3) / 2., (11.82 + 9.4) / 2., rBS},
318 {(5.45 - 2.55) / 2., (14.83 - 12.4) / 2., rBT, (5.45 + 2.55) / 2., (14.83 + 12.4) / 2., rBS},
319 {(2.2 + 2.2) / 2., (13.92 - 11.9) / 2., rBT, (2.2 - 2.2) / 2., (13.92 + 11.9) / 2, rBS},
320 {(5.95 - 3.05) / 2., (14.83 - 12.4) / 2., rBT, -(5.95 + 3.05) / 2., (14.83 + 12.4) / 2., rBS},
321 {(9.35 - 6.3) / 2., (11.82 - 9.4) / 2., rBT, -(9.35 + 6.3) / 2., (11.82 + 9.4) / 2, rBS},
322 {(11.05 - 9.7) / 2., (8.81 - 6.91) / 2., rBT, -(11.05 + 9.7) / 2., (8.81 + 6.91) / 2., rBS},
324 {(10.55 - 9.7) / 2., (8.81 - 6.91) / 2., rBT, -(10.55 + 9.7) / 2., (8.81 + 6.91) / 2., -rBS},
325 {(8.85 - 6.3) / 2., (11.82 - 9.4) / 2., rBT, -(8.85 + 6.3) / 2., (11.82 + 9.4) / 2., -rBS},
326 {(5.45 - 2.55) / 2., (14.83 - 12.4) / 2., rBT, -(5.45 + 2.55) / 2., (14.83 + 12.4) / 2., -rBS},
327 {(2.2 + 2.2) / 2., (13.92 - 11.9) / 2., rBT, -(2.2 - 2.2) / 2., (13.92 + 11.9) / 2, -rBS},
328 {(5.95 - 3.05) / 2., (14.83 - 12.4) / 2., rBT, (5.95 + 3.05) / 2., (14.83 + 12.4) / 2., -rBS},
329 {(9.35 - 6.3) / 2., (11.82 - 9.4) / 2., rBT, (9.35 + 6.3) / 2., (11.82 + 9.4) / 2, -rBS},
330 {(11.05 - 9.7) / 2., (8.81 - 6.91) / 2., rBT, (11.05 + 9.7) / 2., (8.81 + 6.91) / 2., -rBS}};
333 mDiskRaisedBoxes[3] =
335 {(12.75 - 9.7) / 2., (11.82 - 9.4) / 2., rBT, (12.75 + 9.7) / 2., (11.82 + 9.4) / 2., rBS},
336 {(9.35 - 4.6) / 2., (14.83 - 12.4) / 2., rBT, (9.35 + 4.6) / 2., (14.83 + 12.4) / 2., rBS},
337 {(4.25 - 2.9) / 2., (16.63 - 14.73) / 2., rBT, (4.25 + 2.9) / 2., (16.63 + 14.73) / 2., rBS},
338 {(2.55 + 2.05) / 2., (18.03 - 16.0) / 2., rBT, (2.55 - 2.05) / 2., (18.03 + 16.0) / 2, rBS},
339 {(3.75 - 2.9) / 2., (17.09 - 14.73) / 2., rBT, -(3.75 + 2.9) / 2., (17.09 + 14.73) / 2., rBS},
340 {(8.85 - 4.6) / 2., (14.83 - 12.4) / 2., rBT, -(8.85 + 4.6) / 2., (14.83 + 12.4) / 2., rBS},
341 {(13.95 - 9.7) / 2., (11.82 - 9.4) / 2., rBT, -(13.95 + 9.7) / 2., (11.82 + 9.4) / 2., rBS},
343 {(12.75 - 9.7) / 2., (11.82 - 9.4) / 2., rBT, -(12.75 + 9.7) / 2., (11.82 + 9.4) / 2., -rBS},
344 {(9.35 - 4.6) / 2., (14.83 - 12.4) / 2., rBT, -(9.35 + 4.6) / 2., (14.83 + 12.4) / 2., -rBS},
345 {(4.25 - 2.9) / 2., (16.63 - 14.73) / 2., rBT, -(4.25 + 2.9) / 2., (16.63 + 14.73) / 2., -rBS},
346 {(2.55 + 2.05) / 2., (18.03 - 16.0) / 2., rBT, -(2.55 - 2.05) / 2., (18.03 + 16.0) / 2, -rBS},
347 {(3.75 - 2.9) / 2., (17.09 - 14.73) / 2., rBT, (3.75 + 2.9) / 2., (17.09 + 14.73) / 2., -rBS},
348 {(8.85 - 4.6) / 2., (14.83 - 12.4) / 2., rBT, (8.85 + 4.6) / 2., (14.83 + 12.4) / 2., -rBS},
349 {(13.95 - 9.7) / 2., (11.82 - 9.4) / 2., rBT, (13.95 + 9.7) / 2., (11.82 + 9.4) / 2., -rBS}};
352 mDiskRaisedBoxes[4] =
354 {(13.9 - 11.4) / 2., (11.82 - 9.4) / 2., rBT, -(13.9 + 11.4) / 2., (11.82 + 9.4) / 2., rBS},
355 {(10.55 - 8.0) / 2., (14.83 - 12.4) / 2., rBT, -(10.55 + 8.0) / 2., (14.83 + 12.4) / 2., rBS},
356 {(7.15 - 2.9) / 2., (17.84 - 15.35) / 2., rBT, -(7.15 + 2.9) / 2., (17.84 + 15.35) / 2., rBS},
357 {(2.05 + 2.55) / 2., (18.45 - 16.4) / 2., rBT, -(2.05 - 2.55) / 2., (18.45 + 16.4) / 2, rBS},
358 {-(-4.75 + 2.9) / 2., (17.26 - 15.35) / 2., rBT, -(-4.75 - 2.9) / 2., (17.26 + 15.35) / 2., rBS},
359 {-(-7.65 + 4.75) / 2., (17.85 - 15.35) / 2., rBT, -(-7.65 - 4.75) / 2., (17.85 + 15.35) / 2., rBS},
360 {-(-11.05 + 8.0) / 2., (14.83 - 12.4) / 2., rBT, -(-11.05 - 8.0) / 2., (14.83 + 12.4) / 2., rBS},
361 {-(-14.45 + 11.4) / 2., (11.82 - 9.4) / 2., rBT, -(-14.45 - 11.4) / 2., (11.82 + 9.4) / 2., rBS},
363 {(13.9 - 11.4) / 2., (11.82 - 9.4) / 2., rBT, (13.9 + 11.4) / 2., (11.82 + 9.4) / 2., -rBS},
364 {(10.55 - 8.0) / 2., (14.83 - 12.4) / 2., rBT, (10.55 + 8.0) / 2., (14.83 + 12.4) / 2., -rBS},
365 {(7.15 - 2.9) / 2., (17.84 - 15.35) / 2., rBT, (7.15 + 2.9) / 2., (17.84 + 15.35) / 2., -rBS},
366 {(2.05 + 2.55) / 2., (18.45 - 16.4) / 2., rBT, (2.05 - 2.55) / 2., (18.45 + 16.4) / 2, -rBS},
367 {-(-4.75 + 2.9) / 2., (17.26 - 15.35) / 2., rBT, (-4.75 - 2.9) / 2., (17.26 + 15.35) / 2., -rBS},
368 {-(-7.65 + 4.75) / 2., (17.85 - 15.35) / 2., rBT, (-7.65 - 4.75) / 2., (17.85 + 15.35) / 2., -rBS},
369 {-(-11.05 + 8.0) / 2., (14.83 - 12.4) / 2., rBT, (-11.05 - 8.0) / 2., (14.83 + 12.4) / 2., -rBS},
370 {-(-14.45 + 11.4) / 2., (11.82 - 9.4) / 2., rBT, (-14.45 - 11.4) / 2., (11.82 + 9.4) / 2., -rBS}
378 {(16.8 - 14.8) / 2., (6.5 - 4.6) / 2., mFixBoxHeight / 2., (16.8 + 14.8) / 2., (6.5 + 4.6) / 2., 0},
380 {(16.8 - 14.8) / 2., (6.5 - 4.6) / 2., mFixBoxHeight / 2., -(16.8 + 14.8) / 2., (6.5 + 4.6) / 2., 0}};
383 mDiskFixBoxes[1] = mDiskFixBoxes[0];
387 {(16.8 - 14.8) / 2., (6.5 - 4.6) / 2., mFixBoxHeight / 2., (16.8 + 14.8) / 2., (6.5 + 4.6) / 2., 0},
388 {(14.7 - 12.5) / 2., (8.8 - 5.4) / 2., mSupThickness / 2., (14.7 + 12.5) / 2., mOuterCut[2] - (5.4 + 8.8) / 2., 0},
390 {(14.7 - 12.5) / 2., (8.8 - 5.4) / 2., mSupThickness / 2., -(14.7 + 12.5) / 2., mOuterCut[2] - (5.4 + 8.8) / 2., 0},
391 {(16.8 - 14.8) / 2., (6.5 - 4.6) / 2., mFixBoxHeight / 2., -(16.8 + 14.8) / 2., (6.5 + 4.6) / 2., 0}};
395 {(25.6 - 24.5) / 2., (6.5 - 5.2) / 2., mFixBoxHeight / 2., (25.6 + 24.5) / 2., (6.5 + 5.2) / 2., 0},
396 {(24.5 - 23.6) / 2., (6.5 - 4.2) / 2., mFixBoxHeight / 2., (24.5 + 23.6) / 2., (6.5 + 4.2) / 2., 0},
397 {(23.6 - 22.0) / 2., (6.5 - 4.2) / 2., mSupThickness / 2., (23.6 + 22.0) / 2., (6.5 + 4.2) / 2., 0},
399 {(25.6 - 24.5) / 2., (6.5 - 5.2) / 2., mFixBoxHeight / 2., -(25.6 + 24.5) / 2., (6.5 + 5.2) / 2., 0},
400 {(24.5 - 23.6) / 2., (6.5 - 4.2) / 2., mFixBoxHeight / 2., -(24.5 + 23.6) / 2., (6.5 + 4.2) / 2., 0},
401 {(23.6 - 22.0) / 2., (6.5 - 4.2) / 2., mSupThickness / 2., -(23.6 + 22.0) / 2., (6.5 + 4.2) / 2., 0}};
405 {(25.6 - 24.5) / 2., (6.5 - 5.2) / 2., mFixBoxHeight / 2., (25.6 + 24.5) / 2., (6.5 + 5.2) / 2., 0},
406 {(24.5 - 23.6) / 2., (6.5 - 4.2) / 2., mFixBoxHeight / 2., (24.5 + 23.6) / 2., (6.5 + 4.2) / 2., 0},
407 {(23.6 - 22.0) / 2., (6.5 - 4.2) / 2., mSupThickness / 2., (23.6 + 22.0) / 2., (6.5 + 4.2) / 2., 0},
409 {(25.6 - 24.5) / 2., (6.5 - 5.2) / 2., mFixBoxHeight / 2., -(25.6 + 24.5) / 2., (6.5 + 5.2) / 2., 0},
410 {(24.5 - 23.6) / 2., (6.5 - 4.2) / 2., mFixBoxHeight / 2., -(24.5 + 23.6) / 2., (6.5 + 4.2) / 2., 0},
411 {(23.6 - 22.0) / 2., (6.5 - 4.2) / 2., mSupThickness / 2., -(23.6 + 22.0) / 2., (6.5 + 4.2) / 2., 0}};
421 mNumberOfVoids[0] = 8;
422 mVoidVert[0] =
new Double_t[mNumberOfVoids[0]][4][2]{
423 {{-16., 1.8}, {-16., 4.5}, {-13.8, 4.5}, {-12.9, 1.8}},
424 {{-13.8, 4.5}, {-13.8, 8.7}, {-12.9, 7.6}, {-12.9, 1.8}},
425 {{-13.8, 8.7}, {-10.55, 8.7}, {-10.55, 7.6}, {-12.9, 7.6}},
426 {{-10.412, 12.8}, {-7.395, 14.75}, {-3., 14.75}, {-3., 12.8}},
427 {{3., 12.8}, {3., 14.75}, {7.395, 14.75}, {10.412, 12.8}},
428 {{12.9, 7.6}, {10.55, 7.6}, {10.55, 8.7}, {13.8, 8.7}},
429 {{12.9, 1.8}, {12.9, 7.6}, {13.8, 8.7}, {13.8, 4.5}},
430 {{12.9, 1.8}, {13.8, 4.5}, {16., 4.5}, {16., 1.8}}
434 mNumberOfVoids[1] = mNumberOfVoids[0];
435 mVoidVert[1] = mVoidVert[0];
438 mNumberOfVoids[2] = 8;
439 mVoidVert[2] =
new Double_t[mNumberOfVoids[2]][4][2]{
440 {{-16., 1.9}, {-16., 4.1}, {-14.2, 4.1}, {-13.3, 1.9}},
441 {{-13.3, 1.9}, {-14.2, 4.1}, {-14.2, 8.9}, {-13.3, 7.6}},
442 {{-14.2, 8.9}, {-11.55, 8.9}, {-11.55, 7.6}, {-13.3, 7.6}},
443 {{-5.5, 15.33}, {-5.5, 16.2}, {5.5, 16.2}, {5.5, 15.33}},
444 {{-2.05, 14.22}, {-2.05, 15.33}, {2.05, 15.33}, {2.05, 14.22}},
445 {{13.3, 7.6}, {11.55, 7.6}, {11.55, 8.9}, {14.2, 8.9}},
446 {{13.3, 1.9}, {13.3, 7.6}, {14.2, 8.9}, {14.2, 4.1}},
447 {{13.3, 1.9}, {14.2, 4.1}, {16.0, 4.1}, {16.0, 1.9}}
451 mNumberOfVoids[3] = 6;
452 mVoidVert[3] =
new Double_t[mNumberOfVoids[3]][4][2]{
453 {{-21.377, 15.3}, {-20.075, 11.5}, {-17.0, 11.5}, {-17.0, 15.3}},
454 {{-19.053, 9.5}, {-13.964, 3.5}, {-14.0, 7.5}, {-14.0, 9.5}},
455 {{-13.964 - .02, 3.5}, {-10.0, 3.5}, {-10.0, 7.5}, {-14.0 - .02, 7.5}},
456 {{21.377, 15.3}, {17.0, 15.3}, {17.0, 11.5}, {20.075, 11.5}},
457 {{19.053, 9.5}, {14.0, 9.5}, {14.0 - .02, 7.5}, {13.964 - .02, 3.5}},
458 {{13.964, 3.5}, {14.0, 7.5}, {10.0, 7.5}, {10.0, 3.5}}
462 mNumberOfVoids[4] = 4;
463 mVoidVert[4] =
new Double_t[mNumberOfVoids[4]][4][2]{
464 {{-21.377, 16.7}, {-20.075, 12.9}, {-17.0, 12.9}, {-17.0, 16.7}},
465 {{-19.053, 10.9}, {-13.964, 4.9}, {-11.5, 4.9}, {-15.0, 10.9}},
468 {{21.377, 16.7}, {17., 16.7}, {17.0, 12.9}, {20.075, 12.9}},
469 {{11.5, 4.9}, {13.96, 4.9}, {19.053, 10.9}, {15.0, 10.9}}
477 mNumberOfM2Holes[0] = 12;
478 mM2Holes[0] =
new Double_t[mNumberOfM2Holes[0]][2]{
494 mNumberOfM2Holes[1] = mNumberOfM2Holes[0];
495 mM2Holes[1] = mM2Holes[0];
498 mNumberOfM2Holes[2] = 13;
499 mM2Holes[2] =
new Double_t[mNumberOfM2Holes[2]][2]{
516 mNumberOfM2Holes[3] = 16;
517 mM2Holes[3] =
new Double_t[mNumberOfM2Holes[3]][2]{
537 mNumberOfM2Holes[4] = 17;
538 mM2Holes[4] =
new Double_t[mNumberOfM2Holes[4]][2]{
561 mNumberOfD2_hHoles[0] = 12;
562 mD2_hHoles[0] =
new Double_t[mNumberOfD2_hHoles[0]][2]{{-8.75, 8.09},
576 mNumberOfD2_hHoles[1] = mNumberOfD2_hHoles[0];
577 mD2_hHoles[1] = mD2_hHoles[0];
580 mNumberOfD2_hHoles[2] = 13;
581 mD2_hHoles[2] =
new Double_t[mNumberOfD2_hHoles[2]][2]{
598 mNumberOfD2_hHoles[3] = 16;
599 mD2_hHoles[3] =
new Double_t[mNumberOfD2_hHoles[3]][2]{
619 mNumberOfD2_hHoles[4] = 17;
620 mD2_hHoles[4] =
new Double_t[mNumberOfD2_hHoles[4]][2]{
643 mD65Holes[0] =
new Double_t[mTwoHoles][2]{
648 mD65Holes[1] = mD65Holes[0];
651 mD65Holes[2] =
new Double_t[mTwoHoles][2]{
657 mD65Holes[3] =
new Double_t[mTwoHoles][2]{
663 mD65Holes[4] =
new Double_t[mTwoHoles][2]{
671 mD6Holes[0] =
new Double_t[mTwoHoles][2]{
677 mD6Holes[1] = mD6Holes[0];
680 mD6Holes[2] =
new Double_t[mTwoHoles][2]{
686 mD6Holes[3] =
new Double_t[mTwoHoles][2]{
692 mD6Holes[4] =
new Double_t[mTwoHoles][2]{
700 mNumberOfD8_Holes[0] = 2;
701 mD8Holes[0] =
new Double_t[mNumberOfD8_Holes[0]][2]{
707 mNumberOfD8_Holes[1] = mNumberOfD8_Holes[0];
708 mD8Holes[1] = mD8Holes[0];
711 mNumberOfD8_Holes[2] = 2;
712 mD8Holes[2] =
new Double_t[mNumberOfD8_Holes[1]][2]{
718 mNumberOfD8_Holes[3] = 0;
721 mNumberOfD8_Holes[4] = 0;
726 mD3Holes[0] =
new Double_t[mTwoHoles][2]{
732 mD3Holes[1] = mD3Holes[0];
735 mD3Holes[2] =
new Double_t[mTwoHoles][2]{
741 mD3Holes[3] =
new Double_t[mTwoHoles][2]{
747 mD3Holes[4] =
new Double_t[mTwoHoles][2]{
755 mNumberOfM3Holes[0] = 2;
756 mM3Holes[0] =
new Double_t[mNumberOfM3Holes[0]][2]{
762 mNumberOfM3Holes[1] = mNumberOfM3Holes[0];
763 mM3Holes[1] = mM3Holes[0];
766 mNumberOfM3Holes[2] = 2;
767 mM3Holes[2] =
new Double_t[mNumberOfM3Holes[2]][2]{
773 mNumberOfM3Holes[3] = 4;
774 mM3Holes[3] =
new Double_t[mNumberOfM3Holes[3]][2]{
782 mNumberOfM3Holes[4] = 4;
783 mM3Holes[4] =
new Double_t[mNumberOfM3Holes[4]][2]{
793 mD45Holes[0] =
new Double_t[mTwoHoles][2]{
799 mD45Holes[1] = mD45Holes[0];
802 mD45Holes[2] =
new Double_t[mTwoHoles][2]{
808 mD45Holes[3] =
new Double_t[mTwoHoles][2]{
814 mD45Holes[4] =
new Double_t[mTwoHoles][2]{
822 mD2Holes[0] =
new Double_t[mTwoHoles][2]{
828 mD2Holes[1] = mD2Holes[0];
831 mD2Holes[2] =
new Double_t[mTwoHoles][2]{
837 mD2Holes[3] =
new Double_t[mTwoHoles][2]{
843 mD2Holes[4] =
new Double_t[mTwoHoles][2]{
Constants for the MFT; distance unit is cm.
Class handling both virtual segmentation and real volumes.
Class describing geometry of one MFT half-disk support.
TGeoVolumeAssembly * create(Int_t kHalf, Int_t disk)
auto compositeOperation(L &&left, R &&right, T &&translation, OP &&op)
auto serialBoolOperation(L &&base, SHAPE &&shape, EL &&elements, OP &&op)