48 TGeoVolume* vALIC = gGeoManager->GetVolume(
"barrel");
50 LOG(fatal) <<
"Could not find the top volume";
54 << Form(
"gGeoManager name is %s title is %s", gGeoManager->GetName(), gGeoManager->GetTitle());
58 for (
int iHalf = 0; iHalf < 2; iHalf++) {
66 if (!mftBaseParam.minimal && mftBaseParam.buildPSU) {
68 TGeoVolumeAssembly* mHalfPSU = mPSU->create();
69 TGeoTranslation* t_PSU =
new TGeoTranslation(
"t_PSU", 0, 0.0, -72.6);
70 t_PSU->RegisterYourself();
71 auto* r_PSU =
new TGeoRotation(
"rotation_PSU", 0.0, 0.0, 180.0);
72 auto* p_PSU =
new TGeoCombiTrans(*t_PSU, *r_PSU);
73 volMFT->AddNode(mHalfPSU, 1, t_PSU);
74 volMFT->AddNode(mHalfPSU, 2, p_PSU);
77 if (!mftBaseParam.minimal && mftBaseParam.buildCone) {
79 TGeoVolumeAssembly* halfCone1 = halfCone->createHalfCone(0);
80 TGeoVolumeAssembly* halfCone2 = halfCone->createHalfCone(1);
81 volMFT->AddNode(halfCone1, 1);
82 volMFT->AddNode(halfCone2, 1);
85 if (!mftBaseParam.minimal && mftBaseParam.buildBarrel) {
87 auto* t_barrel0 =
new TGeoTranslation(
"translation_barrel", 0.0, 0.0, -80.17);
88 auto* r_barrel0 =
new TGeoRotation(
"rotation_barrel", 0.0, 0.0, 0.0);
89 auto* p_barrel0 =
new TGeoCombiTrans(*t_barrel0, *r_barrel0);
90 auto* t_barrel1 =
new TGeoTranslation(
"translation_barrel", 0.0, 0.0, -80.17);
91 auto* r_barrel1 =
new TGeoRotation(
"rotation_barrel", 0.0, 0.0, 180.0);
92 auto* p_barrel1 =
new TGeoCombiTrans(*t_barrel1, *r_barrel1);
94 auto* halfBarrel =
new Barrel();
95 TGeoVolumeAssembly* halfBarrel0 = halfBarrel->createBarrel();
96 volMFT->AddNode(halfBarrel0, 1, p_barrel0);
97 TGeoVolumeAssembly* halfBarrel1 = halfBarrel->createBarrel();
98 volMFT->AddNode(halfBarrel1, 1, p_barrel1);
101 if (!mftBaseParam.minimal && mftBaseParam.buildPatchPanel) {
102 auto* t_patchpanel0 =
new TGeoTranslation(
"translation_patchpanel", 0.0, 0., -81.5);
103 auto* r_patchpanel0 =
new TGeoRotation(
"rotation_patchpanel", 0.0, 0.0, 0.0);
104 auto* p_patchpanel0 =
new TGeoCombiTrans(*t_patchpanel0, *r_patchpanel0);
105 auto* t_patchpanel1 =
new TGeoTranslation(
"translation_patchpanel", 0.0, 0., -81.5);
106 auto* r_patchpanel1 =
new TGeoRotation(
"rotation_patchpanel", 0.0, 0.0, 180.0);
107 auto* p_patchpanel1 =
new TGeoCombiTrans(*t_patchpanel1, *r_patchpanel1);
110 TGeoVolumeAssembly* halfpatchpanel0 = halfpatchpanel->createPatchPanel();
111 TGeoVolumeAssembly* halfpatchpanel1 = halfpatchpanel->createPatchPanel();
112 volMFT->AddNode(halfpatchpanel0, 1, p_patchpanel0);
113 volMFT->AddNode(halfpatchpanel1, 1, p_patchpanel1);
116 vALIC->AddNode(volMFT, 0,
new TGeoTranslation(0., 30., 0.));