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