554 Double_t verticalFrame_ZSize = 3.25;
556 Double_t verticalFrameHole_Radius = 1.6 * 0.5;
557 Double_t verticalFrameHole_ZSize = 0.6;
561 verticalFrame_YSize * 0.5, verticalFrame_ZSize * 0.5);
563 verticalFrameHole_Radius, verticalFrameHole_ZSize * 0.5);
572 if (verticalFrameV_medium) {
573 verticalFrameV->
SetMedium(verticalFrameV_medium);
575 Fatal(
"Main",
"Invalid medium for verticalFrameV!");
578 if (verticalFrameHoleV_medium) {
579 verticalFrameHoleV->
SetMedium(verticalFrameHoleV_medium);
581 Fatal(
"Main",
"Invalid medium for verticalFrameHoleV!");
591 Double_t y_pos = verticalFrame_YSize * 0.5 - 9.175;
594 verticalFrameHoleV_transf[
i]->
SetDx(+0.65 );
595 verticalFrameHoleV_transf[
i]->
SetDy(y_pos);
596 verticalFrameHoleV_transf[
i]->
SetDz(-verticalFrame_ZSize * 0.5 + verticalFrameHole_ZSize * 0.5
600 verticalFrameHoleV_transf[
i + 4]->
SetDx(+0.65 );
601 verticalFrameHoleV_transf[
i + 4]->
SetDy(y_pos);
602 verticalFrameHoleV_transf[
i + 4]->
SetDz(
603 -(-verticalFrame_ZSize * 0.5 + verticalFrameHole_ZSize * 0.5 - 0.0001 ));
605 verticalFrameV->
AddNode(verticalFrameHoleV,
i, verticalFrameHoleV_transf[
i]);
606 verticalFrameV->
AddNode(verticalFrameHoleV,
i + 4, verticalFrameHoleV_transf[
i + 4]);
616 verticalFrameV_transf[0]->
SetDy(0.0);
617 verticalFrameV_transf[0]->
SetDz(0.0);
621 verticalFrameV_transf[1]->
RotateY(180.0);
623 verticalFrameV_transf[1]->
SetDy(0.0);
624 verticalFrameV_transf[1]->
SetDz(0.0);
626 frameA->
AddNode(verticalFrameV, 0, verticalFrameV_transf[0]);
627 frameA->
AddNode(verticalFrameV, 1, verticalFrameV_transf[1]);
632 Double_t horizontalFrame_YSize = 4.5;
633 Double_t horizontalFrame_ZSize = 3.25;
635 Double_t horizontalFrameHole_Radius = 1.6 * 0.5;
636 Double_t horizontalFrameHole_ZSize = 0.6;
640 horizontalFrame_YSize * 0.5, horizontalFrame_ZSize * 0.5);
642 0.0, horizontalFrameHole_Radius, horizontalFrameHole_ZSize * 0.5);
651 if (horizontalFrameV_medium) {
652 horizontalFrameV->
SetMedium(horizontalFrameV_medium);
654 Fatal(
"Main",
"Invalid medium for horizontalFrameV!");
657 if (horizontalFrameHoleV_medium) {
658 horizontalFrameHoleV->
SetMedium(horizontalFrameHoleV_medium);
660 Fatal(
"Main",
"Invalid medium for horizontalFrameHoleV!");
670 Double_t x_pos = horizontalFrame_XSize * 0.5 - 1.6;
673 horizontalFrameHoleV_transf[
i]->
SetDx(x_pos);
674 horizontalFrameHoleV_transf[
i]->
SetDy(+0.65 );
675 horizontalFrameHoleV_transf[
i]->
SetDz(-horizontalFrame_ZSize * 0.5 + horizontalFrameHole_ZSize * 0.5
679 horizontalFrameHoleV_transf[
i + 10]->
SetDx(x_pos);
680 horizontalFrameHoleV_transf[
i + 10]->
SetDy(+0.65 );
681 horizontalFrameHoleV_transf[
i + 10]->
SetDz(
682 -(-horizontalFrame_ZSize * 0.5 + horizontalFrameHole_ZSize * 0.5 - 0.0001 ));
684 horizontalFrameV->
AddNode(horizontalFrameHoleV,
i, horizontalFrameHoleV_transf[
i]);
685 horizontalFrameV->
AddNode(horizontalFrameHoleV,
i + 10, horizontalFrameHoleV_transf[
i + 10]);
687 if (
i == 0 ||
i == 8)
697 horizontalFrameV_transf[0]->
SetDx(0.0);
699 horizontalFrameV_transf[0]->
SetDz(0.0);
701 frameA->
AddNode(horizontalFrameV, 0, horizontalFrameV_transf[0]);
707 Double_t fiberGlassPanel_ZSize = 0.1;
708 Double_t fiberGlassPanel_HoleRadius = 1.75;
712 Double_t honeyCombPanel_ZSize = 1.05;
713 Double_t honeyCombPanel_HoleRadius = 1.75;
719 (fiberGlassPanel_YSize - fiberGlassPanel_HoleRadius) * 0.5, fiberGlassPanel_ZSize * 0.5);
722 (fiberGlassPanel_XSize * 0.5 - fiberGlassPanel_HoleRadius) * 0.5, fiberGlassPanel_HoleRadius * 0.5,
723 fiberGlassPanel_ZSize * 0.5);
727 fiberGlassPanelBigPart_pos->
SetDx(0.0);
728 fiberGlassPanelBigPart_pos->
SetDy(+fiberGlassPanel_HoleRadius * 0.5 + 0.0001);
729 fiberGlassPanelBigPart_pos->
SetDz(0.0);
733 fiberGlassPanelSmallPart_pos1->
SetName(
TString(
"fiberGlassPanelSmallPart_pos1") +=
735 fiberGlassPanelSmallPart_pos1->
SetDx(+(fiberGlassPanel_XSize * 0.5 + fiberGlassPanel_HoleRadius) * 0.5);
736 fiberGlassPanelSmallPart_pos1->
SetDy(-(fiberGlassPanel_YSize - fiberGlassPanel_HoleRadius) * 0.5);
737 fiberGlassPanelSmallPart_pos1->
SetDz(0.0);
741 fiberGlassPanelSmallPart_pos2->
SetName(
TString(
"fiberGlassPanelSmallPart_pos2") +=
743 fiberGlassPanelSmallPart_pos2->
SetDx(-(fiberGlassPanel_XSize * 0.5 + fiberGlassPanel_HoleRadius) * 0.5);
744 fiberGlassPanelSmallPart_pos2->
SetDy(-(fiberGlassPanel_YSize - fiberGlassPanel_HoleRadius) * 0.5);
745 fiberGlassPanelSmallPart_pos2->
SetDz(0.0);
751 TString expression =
"fiberGlassPanelBigPartS";
753 expression +=
":fiberGlassPanelBigPart_pos";
755 expression +=
"+fiberGlassPanelSmallPartS";
757 expression +=
":fiberGlassPanelSmallPart_pos1";
759 expression +=
"+fiberGlassPanelSmallPartS";
761 expression +=
":fiberGlassPanelSmallPart_pos2";
764 fiberGlassPanelS->
MakeNode(expression);
772 (honeyCombPanel_YSize - honeyCombPanel_HoleRadius) * 0.5, honeyCombPanel_ZSize * 0.5);
775 (honeyCombPanel_XSize * 0.5 - honeyCombPanel_HoleRadius) * 0.5, honeyCombPanel_HoleRadius * 0.5,
776 honeyCombPanel_ZSize * 0.5);
780 honeyCombPanelBigPart_pos->
SetDx(0.0);
781 honeyCombPanelBigPart_pos->
SetDy(+honeyCombPanel_HoleRadius * 0.5 + 0.0001);
782 honeyCombPanelBigPart_pos->
SetDz(0.0);
787 honeyCombPanelSmallPart_pos1->
SetDx(+(honeyCombPanel_XSize * 0.5 + honeyCombPanel_HoleRadius) * 0.5);
788 honeyCombPanelSmallPart_pos1->
SetDy(-(honeyCombPanel_YSize - honeyCombPanel_HoleRadius) * 0.5);
789 honeyCombPanelSmallPart_pos1->
SetDz(0.0);
794 honeyCombPanelSmallPart_pos2->
SetDx(-(honeyCombPanel_XSize * 0.5 + honeyCombPanel_HoleRadius) * 0.5);
795 honeyCombPanelSmallPart_pos2->
SetDy(-(honeyCombPanel_YSize - honeyCombPanel_HoleRadius) * 0.5);
796 honeyCombPanelSmallPart_pos2->
SetDz(0.0);
802 TString expression =
"honeyCombPanelBigPartS";
804 expression +=
":honeyCombPanelBigPart_pos";
806 expression +=
"+honeyCombPanelSmallPartS";
808 expression +=
":honeyCombPanelSmallPart_pos1";
810 expression +=
"+honeyCombPanelSmallPartS";
812 expression +=
":honeyCombPanelSmallPart_pos2";
815 honeyCombPanelS->
MakeNode(expression);
826 if (fiberGlassPanelV_medium) {
827 fiberGlassPanelV->
SetMedium(fiberGlassPanelV_medium);
829 Fatal(
"Main",
"Invalid medium for fiberGlassPanelV!");
832 if (honeyCombPanelV_medium) {
833 honeyCombPanelV->
SetMedium(honeyCombPanelV_medium);
835 Fatal(
"Main",
"Invalid medium for honeyCombPanelV!");
846 fiberGlassPanelV_transf[0]->
SetDx(0.0);
847 fiberGlassPanelV_transf[0]->
SetDy(0.0);
851 fiberGlassPanelV_transf[1]->
SetDx(0.0);
852 fiberGlassPanelV_transf[1]->
SetDy(0.0);
856 fiberGlassPanelV_transf[2]->
SetDx(0.0);
857 fiberGlassPanelV_transf[2]->
SetDy(0.0);
858 fiberGlassPanelV_transf[2]->
SetDz(
859 -(
ZGasSize_small * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize + fiberGlassPanel_ZSize * 0.5));
862 fiberGlassPanelV_transf[3]->
SetDx(0.0);
863 fiberGlassPanelV_transf[3]->
SetDy(0.0);
864 fiberGlassPanelV_transf[3]->
SetDz(
865 +(
ZGasSize_small * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize + fiberGlassPanel_ZSize * 0.5));
870 honeyCombPanelV_transf[0]->
SetDx(0.0);
871 honeyCombPanelV_transf[0]->
SetDy(0.0);
872 honeyCombPanelV_transf[0]->
SetDz(-(
ZGasSize_small * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize * 0.5));
875 honeyCombPanelV_transf[1]->
SetDx(0.0);
876 honeyCombPanelV_transf[1]->
SetDy(0.0);
877 honeyCombPanelV_transf[1]->
SetDz(+(
ZGasSize_small * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize * 0.5));
879 frameA->
AddNode(fiberGlassPanelV, 0, fiberGlassPanelV_transf[0]);
880 frameA->
AddNode(fiberGlassPanelV, 1, fiberGlassPanelV_transf[1]);
881 frameA->
AddNode(fiberGlassPanelV, 2, fiberGlassPanelV_transf[2]);
882 frameA->
AddNode(fiberGlassPanelV, 3, fiberGlassPanelV_transf[3]);
884 frameA->
AddNode(honeyCombPanelV, 0, honeyCombPanelV_transf[0]);
885 frameA->
AddNode(honeyCombPanelV, 1, honeyCombPanelV_transf[1]);
889 Double_t outerSpacerPart1_Radius = 0.8 * 0.5;
890 Double_t outerSpacerPart1_ZSize = 0.4;
893 outerSpacerPart1_Radius, outerSpacerPart1_ZSize * 0.5, 0.0, 360.0);
897 outerSpacerPart1_pos1->
SetDx(0.0);
898 outerSpacerPart1_pos1->
SetDy(0.0);
904 outerSpacerPart1_pos2->
SetDx(0.0);
905 outerSpacerPart1_pos2->
SetDy(0.0);
912 TString expression =
"outerSpacerPart1S";
914 expression +=
":outerSpacerPart1_pos1";
916 expression +=
"+outerSpacerPart1S";
918 expression +=
":outerSpacerPart1_pos2";
929 if (outerSpacerV_medium) {
930 outerSpacerV->
SetMedium(outerSpacerV_medium);
932 Fatal(
"Main",
"Invalid medium for outerSpacerV!");
941 outerSpacerV_transf[0]->
SetDx(0.0);
943 outerSpacerV_transf[0]->
SetDz(0.0);
946 frameA->
AddNode(outerSpacerV, 0, outerSpacerV_transf[0]);
955 Double_t spacerBedInnerHole_Radius = 0.8 * 0.5 + 0.01;
956 Double_t spacerBedInnerHole_ZSize = 0.4;
958 Double_t spacerBedOuterHole_Radius = 2.0 * 0.5;
959 Double_t spacerBedOuterHole_ZSize = 0.85;
962 spacerBed_XSize * 0.5, spacerBed_YSize * 0.5, spacerBed_ZSize * 0.5);
964 0.0, spacerBedInnerHole_Radius, (spacerBed_ZSize + 0.01) * 0.5);
967 (spacerBedOuterHole_ZSize + 0.01) * 0.5);
971 spacerBedBlank_pos->
SetDx(0.0);
972 spacerBedBlank_pos->
SetDy(0.0);
973 spacerBedBlank_pos->
SetDz(0.0);
978 spacerBedInnerHole_pos->
SetDx(0.0);
979 spacerBedInnerHole_pos->
SetDy(0.0);
980 spacerBedInnerHole_pos->
SetDz(0.0);
985 spacerBedOuterHole_pos->
SetDx(0.0);
986 spacerBedOuterHole_pos->
SetDy(0.0);
987 spacerBedOuterHole_pos->
SetDz(-(spacerBed_ZSize * 0.5 - spacerBedOuterHole_ZSize * 0.5 + 0.01));
993 TString expression =
"spacerBedBlankS";
995 expression +=
":spacerBedBlank_pos";
997 expression +=
"-spacerBedOuterHoleS";
999 expression +=
":spacerBedOuterHole_pos";
1001 expression +=
"-spacerBedInnerHoleS";
1003 expression +=
":spacerBedInnerHole_pos";
1014 if (spacerBedV_medium) {
1015 spacerBedV->
SetMedium(spacerBedV_medium);
1017 Fatal(
"Main",
"Invalid medium for spacerBedV!");
1026 spacerBedV_transf[0]->
SetDx(0.0);
1031 spacerBedV_transf[1]->
RotateY(180.0);
1032 spacerBedV_transf[1]->
SetDx(0.0);
1037 frameA->
AddNode(spacerBedV, 0, spacerBedV_transf[0]);
1038 frameA->
AddNode(spacerBedV, 1, spacerBedV_transf[1]);
1043 Double_t fixingPlate_Radius = 1.8 * 0.5;
1047 fixingPlate_Radius, fixingPlate_ZSize * 0.5);
1053 if (fixingPlateV_medium) {
1054 fixingPlateV->
SetMedium(fixingPlateV_medium);
1056 Fatal(
"Main",
"Invalid medium for fixingPlateV!");
1065 fixingPlateV_transf[0]->
SetDx(0.0);
1067 fixingPlateV_transf[0]->
SetDz(
1068 -(
ZGasSize_small * 0.5 + fixingPlate_ZSize * 0.5 + spacerBedInnerHole_ZSize + 0.005 ));
1071 fixingPlateV_transf[1]->
SetDx(0.0);
1073 fixingPlateV_transf[1]->
SetDz(
1074 +(
ZGasSize_small * 0.5 + fixingPlate_ZSize * 0.5 + spacerBedInnerHole_ZSize + 0.005 ));
1077 frameA->
AddNode(fixingPlateV, 0, fixingPlateV_transf[0]);
1078 frameA->
AddNode(fixingPlateV, 1, fixingPlateV_transf[1]);