446 Double_t verticalFrame_ZSize = 3.25;
448 Double_t verticalFrameHole_Radius = 1.6 * 0.5;
449 Double_t verticalFrameHole_ZSize = 0.6;
453 verticalFrame_YSize * 0.5, verticalFrame_ZSize * 0.5);
455 verticalFrameHole_Radius, verticalFrameHole_ZSize * 0.5);
464 if (verticalFrameV_medium) {
465 verticalFrameV->
SetMedium(verticalFrameV_medium);
467 Fatal(
"Main",
"Invalid medium for verticalFrameV!");
470 if (verticalFrameHoleV_medium) {
471 verticalFrameHoleV->
SetMedium(verticalFrameHoleV_medium);
473 Fatal(
"Main",
"Invalid medium for verticalFrameHoleV!");
483 Double_t y_pos = +verticalFrame_YSize * 0.5 - 9.175;
486 verticalFrameHoleV_transf[
i]->
SetDx(+0.65 );
487 verticalFrameHoleV_transf[
i]->
SetDy(y_pos);
488 verticalFrameHoleV_transf[
i]->
SetDz(-verticalFrame_ZSize * 0.5 + verticalFrameHole_ZSize * 0.5
492 verticalFrameHoleV_transf[
i + 4]->
SetDx(+0.65 );
493 verticalFrameHoleV_transf[
i + 4]->
SetDy(y_pos);
494 verticalFrameHoleV_transf[
i + 4]->
SetDz(
495 -(-verticalFrame_ZSize * 0.5 + verticalFrameHole_ZSize * 0.5 - 0.0001 ));
497 verticalFrameV->
AddNode(verticalFrameHoleV,
i, verticalFrameHoleV_transf[
i]);
498 verticalFrameV->
AddNode(verticalFrameHoleV,
i + 4, verticalFrameHoleV_transf[
i + 4]);
507 verticalFrameV_transf[0]->
SetDx(+(
XGasSize * 0.5 + verticalFrame_XSize * 0.5));
508 verticalFrameV_transf[0]->
SetDy(0.0);
509 verticalFrameV_transf[0]->
SetDz(0.0);
512 verticalFrameV_transf[1]->
ReflectX(
true);
513 verticalFrameV_transf[1]->
SetDx(-(
XGasSize * 0.5 + verticalFrame_XSize * 0.5));
514 verticalFrameV_transf[1]->
SetDy(0.0);
515 verticalFrameV_transf[1]->
SetDz(0.0);
517 frameA->
AddNode(verticalFrameV, 0, verticalFrameV_transf[0]);
518 frameA->
AddNode(verticalFrameV, 1, verticalFrameV_transf[1]);
523 Double_t horizontalFrame_YSize = 4.5;
524 Double_t horizontalFrame_ZSize = 3.25;
526 Double_t horizontalFrameHole_Radius = 1.6 * 0.5;
527 Double_t horizontalFrameHole_ZSize = 0.6;
531 horizontalFrame_YSize * 0.5, horizontalFrame_ZSize * 0.5);
533 0.0, horizontalFrameHole_Radius, horizontalFrameHole_ZSize * 0.5);
542 if (horizontalFrameV_medium) {
543 horizontalFrameV->
SetMedium(horizontalFrameV_medium);
545 Fatal(
"Main",
"Invalid medium for horizontalFrameV!");
548 if (horizontalFrameHoleV_medium) {
549 horizontalFrameHoleV->
SetMedium(horizontalFrameHoleV_medium);
551 Fatal(
"Main",
"Invalid medium for horizontalFrameHoleV!");
561 Double_t x_pos = horizontalFrame_XSize * 0.5 - 1.6;
564 horizontalFrameHoleV_transf[
i]->
SetDx(x_pos);
565 horizontalFrameHoleV_transf[
i]->
SetDy(+0.65 );
566 horizontalFrameHoleV_transf[
i]->
SetDz(-horizontalFrame_ZSize * 0.5 + horizontalFrameHole_ZSize * 0.5
570 horizontalFrameHoleV_transf[
i + 10]->
SetDx(x_pos);
571 horizontalFrameHoleV_transf[
i + 10]->
SetDy(+0.65 );
572 horizontalFrameHoleV_transf[
i + 10]->
SetDz(
573 -(-horizontalFrame_ZSize * 0.5 + horizontalFrameHole_ZSize * 0.5 - 0.0001 ));
575 horizontalFrameV->
AddNode(horizontalFrameHoleV,
i, horizontalFrameHoleV_transf[
i]);
576 horizontalFrameV->
AddNode(horizontalFrameHoleV,
i + 10, horizontalFrameHoleV_transf[
i + 10]);
578 if (
i == 0 ||
i == 8)
588 horizontalFrameV_transf[0]->
SetDx(0.0);
589 horizontalFrameV_transf[0]->
SetDy(+(
YGasSize * 0.5 + horizontalFrame_YSize * 0.5));
590 horizontalFrameV_transf[0]->
SetDz(0.0);
592 frameA->
AddNode(horizontalFrameV, 0, horizontalFrameV_transf[0]);
598 Double_t fiberGlassPanel_ZSize = 0.1;
599 Double_t fiberGlassPanel_HoleRadius = 1.75;
603 Double_t honeyCombPanel_ZSize = 1.05;
604 Double_t honeyCombPanel_HoleRadius = 1.75;
610 (fiberGlassPanel_YSize - fiberGlassPanel_HoleRadius) * 0.5, fiberGlassPanel_ZSize * 0.5);
613 (fiberGlassPanel_XSize * 0.5 - fiberGlassPanel_HoleRadius) * 0.5, fiberGlassPanel_HoleRadius * 0.5,
614 fiberGlassPanel_ZSize * 0.5);
618 fiberGlassPanelBigPart_pos->
SetDx(0.0);
619 fiberGlassPanelBigPart_pos->
SetDy(+fiberGlassPanel_HoleRadius * 0.5 + 0.0001);
620 fiberGlassPanelBigPart_pos->
SetDz(0.0);
624 fiberGlassPanelSmallPart_pos1->
SetName(
TString(
"fiberGlassPanelSmallPart_pos1") +=
626 fiberGlassPanelSmallPart_pos1->
SetDx(+(fiberGlassPanel_XSize * 0.5 + fiberGlassPanel_HoleRadius) * 0.5);
627 fiberGlassPanelSmallPart_pos1->
SetDy(-(fiberGlassPanel_YSize - fiberGlassPanel_HoleRadius) * 0.5);
628 fiberGlassPanelSmallPart_pos1->
SetDz(0.0);
632 fiberGlassPanelSmallPart_pos2->
SetName(
TString(
"fiberGlassPanelSmallPart_pos2") +=
634 fiberGlassPanelSmallPart_pos2->
SetDx(-(fiberGlassPanel_XSize * 0.5 + fiberGlassPanel_HoleRadius) * 0.5);
635 fiberGlassPanelSmallPart_pos2->
SetDy(-(fiberGlassPanel_YSize - fiberGlassPanel_HoleRadius) * 0.5);
636 fiberGlassPanelSmallPart_pos2->
SetDz(0.0);
642 TString expression =
"fiberGlassPanelBigPartS";
644 expression +=
":fiberGlassPanelBigPart_pos";
646 expression +=
"+fiberGlassPanelSmallPartS";
648 expression +=
":fiberGlassPanelSmallPart_pos1";
650 expression +=
"+fiberGlassPanelSmallPartS";
652 expression +=
":fiberGlassPanelSmallPart_pos2";
655 fiberGlassPanelS->
MakeNode(expression);
663 (honeyCombPanel_YSize - honeyCombPanel_HoleRadius) * 0.5, honeyCombPanel_ZSize * 0.5);
666 (honeyCombPanel_XSize * 0.5 - honeyCombPanel_HoleRadius) * 0.5, honeyCombPanel_HoleRadius * 0.5,
667 honeyCombPanel_ZSize * 0.5);
671 honeyCombPanelBigPart_pos->
SetDx(0.0);
672 honeyCombPanelBigPart_pos->
SetDy(+honeyCombPanel_HoleRadius * 0.5 + 0.0001);
673 honeyCombPanelBigPart_pos->
SetDz(0.0);
678 honeyCombPanelSmallPart_pos1->
SetDx(+(honeyCombPanel_XSize * 0.5 + honeyCombPanel_HoleRadius) * 0.5);
679 honeyCombPanelSmallPart_pos1->
SetDy(-(honeyCombPanel_YSize - honeyCombPanel_HoleRadius) * 0.5);
680 honeyCombPanelSmallPart_pos1->
SetDz(0.0);
685 honeyCombPanelSmallPart_pos2->
SetDx(-(honeyCombPanel_XSize * 0.5 + honeyCombPanel_HoleRadius) * 0.5);
686 honeyCombPanelSmallPart_pos2->
SetDy(-(honeyCombPanel_YSize - honeyCombPanel_HoleRadius) * 0.5);
687 honeyCombPanelSmallPart_pos2->
SetDz(0.0);
693 TString expression =
"honeyCombPanelBigPartS";
695 expression +=
":honeyCombPanelBigPart_pos";
697 expression +=
"+honeyCombPanelSmallPartS";
699 expression +=
":honeyCombPanelSmallPart_pos1";
701 expression +=
"+honeyCombPanelSmallPartS";
703 expression +=
":honeyCombPanelSmallPart_pos2";
706 honeyCombPanelS->
MakeNode(expression);
717 if (fiberGlassPanelV_medium) {
718 fiberGlassPanelV->
SetMedium(fiberGlassPanelV_medium);
720 Fatal(
"Main",
"Invalid medium for fiberGlassPanelV!");
723 if (honeyCombPanelV_medium) {
724 honeyCombPanelV->
SetMedium(honeyCombPanelV_medium);
726 Fatal(
"Main",
"Invalid medium for honeyCombPanelV!");
737 fiberGlassPanelV_transf[0]->
SetDx(0.0);
738 fiberGlassPanelV_transf[0]->
SetDy(0.0);
739 fiberGlassPanelV_transf[0]->
SetDz(-(
ZGasSize * 0.5 + fiberGlassPanel_ZSize * 0.5));
742 fiberGlassPanelV_transf[1]->
SetDx(0.0);
743 fiberGlassPanelV_transf[1]->
SetDy(0.0);
744 fiberGlassPanelV_transf[1]->
SetDz(+(
ZGasSize * 0.5 + fiberGlassPanel_ZSize * 0.5));
747 fiberGlassPanelV_transf[2]->
SetDx(0.0);
748 fiberGlassPanelV_transf[2]->
SetDy(0.0);
749 fiberGlassPanelV_transf[2]->
SetDz(
750 -(
ZGasSize * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize + fiberGlassPanel_ZSize * 0.5));
753 fiberGlassPanelV_transf[3]->
SetDx(0.0);
754 fiberGlassPanelV_transf[3]->
SetDy(0.0);
755 fiberGlassPanelV_transf[3]->
SetDz(
756 +(
ZGasSize * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize + fiberGlassPanel_ZSize * 0.5));
761 honeyCombPanelV_transf[0]->
SetDx(0.0);
762 honeyCombPanelV_transf[0]->
SetDy(0.0);
763 honeyCombPanelV_transf[0]->
SetDz(-(
ZGasSize * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize * 0.5));
766 honeyCombPanelV_transf[1]->
SetDx(0.0);
767 honeyCombPanelV_transf[1]->
SetDy(0.0);
768 honeyCombPanelV_transf[1]->
SetDz(+(
ZGasSize * 0.5 + fiberGlassPanel_ZSize + honeyCombPanel_ZSize * 0.5));
770 frameA->
AddNode(fiberGlassPanelV, 0, fiberGlassPanelV_transf[0]);
771 frameA->
AddNode(fiberGlassPanelV, 1, fiberGlassPanelV_transf[1]);
772 frameA->
AddNode(fiberGlassPanelV, 2, fiberGlassPanelV_transf[2]);
773 frameA->
AddNode(fiberGlassPanelV, 3, fiberGlassPanelV_transf[3]);
775 frameA->
AddNode(honeyCombPanelV, 0, honeyCombPanelV_transf[0]);
776 frameA->
AddNode(honeyCombPanelV, 1, honeyCombPanelV_transf[1]);
780 Double_t outerSpacerPart1_Radius = 0.8 * 0.5;
781 Double_t outerSpacerPart1_ZSize = 0.4;
785 outerSpacerPart1_ZSize * 0.5, 0.0, 360.0);
789 outerSpacerPart1_pos1->
SetDx(0.0);
790 outerSpacerPart1_pos1->
SetDy(0.0);
791 outerSpacerPart1_pos1->
SetDz(-(
ZGasSize * 0.5 + outerSpacerPart1_ZSize * 0.5));
796 outerSpacerPart1_pos2->
SetDx(0.0);
797 outerSpacerPart1_pos2->
SetDy(0.0);
798 outerSpacerPart1_pos2->
SetDz(+(
ZGasSize * 0.5 + outerSpacerPart1_ZSize * 0.5));
804 TString expression =
"outerSpacerPart1S";
806 expression +=
":outerSpacerPart1_pos1";
808 expression +=
"+outerSpacerPart1S";
810 expression +=
":outerSpacerPart1_pos2";
822 if (outerSpacerV_medium) {
823 outerSpacerV->
SetMedium(outerSpacerV_medium);
825 Fatal(
"Main",
"Invalid medium for outerSpacerV!");
834 outerSpacerV_transf[0]->
SetDx(0.0);
836 outerSpacerV_transf[0]->
SetDz(0.0);
839 frameA->
AddNode(outerSpacerV, 0, outerSpacerV_transf[0]);
848 Double_t spacerBedInnerHole_Radius = 0.8 * 0.5 + 0.01;
849 Double_t spacerBedInnerHole_ZSize = 0.4;
851 Double_t spacerBedOuterHole_Radius = 2.0 * 0.5;
852 Double_t spacerBedOuterHole_ZSize = 0.85;
855 spacerBed_XSize * 0.5, spacerBed_YSize * 0.5, spacerBed_ZSize * 0.5);
857 0.0, spacerBedInnerHole_Radius, (spacerBed_ZSize + 0.01) * 0.5);
860 (spacerBedOuterHole_ZSize + 0.01) * 0.5);
864 spacerBedBlank_pos->
SetDx(0.0);
865 spacerBedBlank_pos->
SetDy(0.0);
866 spacerBedBlank_pos->
SetDz(0.0);
871 spacerBedInnerHole_pos->
SetDx(0.0);
872 spacerBedInnerHole_pos->
SetDy(0.0);
873 spacerBedInnerHole_pos->
SetDz(0.0);
878 spacerBedOuterHole_pos->
SetDx(0.0);
879 spacerBedOuterHole_pos->
SetDy(0.0);
880 spacerBedOuterHole_pos->
SetDz(-(spacerBed_ZSize * 0.5 - spacerBedOuterHole_ZSize * 0.5 + 0.01));
886 TString expression =
"spacerBedBlankS";
888 expression +=
":spacerBedBlank_pos";
890 expression +=
"-spacerBedOuterHoleS";
892 expression +=
":spacerBedOuterHole_pos";
894 expression +=
"-spacerBedInnerHoleS";
896 expression +=
":spacerBedInnerHole_pos";
907 if (spacerBedV_medium) {
908 spacerBedV->
SetMedium(spacerBedV_medium);
910 Fatal(
"Main",
"Invalid medium for spacerBedV!");
919 spacerBedV_transf[0]->
SetDx(0.0);
921 spacerBedV_transf[0]->
SetDz(-(
ZGasSize * 0.5 + spacerBed_ZSize * 0.5));
924 spacerBedV_transf[1]->
RotateY(180.0);
925 spacerBedV_transf[1]->
SetDx(0.0);
927 spacerBedV_transf[1]->
SetDz(+(
ZGasSize * 0.5 + spacerBed_ZSize * 0.5));
930 frameA->
AddNode(spacerBedV, 0, spacerBedV_transf[0]);
931 frameA->
AddNode(spacerBedV, 1, spacerBedV_transf[1]);
936 Double_t fixingPlate_Radius = 1.8 * 0.5;
940 fixingPlate_Radius, fixingPlate_ZSize * 0.5);
947 if (fixingPlateV_medium) {
948 fixingPlateV->
SetMedium(fixingPlateV_medium);
950 Fatal(
"Main",
"Invalid medium for fixingPlateV!");
959 fixingPlateV_transf[0]->
SetDx(0.0);
961 fixingPlateV_transf[0]->
SetDz(
962 -(
ZGasSize * 0.5 + fixingPlate_ZSize * 0.5 + spacerBedInnerHole_ZSize + 0.005 ));
965 fixingPlateV_transf[1]->
SetDx(0.0);
967 fixingPlateV_transf[1]->
SetDz(
968 +(
ZGasSize * 0.5 + fixingPlate_ZSize * 0.5 + spacerBedInnerHole_ZSize + 0.005 ));
971 frameA->
AddNode(fixingPlateV, 0, fixingPlateV_transf[0]);
972 frameA->
AddNode(fixingPlateV, 1, fixingPlateV_transf[1]);