493 Double_t verticalFrame_ZSize = 3.25;
495 Double_t verticalFrameHole_Radius = 1.6 * 0.5;
496 Double_t verticalFrameHole_ZSize = 0.6;
500 verticalFrame_YSize * 0.5, verticalFrame_ZSize * 0.5);
502 verticalFrameHole_Radius, verticalFrameHole_ZSize * 0.5);
511 if (verticalFrameV_medium) {
512 verticalFrameV->
SetMedium(verticalFrameV_medium);
514 Fatal(
"Main",
"Invalid medium for verticalFrameV!");
517 if (verticalFrameHoleV_medium) {
518 verticalFrameHoleV->
SetMedium(verticalFrameHoleV_medium);
520 Fatal(
"Main",
"Invalid medium for verticalFrameHoleV!");
530 Double_t y_pos = +verticalFrame_YSize * 0.5 - 9.175;
533 verticalFrameHoleV_transf[
i]->
SetDx(+0.65 );
534 verticalFrameHoleV_transf[
i]->
SetDy(y_pos);
535 verticalFrameHoleV_transf[
i]->
SetDz(-verticalFrame_ZSize * 0.5 + verticalFrameHole_ZSize * 0.5
539 verticalFrameHoleV_transf[
i + 4]->
SetDx(+0.65 );
540 verticalFrameHoleV_transf[
i + 4]->
SetDy(y_pos);
541 verticalFrameHoleV_transf[
i + 4]->
SetDz(
542 -(-verticalFrame_ZSize * 0.5 + verticalFrameHole_ZSize * 0.5 - 0.0001 ));
544 verticalFrameV->
AddNode(verticalFrameHoleV,
i, verticalFrameHoleV_transf[
i]);
545 verticalFrameV->
AddNode(verticalFrameHoleV,
i + 4, verticalFrameHoleV_transf[
i + 4]);
554 verticalFrameV_transf[0]->
SetDx(+(
XGasSize * 0.5 + verticalFrame_XSize * 0.5));
555 verticalFrameV_transf[0]->
SetDy(0.0);
556 verticalFrameV_transf[0]->
SetDz(0.0);
559 verticalFrameV_transf[1]->
ReflectX(
true);
560 verticalFrameV_transf[1]->
SetDx(-(
XGasSize * 0.5 + verticalFrame_XSize * 0.5));
561 verticalFrameV_transf[1]->
SetDy(0.0);
562 verticalFrameV_transf[1]->
SetDz(0.0);
564 frameA->
AddNode(verticalFrameV, 0, verticalFrameV_transf[0]);
565 frameA->
AddNode(verticalFrameV, 1, verticalFrameV_transf[1]);
570 Double_t horizontalFrame_YSize = 4.5;
571 Double_t horizontalFrame_ZSize = 3.25;
573 Double_t horizontalFrameHole_Radius = 1.6 * 0.5;
574 Double_t horizontalFrameHole_ZSize = 0.6;
578 horizontalFrame_YSize * 0.5, horizontalFrame_ZSize * 0.5);
580 0.0, horizontalFrameHole_Radius, horizontalFrameHole_ZSize * 0.5);
589 if (horizontalFrameV_medium) {
590 horizontalFrameV->
SetMedium(horizontalFrameV_medium);
592 Fatal(
"Main",
"Invalid medium for horizontalFrameV!");
595 if (horizontalFrameHoleV_medium) {
596 horizontalFrameHoleV->
SetMedium(horizontalFrameHoleV_medium);
598 Fatal(
"Main",
"Invalid medium for horizontalFrameHoleV!");
608 Double_t x_pos = horizontalFrame_XSize * 0.5 - 1.6;
611 horizontalFrameHoleV_transf[
i]->
SetDx(x_pos);
612 horizontalFrameHoleV_transf[
i]->
SetDy(+0.65 );
613 horizontalFrameHoleV_transf[
i]->
SetDz(-horizontalFrame_ZSize * 0.5 + horizontalFrameHole_ZSize * 0.5
617 horizontalFrameHoleV_transf[
i + 10]->
SetDx(x_pos);
618 horizontalFrameHoleV_transf[
i + 10]->
SetDy(+0.65 );
619 horizontalFrameHoleV_transf[
i + 10]->
SetDz(
620 -(-horizontalFrame_ZSize * 0.5 + horizontalFrameHole_ZSize * 0.5 - 0.0001 ));
622 horizontalFrameV->
AddNode(horizontalFrameHoleV,
i, horizontalFrameHoleV_transf[
i]);
623 horizontalFrameV->
AddNode(horizontalFrameHoleV,
i + 10, horizontalFrameHoleV_transf[
i + 10]);
625 if (
i == 0 ||
i == 8)
635 horizontalFrameV_transf[0]->
SetDx(0.0);
636 horizontalFrameV_transf[0]->
SetDy(+(
YGasSize * 0.5 + horizontalFrame_YSize * 0.5));
637 horizontalFrameV_transf[0]->
SetDz(0.0);
639 frameA->
AddNode(horizontalFrameV, 0, horizontalFrameV_transf[0]);
645 Double_t fiberGlassPanel_ZSize = 0.1;
646 Double_t fiberGlassPanel_HoleRadius = 1.75;
650 Double_t honeyCombPanel_ZSize = 1.05;
651 Double_t honeyCombPanel_HoleRadius = 1.75;
657 (fiberGlassPanel_YSize - fiberGlassPanel_HoleRadius) * 0.5, fiberGlassPanel_ZSize * 0.5);
660 (fiberGlassPanel_XSize * 0.5 - fiberGlassPanel_HoleRadius) * 0.5, fiberGlassPanel_HoleRadius * 0.5,
661 fiberGlassPanel_ZSize * 0.5);
665 fiberGlassPanelBigPart_pos->
SetDx(0.0);
666 fiberGlassPanelBigPart_pos->
SetDy(+fiberGlassPanel_HoleRadius * 0.5 + 0.0001);
667 fiberGlassPanelBigPart_pos->
SetDz(0.0);
671 fiberGlassPanelSmallPart_pos1->
SetName(
TString(
"fiberGlassPanelSmallPart_pos1") +=
673 fiberGlassPanelSmallPart_pos1->
SetDx(+(fiberGlassPanel_XSize * 0.5 + fiberGlassPanel_HoleRadius) * 0.5);
674 fiberGlassPanelSmallPart_pos1->
SetDy(-(fiberGlassPanel_YSize - fiberGlassPanel_HoleRadius) * 0.5);
675 fiberGlassPanelSmallPart_pos1->
SetDz(0.0);
679 fiberGlassPanelSmallPart_pos2->
SetName(
TString(
"fiberGlassPanelSmallPart_pos2") +=
681 fiberGlassPanelSmallPart_pos2->
SetDx(-(fiberGlassPanel_XSize * 0.5 + fiberGlassPanel_HoleRadius) * 0.5);
682 fiberGlassPanelSmallPart_pos2->
SetDy(-(fiberGlassPanel_YSize - fiberGlassPanel_HoleRadius) * 0.5);
683 fiberGlassPanelSmallPart_pos2->
SetDz(0.0);
689 TString expression =
"fiberGlassPanelBigPartS";
691 expression +=
":fiberGlassPanelBigPart_pos";
693 expression +=
"+fiberGlassPanelSmallPartS";
695 expression +=
":fiberGlassPanelSmallPart_pos1";
697 expression +=
"+fiberGlassPanelSmallPartS";
699 expression +=
":fiberGlassPanelSmallPart_pos2";
702 fiberGlassPanelS->
MakeNode(expression);
710 (honeyCombPanel_YSize - honeyCombPanel_HoleRadius) * 0.5, honeyCombPanel_ZSize * 0.5);
713 (honeyCombPanel_XSize * 0.5 - honeyCombPanel_HoleRadius) * 0.5, honeyCombPanel_HoleRadius * 0.5,
714 honeyCombPanel_ZSize * 0.5);
718 honeyCombPanelBigPart_pos->
SetDx(0.0);
719 honeyCombPanelBigPart_pos->
SetDy(+honeyCombPanel_HoleRadius * 0.5 + 0.0001);
720 honeyCombPanelBigPart_pos->
SetDz(0.0);
725 honeyCombPanelSmallPart_pos1->
SetDx(+(honeyCombPanel_XSize * 0.5 + honeyCombPanel_HoleRadius) * 0.5);
726 honeyCombPanelSmallPart_pos1->
SetDy(-(honeyCombPanel_YSize - honeyCombPanel_HoleRadius) * 0.5);
727 honeyCombPanelSmallPart_pos1->
SetDz(0.0);
732 honeyCombPanelSmallPart_pos2->
SetDx(-(honeyCombPanel_XSize * 0.5 + honeyCombPanel_HoleRadius) * 0.5);
733 honeyCombPanelSmallPart_pos2->
SetDy(-(honeyCombPanel_YSize - honeyCombPanel_HoleRadius) * 0.5);
734 honeyCombPanelSmallPart_pos2->
SetDz(0.0);
740 TString expression =
"honeyCombPanelBigPartS";
742 expression +=
":honeyCombPanelBigPart_pos";
744 expression +=
"+honeyCombPanelSmallPartS";
746 expression +=
":honeyCombPanelSmallPart_pos1";
748 expression +=
"+honeyCombPanelSmallPartS";
750 expression +=
":honeyCombPanelSmallPart_pos2";
753 honeyCombPanelS->
MakeNode(expression);
764 if (fiberGlassPanelV_medium) {
765 fiberGlassPanelV->
SetMedium(fiberGlassPanelV_medium);
767 Fatal(
"Main",
"Invalid medium for fiberGlassPanelV!");
770 if (honeyCombPanelV_medium) {
771 honeyCombPanelV->
SetMedium(honeyCombPanelV_medium);
773 Fatal(
"Main",
"Invalid medium for honeyCombPanelV!");
784 fiberGlassPanelV_transf[0]->
SetDx(0.0);
785 fiberGlassPanelV_transf[0]->
SetDy(0.0);
786 fiberGlassPanelV_transf[0]->
SetDz(-(
ZGasSize * 0.5 + fiberGlassPanel_ZSize * 0.5));
789 fiberGlassPanelV_transf[1]->
SetDx(0.0);
790 fiberGlassPanelV_transf[1]->
SetDy(0.0);
791 fiberGlassPanelV_transf[1]->
SetDz(+(
ZGasSize * 0.5 + fiberGlassPanel_ZSize * 0.5));
794 fiberGlassPanelV_transf[2]->
SetDx(0.0);
795 fiberGlassPanelV_transf[2]->
SetDy(0.0);
796 fiberGlassPanelV_transf[2]->
SetDz(
797 -(
ZGasSize * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize + fiberGlassPanel_ZSize * 0.5));
800 fiberGlassPanelV_transf[3]->
SetDx(0.0);
801 fiberGlassPanelV_transf[3]->
SetDy(0.0);
802 fiberGlassPanelV_transf[3]->
SetDz(
803 +(
ZGasSize * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize + fiberGlassPanel_ZSize * 0.5));
808 honeyCombPanelV_transf[0]->
SetDx(0.0);
809 honeyCombPanelV_transf[0]->
SetDy(0.0);
810 honeyCombPanelV_transf[0]->
SetDz(-(
ZGasSize * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize * 0.5));
813 honeyCombPanelV_transf[1]->
SetDx(0.0);
814 honeyCombPanelV_transf[1]->
SetDy(0.0);
815 honeyCombPanelV_transf[1]->
SetDz(+(
ZGasSize * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize * 0.5));
817 frameA->
AddNode(fiberGlassPanelV, 0, fiberGlassPanelV_transf[0]);
818 frameA->
AddNode(fiberGlassPanelV, 1, fiberGlassPanelV_transf[1]);
819 frameA->
AddNode(fiberGlassPanelV, 2, fiberGlassPanelV_transf[2]);
820 frameA->
AddNode(fiberGlassPanelV, 3, fiberGlassPanelV_transf[3]);
822 frameA->
AddNode(honeyCombPanelV, 0, honeyCombPanelV_transf[0]);
823 frameA->
AddNode(honeyCombPanelV, 1, honeyCombPanelV_transf[1]);
827 Double_t outerSpacerPart1_Radius = 0.8 * 0.5;
828 Double_t outerSpacerPart1_ZSize = 0.4;
832 outerSpacerPart1_ZSize * 0.5, 0.0, 360.0);
836 outerSpacerPart1_pos1->
SetDx(0.0);
837 outerSpacerPart1_pos1->
SetDy(0.0);
838 outerSpacerPart1_pos1->
SetDz(-(
ZGasSize * 0.5 + outerSpacerPart1_ZSize * 0.5));
843 outerSpacerPart1_pos2->
SetDx(0.0);
844 outerSpacerPart1_pos2->
SetDy(0.0);
845 outerSpacerPart1_pos2->
SetDz(+(
ZGasSize * 0.5 + outerSpacerPart1_ZSize * 0.5));
851 TString expression =
"outerSpacerPart1S";
853 expression +=
":outerSpacerPart1_pos1";
855 expression +=
"+outerSpacerPart1S";
857 expression +=
":outerSpacerPart1_pos2";
869 if (outerSpacerV_medium) {
870 outerSpacerV->
SetMedium(outerSpacerV_medium);
872 Fatal(
"Main",
"Invalid medium for outerSpacerV!");
881 outerSpacerV_transf[0]->
SetDx(0.0);
883 outerSpacerV_transf[0]->
SetDz(0.0);
886 frameA->
AddNode(outerSpacerV, 0, outerSpacerV_transf[0]);
895 Double_t spacerBedInnerHole_Radius = 0.8 * 0.5 + 0.01;
896 Double_t spacerBedInnerHole_ZSize = 0.4;
898 Double_t spacerBedOuterHole_Radius = 2.0 * 0.5;
899 Double_t spacerBedOuterHole_ZSize = 0.85;
902 spacerBed_XSize * 0.5, spacerBed_YSize * 0.5, spacerBed_ZSize * 0.5);
904 0.0, spacerBedInnerHole_Radius, (spacerBed_ZSize + 0.01) * 0.5);
907 (spacerBedOuterHole_ZSize + 0.01) * 0.5);
911 spacerBedBlank_pos->
SetDx(0.0);
912 spacerBedBlank_pos->
SetDy(0.0);
913 spacerBedBlank_pos->
SetDz(0.0);
918 spacerBedInnerHole_pos->
SetDx(0.0);
919 spacerBedInnerHole_pos->
SetDy(0.0);
920 spacerBedInnerHole_pos->
SetDz(0.0);
925 spacerBedOuterHole_pos->
SetDx(0.0);
926 spacerBedOuterHole_pos->
SetDy(0.0);
927 spacerBedOuterHole_pos->
SetDz(-(spacerBed_ZSize * 0.5 - spacerBedOuterHole_ZSize * 0.5 + 0.01));
933 TString expression =
"spacerBedBlankS";
935 expression +=
":spacerBedBlank_pos";
937 expression +=
"-spacerBedOuterHoleS";
939 expression +=
":spacerBedOuterHole_pos";
941 expression +=
"-spacerBedInnerHoleS";
943 expression +=
":spacerBedInnerHole_pos";
954 if (spacerBedV_medium) {
955 spacerBedV->
SetMedium(spacerBedV_medium);
957 Fatal(
"Main",
"Invalid medium for spacerBedV!");
966 spacerBedV_transf[0]->
SetDx(0.0);
968 spacerBedV_transf[0]->
SetDz(-(
ZGasSize * 0.5 + spacerBed_ZSize * 0.5));
971 spacerBedV_transf[1]->
RotateY(180.0);
972 spacerBedV_transf[1]->
SetDx(0.0);
974 spacerBedV_transf[1]->
SetDz(+(
ZGasSize * 0.5 + spacerBed_ZSize * 0.5));
977 frameA->
AddNode(spacerBedV, 0, spacerBedV_transf[0]);
978 frameA->
AddNode(spacerBedV, 1, spacerBedV_transf[1]);
983 Double_t fixingPlate_Radius = 1.8 * 0.5;
987 fixingPlate_Radius, fixingPlate_ZSize * 0.5);
994 if (fixingPlateV_medium) {
995 fixingPlateV->
SetMedium(fixingPlateV_medium);
997 Fatal(
"Main",
"Invalid medium for fixingPlateV!");
1006 fixingPlateV_transf[0]->
SetDx(0.0);
1008 fixingPlateV_transf[0]->
SetDz(
1009 -(
ZGasSize * 0.5 + fixingPlate_ZSize * 0.5 + spacerBedInnerHole_ZSize + 0.005 ));
1012 fixingPlateV_transf[1]->
SetDx(0.0);
1014 fixingPlateV_transf[1]->
SetDz(
1015 +(
ZGasSize * 0.5 + fixingPlate_ZSize * 0.5 + spacerBedInnerHole_ZSize + 0.005 ));
1018 frameA->
AddNode(fixingPlateV, 0, fixingPlateV_transf[0]);
1019 frameA->
AddNode(fixingPlateV, 1, fixingPlateV_transf[1]);