37 auto* BarrelVolume =
new TGeoVolumeAssembly(
"BarrelVolume");
40 TGeoMedium* kMeAl = gGeoManager->GetMedium(
"MFT_Alu$");
41 TGeoMedium* mCu = gGeoManager->GetMedium(
"MFT_Cu$");
42 TGeoMedium* mCarbon = gGeoManager->GetMedium(
"MFT_CarbonFiberM46J$");
43 TGeoMedium* mRohacell = gGeoManager->GetMedium(
"MFT_Rohacell$");
44 TGeoMedium* mKapton = gGeoManager->GetMedium(
"MFT_Kapton$");
45 TGeoMedium* mWater = gGeoManager->GetMedium(
"MFT_Water$");
46 TGeoMedium* mAir = gGeoManager->GetMedium(
"MFT_Air$");
47 TGeoMedium* mPolypropylene = gGeoManager->GetMedium(
"MFT_Polypropylene$");
48 TGeoMedium* mPolyurethane = gGeoManager->GetMedium(
"MFT_Polyurethane$");
49 TGeoMedium* mPolyimide = gGeoManager->GetMedium(
"MFT_Polyimide$");
50 Double_t angle_open = 26.5;
51 const Float_t kDegRad = TMath::Pi() / 180.;
52 Double_t angle_open_rad = 26.5 * kDegRad;
54 Double_t rout = 50.30;
55 Double_t no_overlap = 0.5;
56 Double_t shift_y = 0.4;
58 TGeoVolume* BarrelJoint0 = gGeoManager->MakeTubs(
"Barrel_joint0", kMeAl, rin - 0.25, rin, 1.05, 180 + (angle_open + no_overlap), 360 - (angle_open + no_overlap));
59 TGeoVolume* BarrelJoint1 = gGeoManager->MakeTubs(
"Barrel_joint1", kMeAl, rin, rin + 0.45, 0.525, 180 + (angle_open + no_overlap), 360 - (angle_open + no_overlap));
60 TGeoVolume* BoxJoint0 = gGeoManager->MakeBox(
"BoxJoint0", kMeAl, 0.2375, 2.750, 0.5125);
61 TGeoVolume* BoxJoint1 = gGeoManager->MakeBox(
"BoxJoint1", kMeAl, 0.75, 2.750, 0.5125);
63 TGeoVolume* BarrelTube0 =
64 gGeoManager->MakeTubs(
"Barrel_Cylinder0", mCarbon, rin, rout, 20.325, 180 + (angle_open + no_overlap), 360 - (angle_open + no_overlap));
65 TGeoVolume* BarrelTube1 =
66 gGeoManager->MakeTubs(
"Barrel_Cylinder1", mCarbon, rin, rout, 61.00, 180 + (angle_open + no_overlap), 360 - (angle_open + no_overlap));
69 TGeoVolume* barrel_rail0 = gGeoManager->MakeBox(
"RailBox0", mCarbon, 0.5, 0.45, 19.20);
70 TGeoVolume* cylrail = gGeoManager->MakeTubs(
"cylrail0", mCarbon, 0, .20, 19.20, 0, 180);
71 TGeoVolume* barrel_rail1 = gGeoManager->MakeBox(
"RailBox1", mCarbon, 0.2, .45, 19.20);
72 TGeoCompositeShape* com_rail1;
73 TGeoTranslation* transcyl =
new TGeoTranslation(0, 0.45, 0);
74 transcyl->SetName(
"transcyl");
75 transcyl->RegisterYourself();
78 new TGeoCompositeShape(
"Composite_rail1",
"RailBox1 + cylrail0:transcyl");
79 TGeoVolume* comp_volrail0 =
new TGeoVolume(
"Comp_rail0_vol", com_rail1, mCarbon);
80 TGeoVolume* BoxCavity0 = gGeoManager->MakeBox(
"BoxCavity0", mCarbon, 0.50, 2.50, 19.20);
81 TGeoVolume* BoxCavity1 = gGeoManager->MakeBox(
"BoxCavity1", mCarbon, 0.40, 2.30, 19.20);
82 TGeoVolume* BoxCavity2 = gGeoManager->MakeBox(
"BoxCavity2", mCarbon, 0.50, 0.10, 19.20);
83 TGeoVolume* Joincyl0 = gGeoManager->MakeTubs(
"Joincyl0", mCarbon, 0.7500, 0.95, 19.20, 105.4660, 180);
84 TGeoVolume* Joincyl1 = gGeoManager->MakeTubs(
"Joincyl1", mCarbon, 10.000, 10.20, 19.20, 0.0, 5.1);
85 TGeoCompositeShape* com_box0;
86 TGeoTranslation* cstr =
new TGeoTranslation(0, -2.40, 0);
87 TGeoTranslation* jcyl0 =
new TGeoTranslation(0.7, -3.25, 0);
88 TGeoTranslation* jcyl1 =
new TGeoTranslation(-10.50, -3.25, 0);
89 cstr->SetName(
"cstr");
90 jcyl0->SetName(
"jcyltr0");
91 jcyl1->SetName(
"jcyltr1");
92 cstr->RegisterYourself();
93 jcyl0->RegisterYourself();
94 jcyl1->RegisterYourself();
95 com_box0 =
new TGeoCompositeShape(
"CompBox",
"BoxCavity0 - BoxCavity1 - BoxCavity2:cstr + Joincyl0:jcyltr0 + Joincyl1:jcyltr1");
97 TGeoVolume* comp_volBox =
new TGeoVolume(
"Comp_Box_Vol0", com_box0, mCarbon);
99 TGeoRotation rotrail0;
100 TGeoRotation rotrail1;
101 rotrail0.SetAngles(-127.7, 0, 0);
102 rotrail1.SetAngles(127.7, 0, 0);
104 Double_t rin_shift = rin - 0.9;
105 Double_t xcr = rin_shift * TMath::Sin(127.7 * kDegRad);
106 Double_t ycr = rin_shift * TMath::Cos(127.7 * kDegRad);
107 TGeoTranslation transrail0(-xcr, -ycr, 20.350);
108 TGeoTranslation transrail1(xcr, -ycr, 20.350);
109 TGeoCombiTrans Combirail0(transrail0, rotrail0);
110 TGeoCombiTrans Combirail1(transrail1, rotrail1);
111 TGeoHMatrix* pos_rail0 =
new TGeoHMatrix(Combirail0);
112 TGeoHMatrix* pos_rail1 =
new TGeoHMatrix(Combirail1);
114 TGeoRotation rotrail2;
115 TGeoRotation rotrail3;
116 rotrail2.SetAngles(-61.28, 0, 0);
117 rotrail3.SetAngles(61.28, 0, 0);
118 Double_t xrail_2_3 = rin_shift * TMath::Sin(61.28 * kDegRad);
119 Double_t yrail_2_3 = rin_shift * TMath::Cos(61.28 * kDegRad);
121 TGeoTranslation transrail2(-xrail_2_3, -yrail_2_3, 20.350);
122 TGeoTranslation transrail3(xrail_2_3, -yrail_2_3, 20.350);
124 TGeoCombiTrans Combirail2(transrail2, rotrail2);
125 TGeoCombiTrans Combirail3(transrail3, rotrail3);
126 TGeoHMatrix* pos_rail2 =
new TGeoHMatrix(Combirail2);
127 TGeoHMatrix* pos_rail3 =
new TGeoHMatrix(Combirail3);
129 TGeoRotation rotrail4;
130 TGeoRotation rotrail5;
131 rotrail4.SetAngles(-43.32, 0, 0);
132 rotrail5.SetAngles(43.32, 0, 0);
133 Double_t xrail_4_5 = rin_shift * TMath::Sin(43.32 * kDegRad);
134 Double_t yrail_4_5 = rin_shift * TMath::Cos(43.32 * kDegRad);
136 TGeoTranslation transrail4(-xrail_4_5, -yrail_4_5, 20.350);
137 TGeoTranslation transrail5(xrail_4_5, -yrail_4_5, 20.350);
138 TGeoCombiTrans Combirail4(transrail4, rotrail4);
139 TGeoCombiTrans Combirail5(transrail5, rotrail5);
140 TGeoHMatrix* pos_rail4 =
new TGeoHMatrix(Combirail4);
141 TGeoHMatrix* pos_rail5 =
new TGeoHMatrix(Combirail5);
144 TGeoRotation rotbox0;
145 rotbox0.SetAngles(180, 180, 0);
146 TGeoTranslation transbox0(-45.30, -19.85 + shift_y, 20.35);
147 TGeoCombiTrans Combibox0(transbox0, rotbox0);
148 TGeoHMatrix* pos_box0 =
new TGeoHMatrix(Combibox0);
152 TGeoVolume* barrel_rail02 = gGeoManager->MakeBox(
"RailBox02", mCarbon, 0.5, 0.45, 60.4750);
153 TGeoVolume* cylrail2 = gGeoManager->MakeTubs(
"cylrail2", mCarbon, 0, 0.20, 60.4750, 0, 180);
154 TGeoVolume* barrel_rail12 = gGeoManager->MakeBox(
"RailBox12", mCarbon, 0.2, 0.45, 60.4750);
155 TGeoCompositeShape* com_rail12;
156 TGeoTranslation* transcyl2 =
new TGeoTranslation(0, 0.45, 0);
157 transcyl2->SetName(
"transcyl2");
158 transcyl2->RegisterYourself();
159 com_rail12 =
new TGeoCompositeShape(
"Composite_rail1",
"RailBox12 + cylrail2:transcyl2");
160 TGeoVolume* comp_volrail02 =
new TGeoVolume(
"Comp_rail0_vol2", com_rail12, mCarbon);
161 TGeoVolume* BoxCavity02 = gGeoManager->MakeBox(
"BoxCavity02", mCarbon, 0.50, 2.50, 60.4750);
162 TGeoVolume* BoxCavity12 = gGeoManager->MakeBox(
"BoxCavity12", mCarbon, 0.40, 2.30, 60.4750);
163 TGeoVolume* BoxCavity22 = gGeoManager->MakeBox(
"BoxCavity22", mCarbon, 0.50, 0.10, 60.4750);
164 TGeoVolume* Joincyl02 = gGeoManager->MakeTubs(
"Joincyl02", mCarbon, 0.7500, 0.95, 60.4750, 105.4660, 180);
165 TGeoVolume* Joincyl12 = gGeoManager->MakeTubs(
"Joincyl12", mCarbon, 10.000, 10.20, 60.4750, 0.0, 5.1);
166 TGeoCompositeShape* com_box02;
167 TGeoTranslation* cstr2 =
new TGeoTranslation(0, -2.40, 0);
168 TGeoTranslation* jcyl02 =
new TGeoTranslation(0.7, -3.25, 0);
169 TGeoTranslation* jcyl12 =
new TGeoTranslation(-10.50, -3.25, 0);
170 cstr2->SetName(
"cstr2");
171 jcyl02->SetName(
"jcyltr02");
172 jcyl12->SetName(
"jcyltr12");
173 cstr2->RegisterYourself();
174 jcyl02->RegisterYourself();
175 jcyl12->RegisterYourself();
176 com_box02 =
new TGeoCompositeShape(
"CompBox2",
"BoxCavity02 - BoxCavity12 - BoxCavity22:cstr2 + Joincyl02:jcyltr02 + Joincyl12:jcyltr12");
178 TGeoVolume* comp_volBox2 =
new TGeoVolume(
"Comp_Box_Vol02", com_box02, mCarbon);
179 TGeoRotation rotrail02;
180 TGeoRotation rotrail12;
181 rotrail02.SetAngles(-127.7, 0, 0);
182 rotrail12.SetAngles(127.7, 0, 0);
184 TGeoTranslation transrail02(-xcr, -ycr, 104.425);
185 TGeoTranslation transrail12(xcr, -ycr, 104.425);
186 TGeoCombiTrans Combirail02(transrail02, rotrail02);
187 TGeoCombiTrans Combirail12(transrail12, rotrail12);
188 TGeoHMatrix* pos_rail02 =
new TGeoHMatrix(Combirail02);
189 TGeoHMatrix* pos_rail12 =
new TGeoHMatrix(Combirail12);
191 TGeoRotation rotrail22;
192 TGeoRotation rotrail32;
193 rotrail22.SetAngles(-4.62, 0, 0);
194 rotrail32.SetAngles(4.62, 0, 0);
196 TGeoTranslation transrail22(-rin_shift * TMath::Cos(28.76 * kDegRad), -rin_shift * TMath::Sin(28.76 * kDegRad), 104.425);
197 TGeoTranslation transrail32(rin_shift * TMath::Cos(28.76 * kDegRad), -rin_shift * TMath::Sin(28.76 * kDegRad), 104.425);
198 TGeoCombiTrans Combirail22(transrail22, rotrail2);
199 TGeoCombiTrans Combirail32(transrail32, rotrail3);
200 TGeoHMatrix* pos_rail22 =
new TGeoHMatrix(Combirail22);
201 TGeoHMatrix* pos_rail32 =
new TGeoHMatrix(Combirail32);
203 TGeoRotation rotrail42;
204 TGeoRotation rotrail52;
205 rotrail42.SetAngles(-46.3, 0, 0);
206 rotrail52.SetAngles(46.3, 0, 0);
208 TGeoTranslation transrail42(-xrail_4_5, -yrail_4_5, 104.425);
209 TGeoTranslation transrail52(xrail_4_5, -yrail_4_5, 104.425);
210 TGeoCombiTrans Combirail42(transrail42, rotrail42);
211 TGeoCombiTrans Combirail52(transrail52, rotrail52);
212 TGeoHMatrix* pos_rail42 =
new TGeoHMatrix(Combirail42);
213 TGeoHMatrix* pos_rail52 =
new TGeoHMatrix(Combirail52);
216 TGeoRotation rotbox02;
217 rotbox02.SetAngles(180, 180, 0);
218 TGeoTranslation transbox02(-45.30, -19.85 + shift_y, 104.425);
219 TGeoCombiTrans Combibox02(transbox02, rotbox02);
220 TGeoHMatrix* pos_box02 =
new TGeoHMatrix(Combibox02);
222 TGeoVolume* SideRail0 = gGeoManager->MakeBox(
"siderail0", kMeAl, 0.4, 2.5, 23.975);
223 TGeoVolume* SideRail1 = gGeoManager->MakeBox(
"siderail1", kMeAl, 0.4, 2.5, 61.525);
226 TGeoVolume* BarrelPipes = gGeoManager->MakeTube(
"Barrel_Pipes", mPolyurethane, 0.3, 0.4, 82.375);
227 TGeoVolume* WPipes3mm = gGeoManager->MakeTube(
"Barrel_PipesFill3mm", mWater, 0.0, 0.3, 82.375);
228 BarrelPipes->SetLineColor(kBlue);
230 TGeoVolume* ConePipes = gGeoManager->MakeTube(
"Cone_Pipes", kMeAl, 0.3, 0.4, 82.25);
231 TGeoVolume* PipeBox0 = gGeoManager->MakeBox(
"PipeBoxOut", mPolyurethane, 1.75, 0.45, 82.375);
232 TGeoVolume* PipeBox1 = gGeoManager->MakeBox(
"PipeBoxInn", mPolyurethane, 1.65, 0.35, 82.375);
233 TGeoVolume* PipeBoxFill = gGeoManager->MakeBox(
"PipeBoxFill", mAir, 1.65, 0.35, 82.375);
234 TGeoCompositeShape* ParallelPipeBox =
new TGeoCompositeShape(
"ParallelPipeBox",
"PipeBoxOut - PipeBoxInn");
235 TGeoVolume* PipeBox =
new TGeoVolume(
"PipeBox", ParallelPipeBox, mPolyurethane);
236 PipeBox->SetLineColor(kWhite);
238 TGeoRotation rotpipe0;
239 rotpipe0.SetAngles(-46.0, 0, 0);
241 Double_t xpipe = rin_shift * TMath::Sin(46 * kDegRad);
242 Double_t ypipe = rin_shift * TMath::Cos(46 * kDegRad);
244 TGeoTranslation transpipe0(-xpipe, -ypipe, 82.375);
245 TGeoCombiTrans Combipipe0(transpipe0, rotpipe0);
246 TGeoHMatrix* pos_pipe0 =
new TGeoHMatrix(Combipipe0);
248 TGeoRotation rotpiper;
249 rotpiper.SetAngles(46.0, 0, 0);
250 TGeoTranslation transpipe2(xpipe, -ypipe, 82.375);
251 TGeoCombiTrans Combipipe2(transpipe2, rotpiper);
252 TGeoHMatrix* pos_pipe2 =
new TGeoHMatrix(Combipipe2);
254 Double_t xboxjoint = rin * TMath::Cos(angle_open_rad);
255 Double_t yboxjoint = rin * TMath::Sin(angle_open_rad);
257 BarrelJoint0->SetLineColor(kRed - 9);
258 BarrelVolume->AddNode(BarrelJoint0, 1);
259 BarrelVolume->AddNode(BarrelJoint1, 1,
new TGeoTranslation(0.0, 0.0, -0.525));
260 BarrelVolume->AddNode(BoxJoint0, 1,
new TGeoTranslation(xboxjoint, -yboxjoint + 2.75 + shift_y, 0.525));
261 BarrelVolume->AddNode(BoxJoint1, 2,
new TGeoTranslation(xboxjoint + 0.75 / 2, -yboxjoint + 2.75 + shift_y, -0.535));
262 BarrelVolume->AddNode(BoxJoint0, 1,
new TGeoTranslation(-xboxjoint, -yboxjoint + 2.75 + shift_y, 0.525));
263 BarrelVolume->AddNode(BoxJoint1, 2,
new TGeoTranslation(-xboxjoint - 0.75 / 2, -yboxjoint + 2.75 + shift_y, -0.525),
"");
264 BarrelVolume->AddNode(BarrelTube0, 1,
new TGeoTranslation(0.0, 0.0, 20.325));
265 BarrelVolume->AddNode(BarrelJoint0, 1,
new TGeoTranslation(0.0, 0.0, 40.65));
266 BarrelVolume->AddNode(BarrelJoint1, 1,
new TGeoTranslation(0.0, 0.0, 41.1875));
267 BarrelVolume->AddNode(BoxJoint0, 1,
new TGeoTranslation(xboxjoint, -yboxjoint + 2.75 + shift_y, 40.125));
268 BarrelVolume->AddNode(BoxJoint1, 1,
new TGeoTranslation(xboxjoint + 0.75 / 2, -yboxjoint + 2.75 + shift_y, 41.1875),
"");
269 BarrelVolume->AddNode(BoxJoint0, 1,
new TGeoTranslation(-xboxjoint, -yboxjoint + 2.75 + shift_y, 40.125));
270 BarrelVolume->AddNode(BoxJoint1, 2,
new TGeoTranslation(-xboxjoint - 0.75 / 2, -yboxjoint + 2.75 + shift_y, 41.1875),
"");
272 BarrelVolume->AddNode(barrel_rail0, 2, pos_rail0);
273 BarrelVolume->AddNode(barrel_rail0, 2, pos_rail1);
275 BarrelVolume->AddNode(comp_volrail0, 2, pos_rail2);
276 BarrelVolume->AddNode(comp_volrail0, 2, pos_rail3);
278 BarrelVolume->AddNode(comp_volrail0, 2, pos_rail4);
279 BarrelVolume->AddNode(comp_volrail0, 2, pos_rail5);
281 BarrelVolume->AddNode(comp_volBox, 2, pos_box0);
283 BarrelVolume->AddNode(comp_volBox, 2,
new TGeoTranslation(45.30, -19.84 + shift_y, 20.35));
286 BarrelVolume->AddNode(SideRail0, 1,
new TGeoTranslation(46.200001, -20.0 + shift_y, 17.775));
287 BarrelVolume->AddNode(SideRail0, 1,
new TGeoTranslation(-46.200001, -20.0 + shift_y, 17.775));
290 BarrelVolume->AddNode(BarrelJoint0, 1,
new TGeoTranslation(0.0, 0.0, 42.80));
291 BarrelVolume->AddNode(BarrelJoint1, 1,
new TGeoTranslation(0.0, 0.0, 42.250));
292 BarrelVolume->AddNode(BoxJoint0, 1,
new TGeoTranslation(xboxjoint, -yboxjoint + 2.75 + shift_y, 43.325));
293 BarrelVolume->AddNode(BoxJoint1, 2,
new TGeoTranslation(xboxjoint + 0.75 / 2, -yboxjoint + 2.75 + shift_y, 42.275));
294 BarrelVolume->AddNode(BoxJoint0, 1,
new TGeoTranslation(-xboxjoint, -yboxjoint + 2.75 + shift_y, 43.325));
295 BarrelVolume->AddNode(BoxJoint1, 2,
new TGeoTranslation(-xboxjoint + 0.75 / 2, -yboxjoint + 2.75 + shift_y, 42.275));
296 BarrelVolume->AddNode(BarrelTube1, 1,
new TGeoTranslation(0.0, 0.0, 103.8));
299 BarrelVolume->AddNode(barrel_rail02, 2, pos_rail02);
300 BarrelVolume->AddNode(barrel_rail02, 2, pos_rail12);
302 BarrelVolume->AddNode(comp_volrail02, 2, pos_rail22);
303 BarrelVolume->AddNode(comp_volrail02, 2, pos_rail32);
305 BarrelVolume->AddNode(comp_volrail02, 2, pos_rail42);
306 BarrelVolume->AddNode(comp_volrail02, 2, pos_rail52);
308 BarrelVolume->AddNode(comp_volBox2, 2, pos_box02);
309 BarrelVolume->AddNode(comp_volBox2, 2,
new TGeoTranslation(45.30, -19.84 + shift_y, 104.325));
312 BarrelVolume->AddNode(SideRail1, 1,
new TGeoTranslation(46.200001, -20.0 + shift_y, 103.375));
313 BarrelVolume->AddNode(SideRail1, 1,
new TGeoTranslation(-46.200001, -20.0 + shift_y, 103.375));
317 BarrelVolume->AddNode(BarrelPipes, 1,
new TGeoTranslation(-rin_shift * TMath::Cos(29.55 * kDegRad), -rin_shift * TMath::Sin(29.55 * kDegRad), 82.375));
318 BarrelVolume->AddNode(BarrelPipes, 1,
new TGeoTranslation(-rin_shift * TMath::Cos(30.62 * kDegRad), -rin_shift * TMath::Sin(30.62 * kDegRad), 82.375));
319 BarrelVolume->AddNode(BarrelPipes, 1,
new TGeoTranslation(-rin_shift * TMath::Cos(31.68 * kDegRad), -rin_shift * TMath::Sin(31.68 * kDegRad), 82.375));
320 BarrelVolume->AddNode(BarrelPipes, 1,
new TGeoTranslation(-rin_shift * TMath::Cos(33.06 * kDegRad) + 0.1, -rin_shift * TMath::Sin(33.06 * kDegRad) + 0.1, 82.375));
321 BarrelVolume->AddNode(BarrelPipes, 1,
new TGeoTranslation(-rin_shift * TMath::Cos(34.70 * kDegRad) + 0.1, -rin_shift * TMath::Sin(34.70 * kDegRad) + 0.1, 82.375));
322 BarrelVolume->AddNode(BarrelPipes, 1,
new TGeoTranslation(-rin_shift * TMath::Cos(36.34 * kDegRad) + 0.1, -rin_shift * TMath::Sin(36.34 * kDegRad) + 0.1, 82.375));
324 BarrelVolume->AddNode(BarrelPipes, 1,
new TGeoTranslation(rin_shift * TMath::Cos(29.55 * kDegRad), -rin_shift * TMath::Sin(29.55 * kDegRad), 82.375));
325 BarrelVolume->AddNode(BarrelPipes, 1,
new TGeoTranslation(rin_shift * TMath::Cos(30.62 * kDegRad), -rin_shift * TMath::Sin(30.62 * kDegRad), 82.375));
326 BarrelVolume->AddNode(BarrelPipes, 1,
new TGeoTranslation(rin_shift * TMath::Cos(31.68 * kDegRad), -rin_shift * TMath::Sin(31.68 * kDegRad), 82.375));
327 BarrelVolume->AddNode(BarrelPipes, 1,
new TGeoTranslation(rin_shift * TMath::Cos(33.10 * kDegRad) - 0.1, -rin_shift * TMath::Sin(33.10 * kDegRad) + 0.1, 82.375));
328 BarrelVolume->AddNode(BarrelPipes, 1,
new TGeoTranslation(rin_shift * TMath::Cos(34.70 * kDegRad) - 0.1, -rin_shift * TMath::Sin(34.70 * kDegRad) + 0.1, 82.375));
329 BarrelVolume->AddNode(BarrelPipes, 1,
new TGeoTranslation(rin_shift * TMath::Cos(36.34 * kDegRad) - 0.1, -rin_shift * TMath::Sin(36.34 * kDegRad) + 0.1, 82.375));
331 BarrelVolume->AddNode(PipeBox, 1, pos_pipe0);
332 BarrelVolume->AddNode(PipeBox, 1, pos_pipe2);
335 BarrelVolume->AddNode(WPipes3mm, 1,
new TGeoTranslation(-rin_shift * TMath::Cos(29.55 * kDegRad), -rin_shift * TMath::Sin(29.55 * kDegRad), 82.375));
336 BarrelVolume->AddNode(WPipes3mm, 1,
new TGeoTranslation(-rin_shift * TMath::Cos(30.62 * kDegRad), -rin_shift * TMath::Sin(30.62 * kDegRad), 82.375));
337 BarrelVolume->AddNode(WPipes3mm, 1,
new TGeoTranslation(-rin_shift * TMath::Cos(31.68 * kDegRad), -rin_shift * TMath::Sin(31.68 * kDegRad), 82.375));
338 BarrelVolume->AddNode(WPipes3mm, 1,
new TGeoTranslation(-rin_shift * TMath::Cos(33.06 * kDegRad) + 0.1, -rin_shift * TMath::Sin(33.06 * kDegRad) + 0.1, 82.375));
339 BarrelVolume->AddNode(WPipes3mm, 1,
new TGeoTranslation(-rin_shift * TMath::Cos(34.70 * kDegRad) + 0.1, -rin_shift * TMath::Sin(34.70 * kDegRad) + 0.1, 82.375));
340 BarrelVolume->AddNode(WPipes3mm, 1,
new TGeoTranslation(-rin_shift * TMath::Cos(36.34 * kDegRad) + 0.1, -rin_shift * TMath::Sin(36.34 * kDegRad) + 0.1, 82.375));
342 BarrelVolume->AddNode(WPipes3mm, 1,
new TGeoTranslation(rin_shift * TMath::Cos(29.55 * kDegRad), -rin_shift * TMath::Sin(29.55 * kDegRad), 82.375));
343 BarrelVolume->AddNode(WPipes3mm, 1,
new TGeoTranslation(rin_shift * TMath::Cos(30.62 * kDegRad), -rin_shift * TMath::Sin(30.62 * kDegRad), 82.375));
344 BarrelVolume->AddNode(WPipes3mm, 1,
new TGeoTranslation(rin_shift * TMath::Cos(31.68 * kDegRad), -rin_shift * TMath::Sin(31.68 * kDegRad), 82.375));
345 BarrelVolume->AddNode(WPipes3mm, 1,
new TGeoTranslation(rin_shift * TMath::Cos(33.10 * kDegRad) - 0.1, -rin_shift * TMath::Sin(33.10 * kDegRad) + 0.1, 82.375));
346 BarrelVolume->AddNode(WPipes3mm, 1,
new TGeoTranslation(rin_shift * TMath::Cos(34.70 * kDegRad) - 0.1, -rin_shift * TMath::Sin(34.70 * kDegRad) + 0.1, 82.375));
347 BarrelVolume->AddNode(WPipes3mm, 1,
new TGeoTranslation(rin_shift * TMath::Cos(36.34 * kDegRad) - 0.1, -rin_shift * TMath::Sin(36.34 * kDegRad) + 0.1, 82.375));
349 BarrelVolume->AddNode(PipeBoxFill, 2, pos_pipe0);
350 BarrelVolume->AddNode(PipeBoxFill, 2, pos_pipe2);
360 TGeoVolume* BarrelWiresA = gGeoManager->MakeTube(
"Barrel_wiresa", mCu, 0.0, radiia, 81.225);
361 TGeoVolume* BarrelWiresB = gGeoManager->MakeTube(
"Barrel_wiresb", mCu, 0.0, radiib, 81.225);
363 TGeoVolume* BarrelWiresIsolA = gGeoManager->MakeTube(
"Barrel_wiresa_isol", mPolyimide, 7 * radiia, 7 * radiia + 0.05, 81.225);
364 TGeoVolume* BarrelWiresIsolB = gGeoManager->MakeTube(
"Barrel_wiresb_isol", mPolyimide, 7 * radiib, 7 * radiib + 0.05, 81.225);
366 Double_t rin_wireA[2] = {rin - 0.82, rin - 0.82 - 2 * radiia};
367 Double_t rin_wireB[4] = {rin - 0.82, rin - 0.82 - 2 * radiib, rin - 0.82 - 4 * radiib, rin - 0.82 - 6 * radiib};
373 for (Int_t l = 0; l < 2; l++) {
374 xPosIniA = rin_wireA[l] * TMath::Sin(51.0 * kDegRad);
375 for (Int_t k = 0; k < 5; k++) {
376 xPosIniA = xPosIniA - radiia;
377 Float_t yPosIniA = sqrt(rin_wireA[l] * rin_wireA[l] - xPosIniA * xPosIniA);
378 BarrelVolume->AddNode(BarrelWiresA, 1,
new TGeoTranslation(xPosIniA, -yPosIniA, 81.325));
379 BarrelVolume->AddNode(BarrelWiresA, 1,
new TGeoTranslation(-xPosIniA, -yPosIniA, 81.325));
380 xPosIniA = xPosIniA - 0.03;
383 Double_t xIsol = (rin_wireA[0] - 0.1) * TMath::Sin(50.5 * kDegRad);
384 Double_t yIsol = sqrt((rin_wireA[0] - 0.1) * (rin_wireA[0] - 0.1) - xIsol * xIsol);
385 BarrelVolume->AddNode(BarrelWiresIsolA, 1,
new TGeoTranslation(xIsol, -yIsol, 81.325));
386 BarrelVolume->AddNode(BarrelWiresIsolA, 1,
new TGeoTranslation(-xIsol, -yIsol, 81.325));
389 for (Int_t l = 0; l < 4; l++) {
390 xPosIniB = rin_wireB[l] * TMath::Sin(49.2 * kDegRad);
391 for (Int_t k = 0; k < 4; k++) {
392 xPosIniB = xPosIniB - radiib;
393 Float_t yPosIniB = sqrt(rin_wireB[l] * rin_wireB[l] - xPosIniB * xPosIniB);
394 BarrelVolume->AddNode(BarrelWiresB, 1,
new TGeoTranslation(xPosIniB, -yPosIniB, 81.325));
395 BarrelVolume->AddNode(BarrelWiresB, 1,
new TGeoTranslation(-xPosIniB, -yPosIniB, 81.325));
396 xPosIniB = xPosIniB - 0.02;
399 xIsol = (rin_wireB[1] - 0.05) * TMath::Sin(49.0 * kDegRad);
400 yIsol = sqrt((rin_wireB[1] - 0.05) * (rin_wireB[1] - 0.05) - xIsol * xIsol);
401 BarrelVolume->AddNode(BarrelWiresIsolB, 1,
new TGeoTranslation(xIsol, -yIsol, 81.325));
402 BarrelVolume->AddNode(BarrelWiresIsolB, 1,
new TGeoTranslation(-xIsol, -yIsol, 81.325));
407 TGeoVolume* FixService0 = gGeoManager->MakeTubs(
"FixService0", mPolypropylene, FSRad, FSRad + FSThickness, 2.00, 313, 331);
408 TGeoVolume* FixService1 = gGeoManager->MakeTubs(
"FixService1", mPolypropylene, FSRad, FSRad + FSThickness, 2.00, 209, 226.7);
410 FixService0->SetLineColor(kWhite);
411 FixService1->SetLineColor(kWhite);
413 BarrelVolume->AddNode(FixService0, 1,
new TGeoTranslation(0.00, 0.0, 21.2));
414 BarrelVolume->AddNode(FixService1, 1,
new TGeoTranslation(0.00, 0.0, 21.2));
415 BarrelVolume->AddNode(FixService0, 1,
new TGeoTranslation(-0.00, 0.0, 32.7));
416 BarrelVolume->AddNode(FixService1, 1,
new TGeoTranslation(0.00, 0.0, 32.7));
417 BarrelVolume->AddNode(FixService0, 1,
new TGeoTranslation(-0.00, 0.0, 44.2));
418 BarrelVolume->AddNode(FixService1, 1,
new TGeoTranslation(0.00, 0.0, 44.2));
419 BarrelVolume->AddNode(FixService0, 1,
new TGeoTranslation(-0.00, 0.0, 52.325));
420 BarrelVolume->AddNode(FixService1, 1,
new TGeoTranslation(0.00, 0.0, 52.325));
421 BarrelVolume->AddNode(FixService0, 1,
new TGeoTranslation(-0.00, 0.0, 76.325));
422 BarrelVolume->AddNode(FixService1, 1,
new TGeoTranslation(0.00, 0.0, 76.325));
423 BarrelVolume->AddNode(FixService0, 1,
new TGeoTranslation(-0.00, 0.0, 100.325));
424 BarrelVolume->AddNode(FixService1, 1,
new TGeoTranslation(0.00, 0.0, 100.325));
425 BarrelVolume->AddNode(FixService0, 1,
new TGeoTranslation(-0.00, 0.0, 124.325));
426 BarrelVolume->AddNode(FixService1, 1,
new TGeoTranslation(0.00, 0.0, 124.325));
427 BarrelVolume->AddNode(FixService0, 1,
new TGeoTranslation(-0.00, 0.0, 148.325));
428 BarrelVolume->AddNode(FixService1, 1,
new TGeoTranslation(0.00, 0.0, 148.325));