515 Double_t verticalFrame_ZSize = 3.25;
517 Double_t verticalFrameHole_Radius = 1.6 * 0.5;
518 Double_t verticalFrameHole_ZSize = 0.6;
522 verticalFrame_YSize * 0.5, verticalFrame_ZSize * 0.5);
524 verticalFrameHole_Radius, verticalFrameHole_ZSize * 0.5);
533 if (verticalFrameV_medium) {
534 verticalFrameV->
SetMedium(verticalFrameV_medium);
536 Fatal(
"Main",
"Invalid medium for verticalFrameV!");
539 if (verticalFrameHoleV_medium) {
540 verticalFrameHoleV->
SetMedium(verticalFrameHoleV_medium);
542 Fatal(
"Main",
"Invalid medium for verticalFrameHoleV!");
552 Double_t y_pos = +verticalFrame_YSize * 0.5 - 9.175;
555 verticalFrameHoleV_transf[
i]->
SetDx(+0.65 );
556 verticalFrameHoleV_transf[
i]->
SetDy(y_pos);
557 verticalFrameHoleV_transf[
i]->
SetDz(-verticalFrame_ZSize * 0.5 + verticalFrameHole_ZSize * 0.5
561 verticalFrameHoleV_transf[
i + 4]->
SetDx(+0.65 );
562 verticalFrameHoleV_transf[
i + 4]->
SetDy(y_pos);
563 verticalFrameHoleV_transf[
i + 4]->
SetDz(
564 -(-verticalFrame_ZSize * 0.5 + verticalFrameHole_ZSize * 0.5 - 0.0001 ));
566 verticalFrameV->
AddNode(verticalFrameHoleV,
i, verticalFrameHoleV_transf[
i]);
567 verticalFrameV->
AddNode(verticalFrameHoleV,
i + 4, verticalFrameHoleV_transf[
i + 4]);
577 verticalFrameV_transf[0]->
SetDy(0.0);
578 verticalFrameV_transf[0]->
SetDz(0.0);
582 verticalFrameV_transf[1]->
RotateY(180.0);
584 verticalFrameV_transf[1]->
SetDy(0.0);
585 verticalFrameV_transf[1]->
SetDz(0.0);
587 frameA->
AddNode(verticalFrameV, 0, verticalFrameV_transf[0]);
588 frameA->
AddNode(verticalFrameV, 1, verticalFrameV_transf[1]);
593 Double_t horizontalFrame_YSize = 4.5;
594 Double_t horizontalFrame_ZSize = 3.25;
596 Double_t horizontalFrameHole_Radius = 1.6 * 0.5;
597 Double_t horizontalFrameHole_ZSize = 0.6;
601 horizontalFrame_YSize * 0.5, horizontalFrame_ZSize * 0.5);
603 0.0, horizontalFrameHole_Radius, horizontalFrameHole_ZSize * 0.5);
612 if (horizontalFrameV_medium) {
613 horizontalFrameV->
SetMedium(horizontalFrameV_medium);
615 Fatal(
"Main",
"Invalid medium for horizontalFrameV!");
618 if (horizontalFrameHoleV_medium) {
619 horizontalFrameHoleV->
SetMedium(horizontalFrameHoleV_medium);
621 Fatal(
"Main",
"Invalid medium for horizontalFrameHoleV!");
631 Double_t x_pos = horizontalFrame_XSize * 0.5 - 1.6;
634 horizontalFrameHoleV_transf[
i]->
SetDx(x_pos);
635 horizontalFrameHoleV_transf[
i]->
SetDy(+0.65 );
636 horizontalFrameHoleV_transf[
i]->
SetDz(-horizontalFrame_ZSize * 0.5 + horizontalFrameHole_ZSize * 0.5
640 horizontalFrameHoleV_transf[
i + 10]->
SetDx(x_pos);
641 horizontalFrameHoleV_transf[
i + 10]->
SetDy(+0.65 );
642 horizontalFrameHoleV_transf[
i + 10]->
SetDz(
643 -(-horizontalFrame_ZSize * 0.5 + horizontalFrameHole_ZSize * 0.5 - 0.0001 ));
645 horizontalFrameV->
AddNode(horizontalFrameHoleV,
i, horizontalFrameHoleV_transf[
i]);
646 horizontalFrameV->
AddNode(horizontalFrameHoleV,
i + 10, horizontalFrameHoleV_transf[
i + 10]);
648 if (
i == 0 ||
i == 8)
658 horizontalFrameV_transf[0]->
SetDx(0.0);
660 horizontalFrameV_transf[0]->
SetDz(0.0);
662 frameA->
AddNode(horizontalFrameV, 0, horizontalFrameV_transf[0]);
668 Double_t fiberGlassPanel_ZSize = 0.1;
669 Double_t fiberGlassPanel_HoleRadius = 1.75;
673 Double_t honeyCombPanel_ZSize = 1.05;
674 Double_t honeyCombPanel_HoleRadius = 1.75;
680 (fiberGlassPanel_YSize - fiberGlassPanel_HoleRadius) * 0.5, fiberGlassPanel_ZSize * 0.5);
683 (fiberGlassPanel_XSize * 0.5 - fiberGlassPanel_HoleRadius) * 0.5, fiberGlassPanel_HoleRadius * 0.5,
684 fiberGlassPanel_ZSize * 0.5);
688 fiberGlassPanelBigPart_pos->
SetDx(0.0);
689 fiberGlassPanelBigPart_pos->
SetDy(+fiberGlassPanel_HoleRadius * 0.5 + 0.0001);
690 fiberGlassPanelBigPart_pos->
SetDz(0.0);
694 fiberGlassPanelSmallPart_pos1->
SetName(
TString(
"fiberGlassPanelSmallPart_pos1") +=
696 fiberGlassPanelSmallPart_pos1->
SetDx(+(fiberGlassPanel_XSize * 0.5 + fiberGlassPanel_HoleRadius) * 0.5);
697 fiberGlassPanelSmallPart_pos1->
SetDy(-(fiberGlassPanel_YSize - fiberGlassPanel_HoleRadius) * 0.5);
698 fiberGlassPanelSmallPart_pos1->
SetDz(0.0);
702 fiberGlassPanelSmallPart_pos2->
SetName(
TString(
"fiberGlassPanelSmallPart_pos2") +=
704 fiberGlassPanelSmallPart_pos2->
SetDx(-(fiberGlassPanel_XSize * 0.5 + fiberGlassPanel_HoleRadius) * 0.5);
705 fiberGlassPanelSmallPart_pos2->
SetDy(-(fiberGlassPanel_YSize - fiberGlassPanel_HoleRadius) * 0.5);
706 fiberGlassPanelSmallPart_pos2->
SetDz(0.0);
712 TString expression =
"fiberGlassPanelBigPartS";
714 expression +=
":fiberGlassPanelBigPart_pos";
716 expression +=
"+fiberGlassPanelSmallPartS";
718 expression +=
":fiberGlassPanelSmallPart_pos1";
720 expression +=
"+fiberGlassPanelSmallPartS";
722 expression +=
":fiberGlassPanelSmallPart_pos2";
725 fiberGlassPanelS->
MakeNode(expression);
733 (honeyCombPanel_YSize - honeyCombPanel_HoleRadius) * 0.5, honeyCombPanel_ZSize * 0.5);
736 (honeyCombPanel_XSize * 0.5 - honeyCombPanel_HoleRadius) * 0.5, honeyCombPanel_HoleRadius * 0.5,
737 honeyCombPanel_ZSize * 0.5);
741 honeyCombPanelBigPart_pos->
SetDx(0.0);
742 honeyCombPanelBigPart_pos->
SetDy(+honeyCombPanel_HoleRadius * 0.5 + 0.0001);
743 honeyCombPanelBigPart_pos->
SetDz(0.0);
748 honeyCombPanelSmallPart_pos1->
SetDx(+(honeyCombPanel_XSize * 0.5 + honeyCombPanel_HoleRadius) * 0.5);
749 honeyCombPanelSmallPart_pos1->
SetDy(-(honeyCombPanel_YSize - honeyCombPanel_HoleRadius) * 0.5);
750 honeyCombPanelSmallPart_pos1->
SetDz(0.0);
755 honeyCombPanelSmallPart_pos2->
SetDx(-(honeyCombPanel_XSize * 0.5 + honeyCombPanel_HoleRadius) * 0.5);
756 honeyCombPanelSmallPart_pos2->
SetDy(-(honeyCombPanel_YSize - honeyCombPanel_HoleRadius) * 0.5);
757 honeyCombPanelSmallPart_pos2->
SetDz(0.0);
763 TString expression =
"honeyCombPanelBigPartS";
765 expression +=
":honeyCombPanelBigPart_pos";
767 expression +=
"+honeyCombPanelSmallPartS";
769 expression +=
":honeyCombPanelSmallPart_pos1";
771 expression +=
"+honeyCombPanelSmallPartS";
773 expression +=
":honeyCombPanelSmallPart_pos2";
776 honeyCombPanelS->
MakeNode(expression);
787 if (fiberGlassPanelV_medium) {
788 fiberGlassPanelV->
SetMedium(fiberGlassPanelV_medium);
790 Fatal(
"Main",
"Invalid medium for fiberGlassPanelV!");
793 if (honeyCombPanelV_medium) {
794 honeyCombPanelV->
SetMedium(honeyCombPanelV_medium);
796 Fatal(
"Main",
"Invalid medium for honeyCombPanelV!");
807 fiberGlassPanelV_transf[0]->
SetDx(0.0);
808 fiberGlassPanelV_transf[0]->
SetDy(0.0);
812 fiberGlassPanelV_transf[1]->
SetDx(0.0);
813 fiberGlassPanelV_transf[1]->
SetDy(0.0);
817 fiberGlassPanelV_transf[2]->
SetDx(0.0);
818 fiberGlassPanelV_transf[2]->
SetDy(0.0);
819 fiberGlassPanelV_transf[2]->
SetDz(
820 -(
ZGasSize_small * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize + fiberGlassPanel_ZSize * 0.5));
823 fiberGlassPanelV_transf[3]->
SetDx(0.0);
824 fiberGlassPanelV_transf[3]->
SetDy(0.0);
825 fiberGlassPanelV_transf[3]->
SetDz(
826 +(
ZGasSize_small * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize + fiberGlassPanel_ZSize * 0.5));
831 honeyCombPanelV_transf[0]->
SetDx(0.0);
832 honeyCombPanelV_transf[0]->
SetDy(0.0);
833 honeyCombPanelV_transf[0]->
SetDz(-(
ZGasSize_small * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize * 0.5));
836 honeyCombPanelV_transf[1]->
SetDx(0.0);
837 honeyCombPanelV_transf[1]->
SetDy(0.0);
838 honeyCombPanelV_transf[1]->
SetDz(+(
ZGasSize_small * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize * 0.5));
840 frameA->
AddNode(fiberGlassPanelV, 0, fiberGlassPanelV_transf[0]);
841 frameA->
AddNode(fiberGlassPanelV, 1, fiberGlassPanelV_transf[1]);
842 frameA->
AddNode(fiberGlassPanelV, 2, fiberGlassPanelV_transf[2]);
843 frameA->
AddNode(fiberGlassPanelV, 3, fiberGlassPanelV_transf[3]);
845 frameA->
AddNode(honeyCombPanelV, 0, honeyCombPanelV_transf[0]);
846 frameA->
AddNode(honeyCombPanelV, 1, honeyCombPanelV_transf[1]);
850 Double_t outerSpacerPart1_Radius = 0.8 * 0.5;
851 Double_t outerSpacerPart1_ZSize = 0.4;
854 outerSpacerPart1_Radius, outerSpacerPart1_ZSize * 0.5, 0.0, 360.0);
858 outerSpacerPart1_pos1->
SetDx(0.0);
859 outerSpacerPart1_pos1->
SetDy(0.0);
865 outerSpacerPart1_pos2->
SetDx(0.0);
866 outerSpacerPart1_pos2->
SetDy(0.0);
873 TString expression =
"outerSpacerPart1S";
875 expression +=
":outerSpacerPart1_pos1";
877 expression +=
"+outerSpacerPart1S";
879 expression +=
":outerSpacerPart1_pos2";
890 if (outerSpacerV_medium) {
891 outerSpacerV->
SetMedium(outerSpacerV_medium);
893 Fatal(
"Main",
"Invalid medium for outerSpacerV!");
902 outerSpacerV_transf[0]->
SetDx(0.0);
904 outerSpacerV_transf[0]->
SetDz(0.0);
907 frameA->
AddNode(outerSpacerV, 0, outerSpacerV_transf[0]);
916 Double_t spacerBedInnerHole_Radius = 0.8 * 0.5 + 0.01;
917 Double_t spacerBedInnerHole_ZSize = 0.4;
919 Double_t spacerBedOuterHole_Radius = 2.0 * 0.5;
920 Double_t spacerBedOuterHole_ZSize = 0.85;
923 spacerBed_XSize * 0.5, spacerBed_YSize * 0.5, spacerBed_ZSize * 0.5);
925 0.0, spacerBedInnerHole_Radius, (spacerBed_ZSize + 0.01) * 0.5);
928 (spacerBedOuterHole_ZSize + 0.01) * 0.5);
932 spacerBedBlank_pos->
SetDx(0.0);
933 spacerBedBlank_pos->
SetDy(0.0);
934 spacerBedBlank_pos->
SetDz(0.0);
939 spacerBedInnerHole_pos->
SetDx(0.0);
940 spacerBedInnerHole_pos->
SetDy(0.0);
941 spacerBedInnerHole_pos->
SetDz(0.0);
946 spacerBedOuterHole_pos->
SetDx(0.0);
947 spacerBedOuterHole_pos->
SetDy(0.0);
948 spacerBedOuterHole_pos->
SetDz(-(spacerBed_ZSize * 0.5 - spacerBedOuterHole_ZSize * 0.5 + 0.01));
954 TString expression =
"spacerBedBlankS";
956 expression +=
":spacerBedBlank_pos";
958 expression +=
"-spacerBedOuterHoleS";
960 expression +=
":spacerBedOuterHole_pos";
962 expression +=
"-spacerBedInnerHoleS";
964 expression +=
":spacerBedInnerHole_pos";
975 if (spacerBedV_medium) {
976 spacerBedV->
SetMedium(spacerBedV_medium);
978 Fatal(
"Main",
"Invalid medium for spacerBedV!");
987 spacerBedV_transf[0]->
SetDx(0.0);
992 spacerBedV_transf[1]->
RotateY(180.0);
993 spacerBedV_transf[1]->
SetDx(0.0);
998 frameA->
AddNode(spacerBedV, 0, spacerBedV_transf[0]);
999 frameA->
AddNode(spacerBedV, 1, spacerBedV_transf[1]);
1004 Double_t fixingPlate_Radius = 1.8 * 0.5;
1008 fixingPlate_Radius, fixingPlate_ZSize * 0.5);
1014 if (fixingPlateV_medium) {
1015 fixingPlateV->
SetMedium(fixingPlateV_medium);
1017 Fatal(
"Main",
"Invalid medium for fixingPlateV!");
1026 fixingPlateV_transf[0]->
SetDx(0.0);
1028 fixingPlateV_transf[0]->
SetDz(
1029 -(
ZGasSize_small * 0.5 + fixingPlate_ZSize * 0.5 + spacerBedInnerHole_ZSize + 0.005 ));
1032 fixingPlateV_transf[1]->
SetDx(0.0);
1034 fixingPlateV_transf[1]->
SetDz(
1035 +(
ZGasSize_small * 0.5 + fixingPlate_ZSize * 0.5 + spacerBedInnerHole_ZSize + 0.005 ));
1038 frameA->
AddNode(fixingPlateV, 0, fixingPlateV_transf[0]);
1039 frameA->
AddNode(fixingPlateV, 1, fixingPlateV_transf[1]);