301 if (sides !=
"both" && sides !=
"left" && sides !=
"right" && sides !=
"none") {
302 cout <<
"unknown value " << sides <<
" for sides in function CreateMirrorFixing" << endl;
304 TGeoMedium* medGas =
fMaterials.GetMedium(
"RICHgas_CO2_dis");
305 TGeoMedium* medAl =
fMaterials.GetMedium(
"aluminium");
306 double distanceHalf = 19.414 / 2;
308 double widthHalf = 28.0 / 2;
309 double lengthHalf = 25.017 / 2;
310 double heightHalf = 2.8 / 2;
311 double thicknessHalf = 0.3 / 2;
312 double neckHalf = 9.884 / 2;
313 double partwidthHalf = 3.0 / 2;
314 double sidelenghtHalf = 14.009 / 2;
315 double sidewidthHalf = 2.0 / 2;
317 TGeoVolumeAssembly* mirrorFixing =
new TGeoVolumeAssembly(
"mirrorfixing");
318 TGeoBBox* triangleSurrounding =
new TGeoBBox(
"mirrorfixingtrianglesurrounding", lengthHalf, widthHalf, heightHalf);
319 TGeoVolume* triangle =
new TGeoVolume(
"mirrorfixingtriangle", triangleSurrounding, medGas);
321 TGeoBBox* pbbase =
new TGeoBBox(partwidthHalf, widthHalf, heightHalf);
322 TGeoBBox* pbbaseGas =
new TGeoBBox(partwidthHalf - 2 * thicknessHalf, widthHalf - 3 - 1.897, heightHalf);
323 TGeoVolume* base =
new TGeoVolume(
"base", pbbase, medAl);
324 TGeoVolume* baseGas =
new TGeoVolume(
"baseGas", pbbaseGas, medGas);
325 base->AddNode(baseGas, 1);
326 triangle->AddNode(base, 1,
MakeTrans(-lengthHalf + partwidthHalf, 0, 0));
329 double lenleg1 = sidelenghtHalf - 2 * sidewidthHalf / Sin(60 *
pi / 180);
330 double lenleg2 = sidelenghtHalf + (sidewidthHalf - thicknessHalf) / Sin(60 *
pi / 180) - partwidthHalf;
331 TGeoBBox* pbleg1 =
new TGeoBBox(lenleg1, thicknessHalf, heightHalf);
332 TGeoBBox* pbleg2 =
new TGeoBBox(lenleg2, thicknessHalf, heightHalf);
333 TGeoVolume* leg1 =
new TGeoVolume(
"leg1", pbleg1, medAl);
334 TGeoVolume* leg2 =
new TGeoVolume(
"leg2", pbleg2, medAl);
335 triangle->AddNode(leg1, 1,
336 MakeCombiTrans(-neckHalf + partwidthHalf - sidewidthHalf / Sin(60 *
pi / 180),
337 -lenleg1 * Sin(30 *
pi / 180) - thicknessHalf * Cos(30 *
pi / 180), 0, 0, 0, 30));
338 triangle->AddNode(leg2, 1,
340 -2 * (sidewidthHalf - 2 * thicknessHalf) - lenleg2 * Sin(30 *
pi / 180)
341 + thicknessHalf * Cos(30 *
pi / 180),
343 triangle->AddNode(leg1, 2,
344 MakeCombiTrans(-neckHalf + partwidthHalf - sidewidthHalf / Sin(60 *
pi / 180),
345 lenleg1 * Sin(30 *
pi / 180) + thicknessHalf * Cos(30 *
pi / 180), 0, 0, 0, -30));
346 triangle->AddNode(leg2, 2,
348 2 * (sidewidthHalf - 2 * thicknessHalf) + lenleg2 * Sin(30 *
pi / 180)
349 - thicknessHalf * Cos(30 *
pi / 180),
352 TGeoBBox* pbneck =
new TGeoBBox(neckHalf, partwidthHalf, heightHalf);
353 TGeoBBox* pbneckGas =
new TGeoBBox(neckHalf - 4.7, partwidthHalf - 2 * thicknessHalf, heightHalf);
354 TGeoVolume* neck =
new TGeoVolume(
"neck", pbneck, medAl);
355 TGeoVolume* neckGas =
new TGeoVolume(
"neckGas", pbneckGas, medGas);
356 neck->AddNode(neckGas, 1,
MakeTrans(-2.35, 0, 0));
357 triangle->AddNode(neck, 1,
MakeTrans(lengthHalf - neckHalf, 0, 0));
359 if (sides ==
"both" || sides ==
"right") {
360 mirrorFixing->AddNode(triangle, 1,
MakeTrans(distanceHalf + lengthHalf, 0, 0));
362 if (sides ==
"both" || sides ==
"left") {
363 mirrorFixing->AddNode(triangle, 2,
MakeCombiTrans(-distanceHalf - lengthHalf, 0, 0, 0, 0, 180));
365 if (sides ==
"left" || sides ==
"right") {
366 TGeoBBox* pbconnection =
new TGeoBBox(
"connectionMirrorfixing", distanceHalf / 2, partwidthHalf, heightHalf);
367 TGeoBBox* pbconnectionGas =
new TGeoBBox(
"connectionMirrorfixingGas", distanceHalf / 2,
368 partwidthHalf - 2 * thicknessHalf, heightHalf - 2 * thicknessHalf);
369 TGeoVolume* connection =
new TGeoVolume(
"connectionMirrorfixing", pbconnection, medAl);
370 TGeoVolume* connectionGas =
new TGeoVolume(
"connectionMirrorfixingGas", pbconnectionGas, medGas);
371 connection->AddNode(connectionGas, 1);
372 if (sides ==
"right") {
373 mirrorFixing->AddNode(connection, 1,
MakeTrans(distanceHalf / 2, sidelenghtHalf + partwidthHalf, 0));
374 mirrorFixing->AddNode(connection, 2,
MakeTrans(distanceHalf / 2, -sidelenghtHalf - partwidthHalf, 0));
377 mirrorFixing->AddNode(connection, 1,
MakeTrans(-distanceHalf / 2, sidelenghtHalf + partwidthHalf, 0));
378 mirrorFixing->AddNode(connection, 2,
MakeTrans(-distanceHalf / 2, -sidelenghtHalf - partwidthHalf, 0));
382 TGeoBBox* pbconnection =
new TGeoBBox(
"connectionMirrorfixing", distanceHalf, partwidthHalf, heightHalf);
383 TGeoBBox* pbconnectionGas =
new TGeoBBox(
"connectionMirrorfixingGas", distanceHalf,
384 partwidthHalf - 2 * thicknessHalf, heightHalf - 2 * thicknessHalf);
385 TGeoVolume* connection =
new TGeoVolume(
"connectionMirrorfixing", pbconnection, medAl);
386 TGeoVolume* connectionGas =
new TGeoVolume(
"connectionMirrorfixingGas", pbconnectionGas, medGas);
387 connection->AddNode(connectionGas, 1);
388 mirrorFixing->AddNode(connection, 1,
MakeTrans(0, sidelenghtHalf + partwidthHalf, 0));
389 mirrorFixing->AddNode(connection, 2,
MakeTrans(0, -sidelenghtHalf - partwidthHalf, 0));
460 TGeoMedium* medGas =
fMaterials.GetMedium(
"RICHgas_CO2_dis");
461 TGeoMedium* medAl =
fMaterials.GetMedium(
"aluminium");
463 TGeoBBox* pbGas =
new TGeoBBox(
"mirror_support_pillar_gas_PB", 4.8, (
fRichHeight / 2.) - 10.5, 4.8);
464 TGeoBBox* pb =
new TGeoBBox(
"mirror_support_pillar_PB", 5., (
fRichHeight / 2.) - 10.5, 5.);
466 TGeoVolume* volGas =
new TGeoVolume(
"mirror_support_pillar_gas", pbGas, medGas);
467 TGeoVolume* vol =
new TGeoVolume(
"mirror_support_pillar", pb, medAl);
470 vol->AddNode(volGas, 1);
472 TGeoVolume* Stud1b =
CreateStuds(16.4, 30.03 / 2., 24.2,
"both");
473 TGeoVolume* Stud2b =
CreateStuds(57.8, 14.86 / 2., 15.9,
"both");
474 TGeoVolume* Stud3b =
CreateStuds(101.05, 5.74 / 2., 7.7,
"both");
475 TGeoVolume* Stud4b =
CreateStuds(145.4, 2.9 / 2., -0.5,
"both");
476 TGeoVolume* Stud1l =
CreateStuds(16.4, 30.03 / 2., 24.2,
"left");
477 TGeoVolume* Stud2l =
CreateStuds(57.8, 14.86 / 2., 15.9,
"left");
478 TGeoVolume* Stud3l =
CreateStuds(101.05, 5.74 / 2., 7.7,
"left");
479 TGeoVolume* Stud4l =
CreateStuds(145.4, 2.9 / 2., -0.5,
"left");
480 TGeoVolume* Stud1r =
CreateStuds(16.4, 30.03 / 2., 24.2,
"right");
481 TGeoVolume* Stud2r =
CreateStuds(57.8, 14.86 / 2., 15.9,
"right");
482 TGeoVolume* Stud3r =
CreateStuds(101.05, 5.74 / 2., 7.7,
"right");
483 TGeoVolume* Stud4r =
CreateStuds(145.4, 2.9 / 2., -0.5,
"right");
485 TGeoVolumeAssembly* Studs =
new TGeoVolumeAssembly(
"Studs");
495 TGeoVolumeAssembly* Studs1 =
new TGeoVolumeAssembly(
"Studs1");
500 Studs1->AddNode(Stud1l, 5,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
501 Studs1->AddNode(Stud2l, 6,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
502 Studs1->AddNode(Stud3l, 7,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
503 Studs1->AddNode(Stud4l, 8,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
505 TGeoVolumeAssembly* Studs6 =
new TGeoVolumeAssembly(
"Studs6");
510 Studs6->AddNode(Stud1r, 5,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
511 Studs6->AddNode(Stud2r, 6,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
512 Studs6->AddNode(Stud3r, 7,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
513 Studs6->AddNode(Stud4r, 8,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
515 TGeoVolumeAssembly* Studs3 =
new TGeoVolumeAssembly(
"Studs3");
520 Studs3->AddNode(Stud1r, 5,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
521 Studs3->AddNode(Stud2b, 6,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
522 Studs3->AddNode(Stud3b, 7,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
523 Studs3->AddNode(Stud4b, 8,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
525 TGeoVolumeAssembly* Studs4 =
new TGeoVolumeAssembly(
"Studs4");
530 Studs4->AddNode(Stud1l, 5,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
531 Studs4->AddNode(Stud2b, 6,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
532 Studs4->AddNode(Stud3b, 7,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
533 Studs4->AddNode(Stud4b, 8,
MakeCombiTrans(0, 0, -5, 0, 180, 180));
538 TGeoVolumeAssembly* pillars =
new TGeoVolumeAssembly(
"mirror_support_pillars");
539 pillars->AddNode(vol, 1,
MakeCombiTrans(210.7759 - 2.035, 0., -29.5298 + dZ - 12.4346, 0., 42., 0.));
540 pillars->AddNode(Studs1, 1,
MakeCombiTrans(210.7759 - 2.035, 0., -29.5298 + dZ - 12.4346, 0., 42., 0.));
541 pillars->AddNode(PillarConnection, 1,
MakeCombiTrans(170.7323, 0., -15.9069 + dZ, 0., 33.6, 0.));
542 pillars->AddNode(vol, 2,
MakeCombiTrans(134.1222 - 1.3985, 0., 21.3989 + dZ - 11.2483, 0., 25.2, 0.));
543 pillars->AddNode(Studs, 1,
MakeCombiTrans(134.1222 - 1.3985, 0., 21.3989 + dZ - 11.2483, 0., 25.2, 0.));
544 pillars->AddNode(PillarConnection, 2,
MakeCombiTrans(89.097, 0., 23.74 + dZ, 0., 16.8, 0.));
545 pillars->AddNode(vol, 3,
MakeCombiTrans(46.015 - 0.545, 0., 48. + dZ - 10.6668, 0., 8.4, 0.));
546 pillars->AddNode(Studs3, 1,
MakeCombiTrans(46.015 - 0.545, 0., 48. + dZ - 10.6668, 0., 8.4, 0.));
547 pillars->AddNode(PillarConnection, 3,
MakeCombiTrans(0., 38.75, 37.34 + dZ, 0., 0., 0.));
548 pillars->AddNode(PillarConnection, 4,
MakeCombiTrans(0., -38.75, 37.34 + dZ, 0., 0., 0.));
549 pillars->AddNode(vol, 4,
MakeCombiTrans(-46.015 + 0.545, 0., 48. + dZ - 10.6668, 0., -8.4, 0.));
550 pillars->AddNode(Studs4, 1,
MakeCombiTrans(-46.015 + 0.545, 0., 48. + dZ - 10.6668, 0., -8.4, 0.));
551 pillars->AddNode(PillarConnection, 5,
MakeCombiTrans(-89.097, 0., 23.74 + dZ, 0., -16.8, 0.));
552 pillars->AddNode(vol, 5,
MakeCombiTrans(-134.1222 + 1.3985, 0., 21.3989 + dZ - 11.2483, 0., -25.2, 0.));
553 pillars->AddNode(Studs, 2,
MakeCombiTrans(-134.1222 + 1.3985, 0., 21.3989 + dZ - 11.2483, 0., -25.2, 0.));
554 pillars->AddNode(PillarConnection, 6,
MakeCombiTrans(-170.7323, 0., -15.9069 + dZ, 0., -33.6, 0.));
555 pillars->AddNode(vol, 6,
MakeCombiTrans(-210.7759 + 2.035, 0., -29.5298 + dZ - 12.4346, 0., -42., 0.));
556 pillars->AddNode(Studs6, 1,
MakeCombiTrans(-210.7759 + 2.035, 0., -29.5298 + dZ - 12.4346, 0., -42., 0.));
697 TGeoMedium* medGas =
fMaterials.GetMedium(
"RICHgas_CO2_dis");
698 TGeoMedium* medAlum =
fMaterials.GetMedium(
"aluminium");
700 double frameSizeHalf = 5.;
701 double frameSizeHalfGas = 4.3;
709 double lenHalf2 = 23.2919390;
710 double lenHalf3 = 20.;
716 double posY = richHeightHalf - coverThickness - frameSizeHalf;
718 double posY3 = posY - Tan(rotX *
pi / 180.0) * lenHalf3 * 2.0;
719 double posZ1 = -147.779439;
720 double posZ2 = posZ1 + lenHalf2 + 2 * lenHalf3;
721 double posZ3 = posZ1 + 2 * lenHalf2 + 2 * lenHalf3;
725 double posX2 = (posX1 + posX3) / 2;
727 TGeoBBox* crossingbox =
728 new TGeoBBox(
"crossing", frameSizeHalf, frameSizeHalf,
731 TGeoVolumeAssembly* mainFrame =
new TGeoVolumeAssembly(
"mainframe");
734 TGeoBBox* pbGas1 =
new TGeoBBox(
"mainframe1_gas_PB", richWidthHalf - frameSizeHalf * 2 -
fRichCoveringThickness,
735 frameSizeHalfGas, frameSizeHalfGas);
737 frameSizeHalf, frameSizeHalf);
738 TGeoVolume* volGas1 =
new TGeoVolume(
"mainframe1_gas", pbGas1, medGas);
739 TGeoVolume* vol1 =
new TGeoVolume(
"mainframe1", pb1, medAlum);
742 vol1->AddNode(volGas1, 1);
743 mainFrame->AddNode(vol1, 1,
MakeTrans(0, posY2, posZ1));
744 mainFrame->AddNode(vol1, 2,
MakeTrans(0, -posY2, posZ1));
745 mainFrame->AddNode(vol1, 3,
MakeTrans(0., posY, posZ4 - frameSizeHalf));
746 mainFrame->AddNode(vol1, 4,
MakeTrans(0., posY, posZ3));
747 mainFrame->AddNode(vol1, 5,
MakeTrans(0., -posY, posZ4 - frameSizeHalf));
748 mainFrame->AddNode(vol1, 6,
MakeTrans(0., -posY, posZ3));
751 TGeoBBox* pbGas2 =
new TGeoBBox(
"mainframe2_gas_PB", frameSizeHalfGas, frameSizeHalfGas, lenHalf2 - frameSizeHalf);
752 TGeoBBox* pb2 =
new TGeoBBox(
"mainframe2_PB", frameSizeHalf, frameSizeHalf, lenHalf2 - frameSizeHalf);
753 TGeoVolume* volGas2 =
new TGeoVolume(
"mainframe2_gas", pbGas2, medGas);
754 TGeoVolume* vol2 =
new TGeoVolume(
"mainframe2", pb2, medAlum);
757 vol2->AddNode(volGas2, 1);
758 mainFrame->AddNode(vol2, 1,
MakeTrans(-posX1, posY, posZ2 - frameSizeHalf / 2));
759 mainFrame->AddNode(vol2, 2,
MakeTrans(-posX1, -posY, posZ2 - frameSizeHalf / 2));
760 mainFrame->AddNode(vol2, 3,
MakeTrans(posX1, posY, posZ2 - frameSizeHalf / 2));
761 mainFrame->AddNode(vol2, 4,
MakeTrans(posX1, -posY, posZ2 - frameSizeHalf / 2));
762 mainFrame->AddNode(vol2, 5,
MakeTrans(posX3, posY, posZ2 - frameSizeHalf / 2));
763 mainFrame->AddNode(vol2, 6,
MakeTrans(posX3, -posY, posZ2 - frameSizeHalf / 2));
764 mainFrame->AddNode(vol2, 7,
MakeTrans(-posX3, posY, posZ2 - frameSizeHalf / 2));
765 mainFrame->AddNode(vol2, 8,
MakeTrans(-posX3, -posY, posZ2 - frameSizeHalf / 2));
770 new TGeoTrap(
"mainframe3_gas_PB", frameSizeHalfGas, 0, 0, lenHalf3 - frameSizeHalf - coverThickness, 6.3, 9.3, rotX,
771 lenHalf3 - frameSizeHalf - coverThickness, 6.3, 9.3, rotX);
772 TGeoTrap* pb3 =
new TGeoTrap(
"mainframe3_PB", frameSizeHalf, 0, 0, lenHalf3 - frameSizeHalf, 7, 10, rotX,
773 lenHalf3 - frameSizeHalf, 7, 10, rotX);
774 TGeoVolume* volGas3 =
new TGeoVolume(
"mainframe3_gas", pbGas3, medGas);
775 TGeoVolume* vol3 =
new TGeoVolume(
"mainframe3", pb3, medAlum);
776 TGeoRotation* rotup =
new TGeoRotation();
777 rotup->RotateX(-90 + rotX *
pi / 180);
780 vol3->AddNode(volGas3, 1);
781 mainFrame->AddNode(vol3, 1,
782 new TGeoCombiTrans(*
MakeTrans(-posX3, posY - Tan(rotX *
pi / 180) * lenHalf3 + frameSizeHalf,
783 posZ1 + lenHalf3 + frameSizeHalf / 2),
785 mainFrame->AddNode(vol3, 2,
786 new TGeoCombiTrans(*
MakeTrans(-posX1, posY - Tan(rotX *
pi / 180) * lenHalf3 + frameSizeHalf,
787 posZ1 + lenHalf3 + frameSizeHalf / 2),
789 mainFrame->AddNode(vol3, 3,
790 new TGeoCombiTrans(*
MakeTrans(posX1, posY - Tan(rotX *
pi / 180) * lenHalf3 + frameSizeHalf,
791 posZ1 + lenHalf3 + frameSizeHalf / 2),
793 mainFrame->AddNode(vol3, 4,
794 new TGeoCombiTrans(*
MakeTrans(posX3, posY - Tan(rotX *
pi / 180) * lenHalf3 + frameSizeHalf,
795 posZ1 + lenHalf3 + frameSizeHalf / 2),
797 TGeoRotation* rotdown =
new TGeoRotation();
798 rotdown->RotateX(-90 + rotX *
pi / 180);
799 rotdown->RotateY(90);
800 mainFrame->AddNode(vol3, 5,
801 new TGeoCombiTrans(*
MakeTrans(-posX3, -posY + Tan(rotX *
pi / 180) * lenHalf3 - frameSizeHalf,
802 posZ1 + lenHalf3 + frameSizeHalf / 2),
803 rotdown->Inverse()));
804 mainFrame->AddNode(vol3, 6,
805 new TGeoCombiTrans(*
MakeTrans(-posX1, -posY + Tan(rotX *
pi / 180) * lenHalf3 - frameSizeHalf,
806 posZ1 + lenHalf3 + frameSizeHalf / 2),
807 rotdown->Inverse()));
808 mainFrame->AddNode(vol3, 7,
809 new TGeoCombiTrans(*
MakeTrans(posX1, -posY + Tan(rotX *
pi / 180) * lenHalf3 - frameSizeHalf,
810 posZ1 + lenHalf3 + frameSizeHalf / 2),
811 rotdown->Inverse()));
812 mainFrame->AddNode(vol3, 8,
813 new TGeoCombiTrans(*
MakeTrans(posX3, -posY + Tan(rotX *
pi / 180) * lenHalf3 - frameSizeHalf,
814 posZ1 + lenHalf3 + frameSizeHalf / 2),
815 rotdown->Inverse()));
820 new TGeoBBox(
"mainframe4_gas_PB", frameSizeHalfGas, richHeightHalf - coverThickness, frameSizeHalfGas);
821 TGeoBBox* pb4 =
new TGeoBBox(
"mainframe4_PB", frameSizeHalf, richHeightHalf - coverThickness, frameSizeHalf);
822 TGeoVolume* volGas4 =
new TGeoVolume(
"mainframe4_gas", pbGas4, medGas);
823 TGeoVolume* vol4 =
new TGeoVolume(
"mainframe4", pb4, medAlum);
826 vol4->AddNode(volGas4, 1);
827 mainFrame->AddNode(vol4, 1,
MakeTrans(-posX3, 0., posZ4 - frameSizeHalf));
828 mainFrame->AddNode(vol4, 2,
MakeTrans(posX3, 0., posZ4 - frameSizeHalf));
829 mainFrame->AddNode(vol4, 3,
MakeTrans(-posX3, 0, posZ3));
830 mainFrame->AddNode(vol4, 4,
MakeTrans(posX3, 0, posZ3));
833 double gaslencor = (frameSizeHalf - frameSizeHalfGas) / Tan((90 - rotX) *
pi / 180);
835 new TGeoTrap(
"mainframe5_gas_PB", frameSizeHalfGas, 0, 0, frameSizeHalfGas,
836 lenHalf5 - 1 / Tan((90 - rotX) *
pi / 180) * frameSizeHalf + gaslencor,
837 lenHalf5 + 1 / Tan((90 - rotX) *
pi / 180) * frameSizeHalf - gaslencor, 0, frameSizeHalfGas,
838 lenHalf5 - 1 / Tan((90 - rotX) *
pi / 180) * frameSizeHalf + gaslencor,
839 lenHalf5 + 1 / Tan((90 - rotX) *
pi / 180) * frameSizeHalf - gaslencor, 0);
840 TGeoTrap* pb5 =
new TGeoTrap(
"mainframe5_PB", frameSizeHalf, 0, 0, frameSizeHalf,
841 lenHalf5 - 1 / Tan((90 - rotX) *
pi / 180) * frameSizeHalf,
842 lenHalf5 + 1 / Tan((90 - rotX) *
pi / 180) * frameSizeHalf, 0, frameSizeHalf,
843 lenHalf5 - 1 / Tan((90 - rotX) *
pi / 180) * frameSizeHalf,
844 lenHalf5 + 1 / Tan((90 - rotX) *
pi / 180) * frameSizeHalf, 0);
845 TGeoCompositeShape* sub5_1 =
847 TGeoCompositeShape* sub5 =
849 TGeoVolume* volGas5 =
850 new TGeoVolume(
"mainframe5_gas",
MakeSubtraction(
"mainframe5_gas_PB", pbGas5, sub5,
nullptr,
nullptr), medGas);
852 new TGeoVolume(
"mainframe5",
MakeSubtraction(
"mainframe5_PB", pb5, sub5,
nullptr,
nullptr), medAlum);
853 vol5->AddNode(volGas5, 1);
854 mainFrame->AddNode(vol5, 1,
MakeCombiTrans(-posX1, 0., posZ1, 90, 0, 90));
855 mainFrame->AddNode(vol5, 2,
MakeCombiTrans(posX1, 0., posZ1, 90, 0, 90));
856 mainFrame->AddNode(vol5, 3,
MakeCombiTrans(-posX3, 0., posZ1, 90, 0, 90));
857 mainFrame->AddNode(vol5, 4,
MakeCombiTrans(posX3, 0., posZ1, 90, 0, 90));
860 TGeoBBox* pbGas6 =
new TGeoBBox(
"mainframe6_gas_PB", frameSizeHalfGas, frameSizeHalfGas, lenHalf6 - frameSizeHalf);
861 TGeoBBox* pb6 =
new TGeoBBox(
"mainframe6_PB", frameSizeHalf, frameSizeHalf, lenHalf6 - frameSizeHalf);
862 TGeoVolume* volGas6 =
new TGeoVolume(
"mainframe6_gas", pbGas6, medGas);
863 TGeoVolume* vol6 =
new TGeoVolume(
"mainframe6", pb6, medAlum);
866 vol6->AddNode(volGas6, 1);
867 mainFrame->AddNode(vol6, 1,
MakeTrans(-posX2, posY, posZ4 - lenHalf6 - frameSizeHalf));
868 mainFrame->AddNode(vol6, 2,
MakeTrans(-posX2, -posY, posZ4 - lenHalf6 - frameSizeHalf));
869 mainFrame->AddNode(vol6, 3,
MakeTrans(posX2, posY, posZ4 - lenHalf6 - frameSizeHalf));
870 mainFrame->AddNode(vol6, 4,
MakeTrans(posX2, -posY, posZ4 - lenHalf6 - frameSizeHalf));
871 mainFrame->AddNode(vol6, 5,
MakeTrans(-posX1, posY, posZ4 - lenHalf6 - frameSizeHalf));
872 mainFrame->AddNode(vol6, 6,
MakeTrans(-posX1, -posY, posZ4 - lenHalf6 - frameSizeHalf));
873 mainFrame->AddNode(vol6, 7,
MakeTrans(posX1, posY, posZ4 - lenHalf6 - frameSizeHalf));
874 mainFrame->AddNode(vol6, 8,
MakeTrans(posX1, -posY, posZ4 - lenHalf6 - frameSizeHalf));
875 mainFrame->AddNode(vol6, 9,
MakeTrans(0., posY, posZ4 - lenHalf6 - frameSizeHalf));
876 mainFrame->AddNode(vol6, 10,
MakeTrans(0., -posY, posZ4 - lenHalf6 - frameSizeHalf));
877 mainFrame->AddNode(vol6, 11,
MakeTrans(posX3, posY2, posZ4 - lenHalf6 - frameSizeHalf));
878 mainFrame->AddNode(vol6, 12,
MakeTrans(posX3, -posY2, posZ4 - lenHalf6 - frameSizeHalf));
879 mainFrame->AddNode(vol6, 13,
MakeTrans(-posX3, posY2, posZ4 - lenHalf6 - frameSizeHalf));
880 mainFrame->AddNode(vol6, 14,
MakeTrans(-posX3, -posY2, posZ4 - lenHalf6 - frameSizeHalf));
881 mainFrame->AddNode(vol6, 15,
MakeTrans(-posX3, posY, posZ4 - lenHalf6 - frameSizeHalf));
882 mainFrame->AddNode(vol6, 16,
MakeTrans(-posX3, -posY, posZ4 - lenHalf6 - frameSizeHalf));
883 mainFrame->AddNode(vol6, 17,
MakeTrans(posX3, posY, posZ4 - lenHalf6 - frameSizeHalf));
884 mainFrame->AddNode(vol6, 18,
MakeTrans(posX3, -posY, posZ4 - lenHalf6 - frameSizeHalf));
888 TGeoBBox* pbGas7 =
new TGeoBBox(
"mainframe7_gas_PB", frameSizeHalfGas, frameSizeHalfGas, lenHalf2 + lenHalf3);
889 TGeoBBox* pb7 =
new TGeoBBox(
"mainframe7_PB", frameSizeHalf, frameSizeHalf, lenHalf2 + lenHalf3);
890 TGeoVolume* volGas7 =
new TGeoVolume(
"mainframe7_gas", pbGas7, medGas);
891 TGeoVolume* vol7 =
new TGeoVolume(
"mainframe7", pb7, medAlum);
892 vol7->AddNode(volGas7, 1);
893 mainFrame->AddNode(vol7, 1,
MakeTrans(posX3, posY2, posZ2 - lenHalf3 - frameSizeHalf));
894 mainFrame->AddNode(vol7, 2,
MakeTrans(posX3, -posY2, posZ2 - lenHalf3 - frameSizeHalf));
895 mainFrame->AddNode(vol7, 3,
MakeTrans(-posX3, posY2, posZ2 - lenHalf3 - frameSizeHalf));
896 mainFrame->AddNode(vol7, 4,
MakeTrans(-posX3, -posY2, posZ2 - lenHalf3 - frameSizeHalf));
899 TGeoBBox* pbGas8 =
new TGeoBBox(
"mainframe8_gas_PB", lenHalf8, frameSizeHalfGas, frameSizeHalfGas);
900 TGeoBBox* pb8 =
new TGeoBBox(
"mainframe8_PB", lenHalf8, frameSizeHalf, frameSizeHalf);
901 TGeoVolume* volGas8 =
new TGeoVolume(
"mainframe8_gas", pbGas8, medGas);
902 TGeoVolume* vol8 =
new TGeoVolume(
"mainframe8", pb8, medAlum);
903 vol8->AddNode(volGas8, 1);
904 mainFrame->AddNode(vol8, 1,
MakeTrans(posX3 - lenHalf8 + frameSizeHalf, posY3, posZ1));
905 mainFrame->AddNode(vol8, 2,
MakeTrans(-posX3 + lenHalf8 - frameSizeHalf, posY3, posZ1));
906 mainFrame->AddNode(vol8, 3,
MakeTrans(posX3 - lenHalf8 + frameSizeHalf, -posY3, posZ1));
907 mainFrame->AddNode(vol8, 4,
MakeTrans(-posX3 + lenHalf8 - frameSizeHalf, -posY3, posZ1));