BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
create_rootgeom_VacuumPipe_section3_RUN9.C
Go to the documentation of this file.
1/*
2 * Use this macro to create ROOT geometry of Vacuum Beam Pipe
3 * (section 3: behind the magnet) for the RUN-9 configuration
4 * according to the measurement scheme
5 *
6 * Author: Baranov D.
7 * Updated: 18.05.2026
8 *
9 *
10 * WARNING: all units is in cm!!!
11 *
12 */
13
14#include "TGeoMatrix.h"
15#include "TGeoVolume.h"
16#include "TString.h"
17
18// Parameters of Vacuum Beam Pipe
19
20const Int_t NModules = 1;
21
22// Positions
24 +22.998 // [0]
25};
27 -0.005 // [0]
28};
30 +432.019 // [0]
31};
32
33// Rotations of modules around Z (deg.)
35 +0.0 // [0]
36};
37
38//------------------------------------------------------------------------------
39
40// GeoManager
42
43// media
51
52class FairGeoMedia;
53class FairGeoBuilder;
54
55TGeoVolume* CreateTube(TString module_name);
56
57void DefineRequiredMedia(FairGeoMedia* geoMedia, FairGeoBuilder* geoBuild)
58{
59
60 // vacuum medium
61 FairGeoMedium* mVacuum = geoMedia->getMedium("vacuum");
62 if (!mVacuum)
63 Fatal("Main", "FairMedium vacuum not found");
64 geoBuild->createMedium(mVacuum);
65 pMedVacuum = gGeoManager->GetMedium("vacuum");
66 if (!pMedVacuum)
67 Fatal("Main", "Medium vacuum not found");
68
69 // air medium
70 FairGeoMedium* mAir = geoMedia->getMedium("air");
71 if (!mAir)
72 Fatal("Main", "FairMedium air not found");
73 geoBuild->createMedium(mAir);
74 pMedAir = gGeoManager->GetMedium("air");
75 if (!pMedAir)
76 Fatal("Main", "Medium air not found");
77
78 // carbon medium
79 FairGeoMedium* mCarbon = geoMedia->getMedium("carbon");
80 if (!mCarbon)
81 Fatal("Main", "FairMedium carbon not found");
82 geoBuild->createMedium(mCarbon);
83 pMedCarbon = gGeoManager->GetMedium("carbon");
84 if (!pMedCarbon)
85 Fatal("Main", "Medium carbon not found");
86
87 // aluminium medium
88 FairGeoMedium* mAluminium = geoMedia->getMedium("aluminium");
89 if (!mAluminium)
90 Fatal("Main", "FairMedium aluminium not found");
91 geoBuild->createMedium(mAluminium);
92 pMedAluminium = gGeoManager->GetMedium("aluminium");
93 if (!pMedAluminium)
94 Fatal("Main", "Medium aluminium not found");
95
96 // steel medium
97 FairGeoMedium* mSteel = geoMedia->getMedium("steel");
98 if (!mSteel)
99 Fatal("Main", "FairMedium steel not found");
100 geoBuild->createMedium(mSteel);
101 pMedSteel = gGeoManager->GetMedium("steel");
102 if (!pMedSteel)
103 Fatal("Main", "Medium steel not found");
104
105 // fiberglass medium
106 FairGeoMedium* mFiberGlass = geoMedia->getMedium("fiberglass");
107 if (!mFiberGlass)
108 Fatal("Main", "FairMedium fiberglass not found");
109 geoBuild->createMedium(mFiberGlass);
110 pMedFiberGlass = gGeoManager->GetMedium("fiberglass");
111 if (!pMedFiberGlass)
112 Fatal("Main", "Medium fiberglass not found");
113
114 // silicon medium
115 FairGeoMedium* mSilicon = geoMedia->getMedium("silicon");
116 if (!mSilicon)
117 Fatal("Main", "FairMedium silicon not found");
118 geoBuild->createMedium(mSilicon);
119 pMedSilicon = gGeoManager->GetMedium("silicon");
120 if (!pMedSilicon)
121 Fatal("Main", "Medium silicon not found");
122}
123
125{
126
127 // ---- set working directory --------------------------------------------
128 TString gPath = gSystem->Getenv("VMCWORKDIR");
129
130 // ------- Geometry file name (output) ----------------------------------
131 const TString geoDetectorName = "VacuumPipe_section3";
132 const TString geoDetectorVersion = "Run9";
133 const TString geoFileName = gPath + "/geometry/" + geoDetectorName + "_" + geoDetectorVersion + ".root";
134
135 // ---- global geometry parameters ---------------------------------------
136 FairGeoLoader* geoLoad = new FairGeoLoader("TGeo", "FairGeoLoader");
137 FairGeoInterface* geoFace = geoLoad->getGeoInterface();
138
139 // ------- Load media from media file ----------------------------------
140 TString medFile = gPath + "/geometry/media.geo";
141 geoFace->setMediaFile(medFile);
142 geoFace->readMedia();
143 FairGeoMedia* geoMedia = geoFace->getMedia();
144 FairGeoBuilder* geoBuild = geoLoad->getGeoBuilder();
145
146 DefineRequiredMedia(geoMedia, geoBuild);
147 // -------------------------------------------------------------------------
148
149 // -------------- Create geometry and top volume ------------------------
150 gGeoMan = (TGeoManager*)gROOT->FindObject("FAIRGeom");
151 gGeoMan->SetName(geoDetectorName + "_geom");
152 TGeoVolume* top = new TGeoVolumeAssembly("TOP");
153 top->SetMedium(pMedAir);
154 gGeoMan->SetTopVolume(top);
155 // gGeoMan->SetTopVisible(1);
156 // -------------------------------------------------------------------------
157
158 // Define TOP Geometry
159 TGeoVolume* VacuumPipe_section3 = new TGeoVolumeAssembly(geoDetectorName);
160 VacuumPipe_section3->SetMedium(pMedVacuum);
161
162 TGeoVolume* tube = CreateTube(TString("VacuumPipeSec3_Tube"));
163
164 TGeoCombiTrans* tube_transform = new TGeoCombiTrans();
165 tube_transform->RotateY(4.2392);
167
168 VacuumPipe_section3->AddNode(tube, 0, tube_transform);
169
170 top->AddNode(VacuumPipe_section3, 0);
172
173 // --------------- Finish ----------------------------------------------
174 gGeoMan->CloseGeometry();
175 gGeoMan->CheckOverlaps(0.0001);
176 gGeoMan->PrintOverlaps();
177 gGeoMan->Test();
178 // gGeoMan->RestoreMasterVolume();
179
180 TFile* geoFile = new TFile(geoFileName, "RECREATE");
181 top->Write();
182 geoFile->Close();
183 top->Draw("ogl");
184}
185//------------------------------------------------------------------------------
186
188{
189
190 Double_t length0 = 3.4; // cm
191
192 Double_t length1 = 125.0; // cm
193 Double_t length2 = 100.0; // cm
194 Double_t length3 = 96.0; // cm
195 Double_t length4 = 150.0; // cm
196 Double_t adapter_length1 = 1.5;
197 Double_t adapter_length2 = 5.9;
198 Double_t adapter_length_all = adapter_length1 + adapter_length2;
199
200 Double_t innerRadius1 = 12.0 * 0.5;
201 Double_t outerRadius1 = 12.4 * 0.5;
202 Double_t flangeRadius1 = 13.8 * 0.5;
203
204 Double_t innerRadius2 = 15.0 * 0.5;
205 Double_t outerRadius2 = 15.4 * 0.5;
206 Double_t flangeRadius2 = 16.9 * 0.5;
207
208 Double_t flangeThickness = 0.5;
209
210 // shapes
211 TGeoShape* vacTube0S =
212 new TGeoTube(TString("vacTube0S") += TString("_") + module_name, innerRadius1, outerRadius1, length0 * 0.5);
213 TGeoShape* vacTube1S =
214 new TGeoTube(TString("vacTube1S") += TString("_") + module_name, innerRadius1, outerRadius1, length1 * 0.5);
215 TGeoShape* vacTube2S =
216 new TGeoTube(TString("vacTube2S") += TString("_") + module_name, innerRadius1, outerRadius1, length2 * 0.5);
217 TGeoShape* vacTube3S =
218 new TGeoTube(TString("vacTube3S") += TString("_") + module_name, innerRadius1, outerRadius1, length3 * 0.5);
219 TGeoShape* vacTube4S =
220 new TGeoTube(TString("vacTube4S") += TString("_") + module_name, innerRadius2, outerRadius2, length4 * 0.5);
221
222 TGeoShape* vacTube0VacuumS =
223 new TGeoTube(TString("vacTube0VacuumS") += TString("_") + module_name, 0.0, innerRadius1, length0 * 0.5);
224 TGeoShape* vacTube1VacuumS =
225 new TGeoTube(TString("vacTube1VacuumS") += TString("_") + module_name, 0.0, innerRadius1, length1 * 0.5);
226 TGeoShape* vacTube2VacuumS =
227 new TGeoTube(TString("vacTube2VacuumS") += TString("_") + module_name, 0.0, innerRadius1, length2 * 0.5);
228 TGeoShape* vacTube3VacuumS =
229 new TGeoTube(TString("vacTube3VacuumS") += TString("_") + module_name, 0.0, innerRadius1, length3 * 0.5);
230 TGeoShape* vacTube4VacuumS =
231 new TGeoTube(TString("vacTube4VacuumS") += TString("_") + module_name, 0.0, innerRadius2, length4 * 0.5);
232
233 TGeoShape* vacAdapterPart1S = new TGeoTube(TString("vacAdapterPart1S") += TString("_") + module_name, innerRadius1,
234 outerRadius1, adapter_length1 * 0.5);
235 TGeoShape* vacAdapterPart2S = new TGeoTube(TString("vacAdapterPart2S") += TString("_") + module_name, innerRadius2,
236 outerRadius2, adapter_length2 * 0.5);
237 TGeoShape* vacAdapterPart3S = new TGeoTube(TString("vacAdapterPart3S") += TString("_") + module_name, innerRadius1,
238 innerRadius2, flangeThickness * 0.5);
239
240 TGeoShape* vacAdapterPart1VacuumS = new TGeoTube(TString("vacAdapterPart1VacuumS") += TString("_") + module_name,
241 0.0, innerRadius1, adapter_length1 * 0.5);
242 TGeoShape* vacAdapterPart2VacuumS = new TGeoTube(TString("vacAdapterPart2VacuumS") += TString("_") + module_name,
243 0.0, innerRadius2, adapter_length2 * 0.5);
244 TGeoShape* vacAdapterPart3VacuumS = new TGeoTube(TString("vacAdapterPart3VacuumS") += TString("_") + module_name,
245 0.0, innerRadius2, flangeThickness * 0.5);
246
247 TGeoShape* vacTubeFlangeS = new TGeoTube(TString("vacTubeFlangeS") += TString("_") + module_name, outerRadius1,
248 flangeRadius1, flangeThickness * 0.5);
249 TGeoShape* vacTubeBigFlangeS = new TGeoTube(TString("vacTubeBigFlangeS") += TString("_") + module_name,
250 outerRadius2, flangeRadius2, flangeThickness * 0.5);
251
252 TGeoCombiTrans* vacAdapterPart1_transf = new TGeoCombiTrans();
253 vacAdapterPart1_transf->SetName(TString("vacAdapterPart1_transf") += TString("_") + module_name);
254 vacAdapterPart1_transf->SetTranslation(0.0, 0.0, +adapter_length1 * 0.5);
255 vacAdapterPart1_transf->RegisterYourself();
256
257 TGeoCombiTrans* vacAdapterPart2_transf = new TGeoCombiTrans();
258 vacAdapterPart2_transf->SetName(TString("vacAdapterPart2_transf") += TString("_") + module_name);
259 vacAdapterPart2_transf->SetTranslation(0.0, 0.0, +adapter_length1 + adapter_length2 * 0.5);
260 vacAdapterPart2_transf->RegisterYourself();
261
262 TGeoCombiTrans* vacAdapterPart3_transf = new TGeoCombiTrans();
263 vacAdapterPart3_transf->SetName(TString("vacAdapterPart3_transf") += TString("_") + module_name);
264 vacAdapterPart3_transf->SetTranslation(0.0, 0.0, +adapter_length1 + flangeThickness * 0.5);
265 vacAdapterPart3_transf->RegisterYourself();
266
267 TGeoCompositeShape* vacAdapterS = new TGeoCompositeShape();
268 vacAdapterS->SetName(TString("vacAdapterS") += TString("_") + module_name);
269 {
270 TString expression = "vacAdapterPart1S";
271 expression += TString("_") + module_name;
272 expression += ":vacAdapterPart1_transf";
273 expression += TString("_") + module_name;
274 expression += "+vacAdapterPart2S";
275 expression += TString("_") + module_name;
276 expression += ":vacAdapterPart2_transf";
277 expression += TString("_") + module_name;
278 expression += "+vacAdapterPart3S";
279 expression += TString("_") + module_name;
280 expression += ":vacAdapterPart3_transf";
281 expression += TString("_") + module_name;
282 vacAdapterS->MakeNode(expression);
283 vacAdapterS->ComputeBBox(); // need to compute a bounding box
284 }
285
286 TGeoCompositeShape* vacAdapterVacuumS = new TGeoCompositeShape();
287 vacAdapterVacuumS->SetName(TString("vacAdapterVacuumS") += TString("_") + module_name);
288 {
289 TString expression = "vacAdapterPart1VacuumS";
290 expression += TString("_") + module_name;
291 expression += ":vacAdapterPart1_transf";
292 expression += TString("_") + module_name;
293 expression += "+vacAdapterPart2VacuumS";
294 expression += TString("_") + module_name;
295 expression += ":vacAdapterPart2_transf";
296 expression += TString("_") + module_name;
297 expression += "+vacAdapterPart3VacuumS";
298 expression += TString("_") + module_name;
299 expression += ":vacAdapterPart3_transf";
300 expression += TString("_") + module_name;
301 vacAdapterVacuumS->MakeNode(expression);
302 vacAdapterVacuumS->ComputeBBox(); // need to compute a bounding box
303 }
304
305 // volumes
306 TGeoVolumeAssembly* vacTubeBoxV = new TGeoVolumeAssembly(module_name);
307 TGeoVolume* vacTube0V = new TGeoVolume(TString("vacTube0V") += TString("_") + module_name, vacTube0S);
308 TGeoVolume* vacTube1V = new TGeoVolume(TString("vacTube1V") += TString("_") + module_name, vacTube1S);
309 TGeoVolume* vacTube2V = new TGeoVolume(TString("vacTube2V") += TString("_") + module_name, vacTube2S);
310 TGeoVolume* vacTube3V = new TGeoVolume(TString("vacTube3V") += TString("_") + module_name, vacTube3S);
311 TGeoVolume* vacTube4V = new TGeoVolume(TString("vacTube4V") += TString("_") + module_name, vacTube4S);
312 TGeoVolume* vacAdapterV = new TGeoVolume(TString("vacAdapterV") += TString("_") + module_name, vacAdapterS);
313
314 TGeoVolume* vacTube0VacuumV =
315 new TGeoVolume(TString("vacTube0VacuumV") += TString("_") + module_name, vacTube0VacuumS);
316 TGeoVolume* vacTube1VacuumV =
317 new TGeoVolume(TString("vacTube1VacuumV") += TString("_") + module_name, vacTube1VacuumS);
318 TGeoVolume* vacTube2VacuumV =
319 new TGeoVolume(TString("vacTube2VacuumV") += TString("_") + module_name, vacTube2VacuumS);
320 TGeoVolume* vacTube3VacuumV =
321 new TGeoVolume(TString("vacTube3VacuumV") += TString("_") + module_name, vacTube3VacuumS);
322 TGeoVolume* vacTube4VacuumV =
323 new TGeoVolume(TString("vacTube4VacuumV") += TString("_") + module_name, vacTube4VacuumS);
324 TGeoVolume* vacAdapterVacuumV =
325 new TGeoVolume(TString("vacAdapterVacuumV") += TString("_") + module_name, vacAdapterVacuumS);
326
327 TGeoVolume* vacTubeFlangeV =
328 new TGeoVolume(TString("vacTubeFlangeV") += TString("_") + module_name, vacTubeFlangeS);
329 TGeoVolume* vacTubeBigFlangeV =
330 new TGeoVolume(TString("vacTubeBigFlangeV") += TString("_") + module_name, vacTubeBigFlangeS);
331
332 // volume medium
333 TGeoMedium* vacTubeV_medium = pMedAluminium;
334 if (vacTubeV_medium) {
335 vacTube0V->SetMedium(vacTubeV_medium);
336 vacTube1V->SetMedium(vacTubeV_medium);
337 vacTube2V->SetMedium(vacTubeV_medium);
338 vacTube3V->SetMedium(vacTubeV_medium);
339 vacTube4V->SetMedium(vacTubeV_medium);
340 vacAdapterV->SetMedium(vacTubeV_medium);
341 vacTubeFlangeV->SetMedium(vacTubeV_medium);
342 vacTubeBigFlangeV->SetMedium(vacTubeV_medium);
343 } else
344 Fatal("Main", "Invalid medium for vacTubeV!");
345
346 TGeoMedium* vacTubeVacuumV_medium = pMedVacuum;
347 if (vacTubeVacuumV_medium) {
348 vacTube0VacuumV->SetMedium(vacTubeVacuumV_medium);
349 vacTube1VacuumV->SetMedium(vacTubeVacuumV_medium);
350 vacTube2VacuumV->SetMedium(vacTubeVacuumV_medium);
351 vacTube3VacuumV->SetMedium(vacTubeVacuumV_medium);
352 vacTube4VacuumV->SetMedium(vacTubeVacuumV_medium);
353 vacAdapterVacuumV->SetMedium(vacTubeVacuumV_medium);
354 } else
355 Fatal("Main", "Invalid medium for vacTubeVacuumV!");
356
357 // volume visual property (transparency)
358 vacTube0V->SetLineColor(TColor::GetColor("#ffcccc"));
359 vacTube1V->SetLineColor(TColor::GetColor("#ffcccc"));
360 vacTube1V->SetTransparency(0);
361 vacTube2V->SetLineColor(TColor::GetColor("#ffcccc"));
362 vacTube3V->SetLineColor(TColor::GetColor("#ffcccc"));
363 vacTube4V->SetLineColor(TColor::GetColor("#ffcccc"));
364 vacAdapterV->SetLineColor(TColor::GetColor("#ffcccc"));
365 vacTubeFlangeV->SetLineColor(TColor::GetColor("#ffcccc"));
366 vacTubeBigFlangeV->SetLineColor(TColor::GetColor("#ffcccc"));
367
368 // part positions in the vacuum tube box
369 TGeoCombiTrans* vacTube0V_transf[1];
370 vacTube0V_transf[0] = new TGeoCombiTrans();
371 vacTube0V_transf[0]->SetTranslation(0.0, 0.0, -length0 * 0.5);
372
373 TGeoCombiTrans* vacTube1V_transf[1];
374 vacTube1V_transf[0] = new TGeoCombiTrans();
375 vacTube1V_transf[0]->SetTranslation(0.0, 0.0, +length1 * 0.5);
376
377 TGeoCombiTrans* vacTube2V_transf[1];
378 vacTube2V_transf[0] = new TGeoCombiTrans();
379 vacTube2V_transf[0]->SetTranslation(0.0, 0.0, +length1 + length2 * 0.5);
380
381 TGeoCombiTrans* vacTube3V_transf[1];
382 vacTube3V_transf[0] = new TGeoCombiTrans();
383 vacTube3V_transf[0]->SetTranslation(0.0, 0.0, +length1 + length2 + length3 * 0.5);
384
385 TGeoCombiTrans* vacAdapterV_transf[1];
386 vacAdapterV_transf[0] = new TGeoCombiTrans();
387 vacAdapterV_transf[0]->SetTranslation(0.0, 0.0, +length1 + length2 + length3);
388
389 TGeoCombiTrans* vacTube4V_transf[1];
390 vacTube4V_transf[0] = new TGeoCombiTrans();
391 vacTube4V_transf[0]->SetTranslation(0.0, 0.0, +length1 + length2 + length3 + adapter_length_all + length4 * 0.5);
392
393 TGeoCombiTrans* vacTube1FlangeV_transf[2];
394 vacTube1FlangeV_transf[0] = new TGeoCombiTrans();
395 vacTube1FlangeV_transf[0]->SetTranslation(0.0, 0.0, +flangeThickness * 0.5);
396 vacTube1FlangeV_transf[1] = new TGeoCombiTrans();
397 vacTube1FlangeV_transf[1]->SetTranslation(0.0, 0.0, +length1 - flangeThickness * 0.5);
398
399 TGeoCombiTrans* vacTube2FlangeV_transf[2];
400 vacTube2FlangeV_transf[0] = new TGeoCombiTrans();
401 vacTube2FlangeV_transf[0]->SetTranslation(0.0, 0.0, +length1 + flangeThickness * 0.5);
402 vacTube2FlangeV_transf[1] = new TGeoCombiTrans();
403 vacTube2FlangeV_transf[1]->SetTranslation(0.0, 0.0, +length1 + length2 - flangeThickness * 0.5);
404
405 TGeoCombiTrans* vacTube3FlangeV_transf[2];
406 vacTube3FlangeV_transf[0] = new TGeoCombiTrans();
407 vacTube3FlangeV_transf[0]->SetTranslation(0.0, 0.0, +length1 + length2 + flangeThickness * 0.5);
408 vacTube3FlangeV_transf[1] = new TGeoCombiTrans();
409 vacTube3FlangeV_transf[1]->SetTranslation(0.0, 0.0, +length1 + length2 + length3 - flangeThickness * 0.5);
410
411 TGeoCombiTrans* vacAdapterFlangeV_transf[1];
412 vacAdapterFlangeV_transf[0] = new TGeoCombiTrans();
413 vacAdapterFlangeV_transf[0]->SetTranslation(0.0, 0.0, +length1 + length2 + length3 + flangeThickness * 0.5);
414
415 TGeoCombiTrans* vacAdapterBigFlangeV_transf[1];
416 vacAdapterBigFlangeV_transf[0] = new TGeoCombiTrans();
417 vacAdapterBigFlangeV_transf[0]->SetTranslation(
418 0.0, 0.0, +length1 + length2 + length3 + adapter_length1 + adapter_length2 - flangeThickness * 0.5);
419
420 TGeoCombiTrans* vacTube4FlangeV_transf[2];
421 vacTube4FlangeV_transf[0] = new TGeoCombiTrans();
422 vacTube4FlangeV_transf[0]->SetTranslation(
423 0.0, 0.0, +length1 + length2 + +length3 + adapter_length_all + flangeThickness * 0.5);
424 vacTube4FlangeV_transf[1] = new TGeoCombiTrans();
425 vacTube4FlangeV_transf[1]->SetTranslation(
426 0.0, 0.0, +length1 + length2 + length3 + adapter_length_all + length4 - flangeThickness * 0.5);
427
428 vacTubeBoxV->AddNode(vacTube0V, 0, vacTube0V_transf[0]);
429 vacTubeBoxV->AddNode(vacTube1V, 0, vacTube1V_transf[0]);
430 vacTubeBoxV->AddNode(vacTubeFlangeV, 0, vacTube1FlangeV_transf[0]);
431 vacTubeBoxV->AddNode(vacTubeFlangeV, 1, vacTube1FlangeV_transf[1]);
432 vacTubeBoxV->AddNode(vacTube2V, 0, vacTube2V_transf[0]);
433 vacTubeBoxV->AddNode(vacTubeFlangeV, 0, vacTube2FlangeV_transf[0]);
434 vacTubeBoxV->AddNode(vacTubeFlangeV, 1, vacTube2FlangeV_transf[1]);
435 vacTubeBoxV->AddNode(vacTube3V, 0, vacTube3V_transf[0]);
436 vacTubeBoxV->AddNode(vacTubeFlangeV, 0, vacTube3FlangeV_transf[0]);
437 vacTubeBoxV->AddNode(vacTubeFlangeV, 1, vacTube3FlangeV_transf[1]);
438 vacTubeBoxV->AddNode(vacAdapterV, 0, vacAdapterV_transf[0]);
439 vacTubeBoxV->AddNode(vacTubeFlangeV, 0, vacAdapterFlangeV_transf[0]);
440 vacTubeBoxV->AddNode(vacTubeBigFlangeV, 0, vacAdapterBigFlangeV_transf[0]);
441
442 vacTubeBoxV->AddNode(vacTube0VacuumV, 0, vacTube0V_transf[0]);
443 vacTubeBoxV->AddNode(vacTube1VacuumV, 0, vacTube1V_transf[0]);
444 vacTubeBoxV->AddNode(vacTube2VacuumV, 0, vacTube2V_transf[0]);
445 vacTubeBoxV->AddNode(vacTube3VacuumV, 0, vacTube3V_transf[0]);
446 vacTubeBoxV->AddNode(vacAdapterVacuumV, 0, vacAdapterV_transf[0]);
447
448 // this section is not for RUN-8
449 // vacTubeBoxV->AddNode(vacTube4V, 0, vacTube4V_transf[0]);
450 // vacTubeBoxV->AddNode(vacTubeBigFlangeV, 0, vacTube4FlangeV_transf[0]);
451 // vacTubeBoxV->AddNode(vacTubeBigFlangeV, 1, vacTube4FlangeV_transf[1]);
452
453 return vacTubeBoxV;
454}
455//------------------------------------------------------------------------------
int Int_t
double Double_t
constexpr Bool_t kTRUE
void Fatal(const char *location, const char *msgfmt,...)
R__EXTERN TGeoManager * gGeoManager
#define gROOT
R__EXTERN TSystem * gSystem
static Int_t GetColor(const char *hexcolor)
void Close(Option_t *option="") override
void RegisterYourself() override
void RotateY(Double_t angle) override
void SetTranslation(const TGeoTranslation &tr)
void ComputeBBox() override
void MakeNode(const char *expression)
TGeoNode * AddNode(TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=nullptr, Option_t *option="") override
void SetVisContainers(Bool_t flag=kTRUE) override
virtual TGeoNode * AddNode(TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=nullptr, Option_t *option="")
void Draw(Option_t *option="") override
void SetTransparency(Char_t transparency=0)
virtual void SetMedium(TGeoMedium *medium)
void SetLineColor(Color_t lcolor) override
virtual void SetName(const char *name)
virtual Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
const Double_t XModulePositions[NModules]
const Double_t YModulePositions[NModules]
const Double_t ZModulePositions[NModules]
void create_rootgeom_VacuumPipe_section3_RUN9()
void DefineRequiredMedia(FairGeoMedia *geoMedia, FairGeoBuilder *geoBuild)
TGeoVolume * CreateTube(TString module_name)