BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
create_rootgeom_TOF400_RUN8_SRC.C
Go to the documentation of this file.
1/*
2 * To change this license header, choose License Headers in Project Properties.
3 * To change this template file, choose Tools | Templates
4 * and open the template in the editor.
5 */
6
7/*
8 * File: create_rootgeom_TOF400_RUN8.C
9 * Author: mikhailr
10 *
11 * Created on August 25, 2021, 11:06 AM
12 */
13
14R__ADD_INCLUDE_PATH($VMCWORKDIR)
15#include "macro/run/bmnloadlibs.C"
16
17#include <TMath.h>
18
19using namespace std;
20using namespace TMath;
21
23{
24
25 // ------- Load media from media file --------------------------------
26 TGeoManager* gGeoMan;
27 cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!" << endl;
28 FairGeoLoader* geoLoad = new FairGeoLoader("TGeo", "FairGeoLoader");
29 FairGeoInterface* geoFace = geoLoad->getGeoInterface();
30 TString geoPath = gSystem->Getenv("VMCWORKDIR");
31 TString medFile = geoPath + "/geometry/media.geo";
32 geoFace->setMediaFile(medFile);
33 geoFace->readMedia();
34 gGeoMan = gGeoManager;
35
36 // ------- Geometry file name (output) -------------------------------
37 const TString geoDetectorName = "TOF400";
38 const TString geoDetectorVersion = "RUN8_SRC";
39 const TString geoFileName = geoPath + "/geometry/" + geoDetectorName + "_" + geoDetectorVersion + ".root";
40
41 // ----------------- Get and create the required media --------------
42 FairGeoMedia* geoMedia = geoFace->getMedia();
43 FairGeoBuilder* geoBuild = geoLoad->getGeoBuilder();
44
45 // Air
46 FairGeoMedium* matAir = geoMedia->getMedium("air");
47 if (!matAir)
48 Fatal("Main", "FairMedium air not found");
49 geoBuild->createMedium(matAir);
50 TGeoMedium* medAir = gGeoMan->GetMedium("air");
51 if (!medAir)
52 Fatal("Main", "Medium air not found");
53
54 // Polypropylene
55 FairGeoMedium* matPprop = geoMedia->getMedium("polypropylene");
56 if (!matPprop)
57 Fatal("Main", "FairMedium polypropylene not found");
58 geoBuild->createMedium(matPprop);
59 TGeoMedium* medPprop = gGeoMan->GetMedium("polypropylene");
60 if (!medPprop)
61 Fatal("Main", "Medium polypropylene not found");
62
63 // lead
64 FairGeoMedium* matPb = geoMedia->getMedium("lead");
65 if (!matPb)
66 Fatal("Main", "FairMedium lead not found");
67 geoBuild->createMedium(matPb);
68 TGeoMedium* medPb = gGeoMan->GetMedium("lead");
69 if (!medPb)
70 Fatal("Main", "Medium lead not found");
71
72 // aluminium
73 FairGeoMedium* matAl = geoMedia->getMedium("aluminium");
74 if (!matAl)
75 Fatal("Main", "FairMedium aluminium not found");
76 geoBuild->createMedium(matAl);
77 TGeoMedium* medAl = gGeoMan->GetMedium("aluminium");
78 if (!medAl)
79 Fatal("Main", "Medium aluminium not found");
80
81 // RPCglass
82 FairGeoMedium* matGlass = geoMedia->getMedium("RPCglass");
83 if (!matGlass)
84 Fatal("Main", "FairMedium RPCglass not found");
85 geoBuild->createMedium(matGlass);
86 TGeoMedium* medGlass = gGeoMan->GetMedium("RPCglass");
87 if (!medGlass)
88 Fatal("Main", "Medium RPCglass not found");
89
90 // RPCgas
91 FairGeoMedium* matGas = geoMedia->getMedium("RPCgas");
92 if (!matGas)
93 Fatal("Main", "FairMedium RPCgas not found");
94 geoBuild->createMedium(matGas);
95 TGeoMedium* medGas = gGeoMan->GetMedium("RPCgas");
96 if (!medGas)
97 Fatal("Main", "Medium RPCgas not found");
98
99 // G10
100 FairGeoMedium* matG10 = geoMedia->getMedium("G10");
101 if (!matG10)
102 Fatal("Main", "FairMedium G10 not found");
103 geoBuild->createMedium(matG10);
104 TGeoMedium* medG10 = gGeoMan->GetMedium("G10");
105 if (!medG10)
106 Fatal("Main", "Medium G10 not found");
107
108 // ----------------------------------------- Create geometry and top volume
109 // -----------------------------------------------
110 gGeoMan = (TGeoManager*)gROOT->FindObject("FAIRGeom");
111 gGeoMan->SetName(geoDetectorName + "_geom");
112 TGeoVolume* top = new TGeoVolumeAssembly("TOP"); // TOP VOLUME
113 top->SetMedium(medAir);
114 gGeoMan->SetTopVolume(top);
115 gGeoMan->SetTopVisible(1);
116 gGeoMan->SetVisLevel(7);
117
118 // --------------------------------------- Define TOP Geometry ------------------------------------
119 TGeoVolume* topTof = new TGeoVolumeAssembly(geoDetectorName);
120 topTof->SetMedium(medAir);
121
122 TGeoVolume* vDetector = new TGeoVolumeAssembly("tof1Detector");
123 vDetector->SetMedium(medAir);
124
125 const double DetXsize = 60.; // [cm]
126 const double DetYsize = 30.; // [cm]
127 const double DetZsize = 3.4; // [cm]
128 // --------------------- Create strip ------------------
129 const float stripGasX = 1., stripGasY = DetYsize, stripGasZ = 0.3; // [cm]
130 TGeoBBox* sStripGas = new TGeoBBox(stripGasX / 2., stripGasY / 2., stripGasZ / 2.);
131 sStripGas->SetName("StripGas");
132 TGeoVolume* vStripGas = new TGeoVolume("tof1StripActiveGasV", sStripGas, medGas);
133 vStripGas->SetLineColor(kRed);
134
135 // --------------------- Create Glass plates ------------------
136 const float detGlassX = DetXsize, detGlassY = DetYsize, detGlassZ = 0.618 / 2.; // [cm] 6.18 mm / 2 plate
137 TGeoBBox* sDetGlass = new TGeoBBox(detGlassX / 2., detGlassY / 2., detGlassZ / 2.);
138 sDetGlass->SetName("DetectorGlass");
139 TGeoVolume* vDetGlass = new TGeoVolume("tof1DetGlassV", sDetGlass, medGlass);
140 vDetGlass->SetLineColor(kYellow);
141
142 // --------------------- Create G10 plates ------------------
143 const float detPlateX = DetXsize, detPlateY = DetYsize, detPlateZ = 0.64 / 2.; // [cm] 6.4 mm / 2 plate
144 TGeoBBox* sDetPlate = new TGeoBBox(detPlateX / 2., detPlateY / 2., detPlateZ / 2.);
145 sDetPlate->SetName("DetectorPlate");
146 TGeoVolume* vDetPlate = new TGeoVolume("tof1DetPlateV", sDetPlate, medG10);
147 vDetPlate->SetLineColor(kBlue);
148
149 // --------------------------------------- Assemble detector
150
151 // Add strips
152 const int NStrips = 48; // 24 strips group
153 const double StripStep = 1.25; // [cm]
154 for (int i = 0; i < NStrips; i++) {
155 vDetector->AddNode(vStripGas, i + 1,
156 new TGeoTranslation("", -DetXsize / 2. + StripStep / 2. + i * StripStep, 0., 0.));
157 }
158
159 // Add Glass plates
160 vDetector->AddNode(vDetGlass, 1, new TGeoTranslation("", 0., 0., -stripGasZ / 2. - detGlassZ / 2.));
161 vDetector->AddNode(vDetGlass, 2, new TGeoTranslation("", 0., 0., +stripGasZ / 2. + detGlassZ / 2.));
162
163 // Add G10 plates
164 vDetector->AddNode(vDetPlate, 1, new TGeoTranslation("", 0., 0., -DetZsize / 2. + detPlateZ / 2.));
165 vDetector->AddNode(vDetPlate, 2, new TGeoTranslation("", 0., 0., +DetZsize / 2. - detPlateZ / 2.));
166
167 // -------------------------------------- Install Detectors
168 // The Z=0 of coordinate system is front edge of SP41 pole.
169 const Double_t tofZgap = 0.9; // 9 mm between detectors
170 const Double_t tofYoverlap = 3.0; // 30 mm detectors overlap at Y direction
171 const Double_t tofZshift = tofZgap + DetZsize;
172 const Double_t FromCoverToRpc = 7.95;
173 const Double_t FromHVToRpc = 2.3;
174 const Double_t ZSP41 = 1333.7575 + 304.812; // the length from 1k200
175
176 /*
177 * box1
178 | 8.3cm |
179 | |
180 | |--| |
181 | | | |
182 |--| |__| |
183 | | |
184 |__| |--| | ---->Z
185 | | |
186 |--| |__| |
187 | | |
188 |__| |--| |
189 | | |
190 |__| |
191 | |
192 |
193 tofZ_Xbox is centr of the PRC
194 */
195
196 // 1 box Det 0-4
197 Double_t angleXDegBox1 = 0.399; // 0.816
198 Double_t angleYDegBox1 = 30.5566;
199 Double_t angleZDegBox1 = 0.446; // 0.175
200 const double box1_x = 148.098; // [cm]
201 const double box1_y = -0.473 - FromHVToRpc; // [cm]
202 const double box1_z = 1259.38 - ZSP41; // [cm] :
203
204 // Double_t angleDegBox2 = 0;
205 // const double tofZ_2box = 499.27; // [cm] :
206 // double box2_x = -28.34; // [cm]
207 // double box2_y = 0; // [cm]
208
209 TGeoRotation* geoRot1 = new TGeoRotation;
210 geoRot1->RotateX(angleXDegBox1);
211 geoRot1->RotateY(angleYDegBox1);
212 geoRot1->RotateZ(angleZDegBox1);
213
214 TVector3* d1 = new TVector3(0, 2. * DetYsize - 2 * tofYoverlap, FromCoverToRpc);
215 TVector3* d2 = new TVector3(0, 1. * DetYsize - 1 * tofYoverlap, FromCoverToRpc - tofZshift);
216 TVector3* d3 = new TVector3(0, 0, FromCoverToRpc);
217 TVector3* d4 = new TVector3(0, -1. * DetYsize + 1 * tofYoverlap, FromCoverToRpc - tofZshift);
218 TVector3* d5 = new TVector3(0, -2. * DetYsize + 2 * tofYoverlap, FromCoverToRpc);
219
220 d1->RotateX(TMath::DegToRad() * angleXDegBox1);
221 d2->RotateX(TMath::DegToRad() * angleXDegBox1);
222 d3->RotateX(TMath::DegToRad() * angleXDegBox1);
223 d4->RotateX(TMath::DegToRad() * angleXDegBox1);
224 d5->RotateX(TMath::DegToRad() * angleXDegBox1);
225
226 d1->RotateY(TMath::DegToRad() * angleYDegBox1);
227 d2->RotateY(TMath::DegToRad() * angleYDegBox1);
228 d3->RotateY(TMath::DegToRad() * angleYDegBox1);
229 d4->RotateY(TMath::DegToRad() * angleYDegBox1);
230 d5->RotateY(TMath::DegToRad() * angleYDegBox1);
231
232 d1->RotateZ(TMath::DegToRad() * angleZDegBox1);
233 d2->RotateZ(TMath::DegToRad() * angleZDegBox1);
234 d3->RotateZ(TMath::DegToRad() * angleZDegBox1);
235 d4->RotateZ(TMath::DegToRad() * angleZDegBox1);
236 d5->RotateZ(TMath::DegToRad() * angleZDegBox1);
237
238 TGeoCombiTrans* cR1 = new TGeoCombiTrans("", d1->X() + box1_x, d1->Y() + box1_y, d1->Z() + box1_z, geoRot1);
239 topTof->AddNode(vDetector, 1, cR1); // right side, x > 0
240
241 TGeoCombiTrans* cR2 = new TGeoCombiTrans("", d2->X() + box1_x, d2->Y() + box1_y, d2->Z() + box1_z, geoRot1);
242 topTof->AddNode(vDetector, 2, cR2); // right side, x > 0
243
244 TGeoCombiTrans* cR3 = new TGeoCombiTrans("", d3->X() + box1_x, d3->Y() + box1_y, d3->Z() + box1_z, geoRot1);
245 topTof->AddNode(vDetector, 3, cR3); // right side, x > 0
246
247 TGeoCombiTrans* cR4 = new TGeoCombiTrans("", d4->X() + box1_x, d4->Y() + box1_y, d4->Z() + box1_z, geoRot1);
248 topTof->AddNode(vDetector, 4, cR4); // right side, x > 0
249
250 TGeoCombiTrans* cR5 = new TGeoCombiTrans("", d5->X() + box1_x, d5->Y() + box1_y, d5->Z() + box1_z, geoRot1);
251 topTof->AddNode(vDetector, 5, cR5); // right side, x > 0
252 //--------------------------------------------------------------------------
253
254 // 4 box det 5-9
255 Double_t angleXDegBox4 = 0.816; // 0.816
256 Double_t angleYDegBox4 = 30.487;
257 Double_t angleZDegBox4 = 0.175; // 0.175
258 const double box4_x = 114.728; // [cm]
259 const double box4_y = -0.65 - FromHVToRpc; // [cm]
260 const double box4_z = 1307.97 - ZSP41; // [cm] :
261
262 TGeoRotation* geoRot4 = new TGeoRotation;
263 geoRot4->RotateX(angleXDegBox4);
264 geoRot4->RotateY(angleYDegBox4);
265 geoRot4->RotateZ(angleZDegBox4);
266
267 TVector3* d6 = new TVector3(0, 2. * DetYsize - 2 * tofYoverlap, -FromCoverToRpc);
268 TVector3* d7 = new TVector3(0, 1. * DetYsize - 1 * tofYoverlap, -FromCoverToRpc + tofZshift);
269 TVector3* d8 = new TVector3(0, 0, -FromCoverToRpc);
270 TVector3* d9 = new TVector3(0, -1. * DetYsize + 1 * tofYoverlap, -FromCoverToRpc + tofZshift);
271 TVector3* d10 = new TVector3(0, -2. * DetYsize + 2 * tofYoverlap, -FromCoverToRpc);
272
273 d6->RotateX(TMath::DegToRad() * angleXDegBox4);
274 d7->RotateX(TMath::DegToRad() * angleXDegBox4);
275 d8->RotateX(TMath::DegToRad() * angleXDegBox4);
276 d9->RotateX(TMath::DegToRad() * angleXDegBox4);
277 d10->RotateX(TMath::DegToRad() * angleXDegBox4);
278
279 d6->RotateY(TMath::DegToRad() * angleYDegBox4);
280 d7->RotateY(TMath::DegToRad() * angleYDegBox4);
281 d8->RotateY(TMath::DegToRad() * angleYDegBox4);
282 d9->RotateY(TMath::DegToRad() * angleYDegBox4);
283 d10->RotateY(TMath::DegToRad() * angleYDegBox4);
284
285 d6->RotateZ(TMath::DegToRad() * angleZDegBox4);
286 d7->RotateZ(TMath::DegToRad() * angleZDegBox4);
287 d8->RotateZ(TMath::DegToRad() * angleZDegBox4);
288 d9->RotateZ(TMath::DegToRad() * angleZDegBox4);
289 d10->RotateZ(TMath::DegToRad() * angleZDegBox4);
290
291 TGeoCombiTrans* cR6 = new TGeoCombiTrans("", d6->X() + box4_x, d6->Y() + box4_y, d6->Z() + box4_z, geoRot4);
292 topTof->AddNode(vDetector, 6, cR6); // right side, x > 0
293
294 TGeoCombiTrans* cR7 = new TGeoCombiTrans("", d7->X() + box4_x, d7->Y() + box4_y, d7->Z() + box4_z, geoRot4);
295 topTof->AddNode(vDetector, 7, cR7);
296
297 TGeoCombiTrans* cR8 = new TGeoCombiTrans("", d8->X() + box4_x, d8->Y() + box4_y, d8->Z() + box4_z, geoRot4);
298 topTof->AddNode(vDetector, 8, cR8);
299
300 TGeoCombiTrans* cR9 = new TGeoCombiTrans("", d9->X() + box4_x, d9->Y() + box4_y, d9->Z() + box4_z, geoRot4);
301 topTof->AddNode(vDetector, 9, cR9);
302
303 TGeoCombiTrans* cR10 = new TGeoCombiTrans("", d10->X() + box4_x, d10->Y() + box4_y, d10->Z() + box4_z, geoRot4);
304 topTof->AddNode(vDetector, 10, cR10);
305
306 //--------------------------------------------------------------------------
307 // 3 box det 10-15
308 Double_t angleXDegBox3 = 0.063; // 0.063
309 Double_t angleYDegBox3 = -31.091; //-31.091
310 Double_t angleZDegBox3 = 0.062; // 0.062
311 const double box3_x = -113.066; // [cm]
312 const double box3_y = -0.314 - FromHVToRpc; // [cm]
313 const double box3_z = 1306.43 - ZSP41; // [cm] :
314
315 TGeoRotation* geoRot3 = new TGeoRotation;
316 geoRot3->RotateX(angleXDegBox3);
317 geoRot3->RotateY(angleYDegBox3);
318 geoRot3->RotateZ(angleZDegBox3);
319
320 TVector3* d11 = new TVector3(0, 2. * DetYsize - 2 * tofYoverlap, -FromCoverToRpc + tofZshift);
321 TVector3* d12 = new TVector3(0, 1. * DetYsize - 1 * tofYoverlap, -FromCoverToRpc);
322 TVector3* d13 = new TVector3(0, 0, -FromCoverToRpc + tofZshift);
323 TVector3* d14 = new TVector3(0, -1. * DetYsize + 1 * tofYoverlap, -FromCoverToRpc);
324 TVector3* d15 = new TVector3(0, -2. * DetYsize + 2 * tofYoverlap, -FromCoverToRpc + tofZshift);
325
326 d11->RotateX(TMath::DegToRad() * angleXDegBox3);
327 d12->RotateX(TMath::DegToRad() * angleXDegBox3);
328 d13->RotateX(TMath::DegToRad() * angleXDegBox3);
329 d14->RotateX(TMath::DegToRad() * angleXDegBox3);
330 d15->RotateX(TMath::DegToRad() * angleXDegBox3);
331
332 d11->RotateY(TMath::DegToRad() * angleYDegBox3);
333 d12->RotateY(TMath::DegToRad() * angleYDegBox3);
334 d13->RotateY(TMath::DegToRad() * angleYDegBox3);
335 d14->RotateY(TMath::DegToRad() * angleYDegBox3);
336 d15->RotateY(TMath::DegToRad() * angleYDegBox3);
337
338 d11->RotateZ(TMath::DegToRad() * angleZDegBox3);
339 d12->RotateZ(TMath::DegToRad() * angleZDegBox3);
340 d13->RotateZ(TMath::DegToRad() * angleZDegBox3);
341 d14->RotateZ(TMath::DegToRad() * angleZDegBox3);
342 d15->RotateZ(TMath::DegToRad() * angleZDegBox3);
343
344 TGeoCombiTrans* cR11 = new TGeoCombiTrans("", d11->X() + box3_x, d11->Y() + box3_y, d11->Z() + box3_z, geoRot3);
345 topTof->AddNode(vDetector, 11, cR11); // right side, x > 0
346
347 TGeoCombiTrans* cR12 = new TGeoCombiTrans("", d12->X() + box3_x, d12->Y() + box3_y, d12->Z() + box3_z, geoRot3);
348 topTof->AddNode(vDetector, 12, cR12);
349
350 TGeoCombiTrans* cR13 = new TGeoCombiTrans("", d13->X() + box3_x, d13->Y() + box3_y, d13->Z() + box3_z, geoRot3);
351 topTof->AddNode(vDetector, 13, cR13);
352
353 TGeoCombiTrans* cR14 = new TGeoCombiTrans("", d14->X() + box3_x, d14->Y() + box3_y, d14->Z() + box3_z, geoRot3);
354 topTof->AddNode(vDetector, 14, cR14);
355
356 TGeoCombiTrans* cR15 = new TGeoCombiTrans("", d15->X() + box3_x, d15->Y() + box3_y, d15->Z() + box3_z, geoRot3);
357 topTof->AddNode(vDetector, 15, cR15);
358 //--------------------------------------------------------------------------
359
360 // 2 box det 16-20
361 Double_t angleXDegBox2 = 0.112; // 0.112
362 Double_t angleYDegBox2 = -31.511; //-31.511
363 Double_t angleZDegBox2 = 0.193; // 0.193
364 const double box2_x = -145.355; // [cm]
365 const double box2_y = -0.473 - FromHVToRpc; // [cm]
366 const double box2_z = 1257.61 - ZSP41; // [cm] :
367
368 TGeoRotation* geoRot2 = new TGeoRotation;
369 geoRot2->RotateX(angleXDegBox2);
370 geoRot2->RotateY(angleYDegBox2);
371 geoRot2->RotateZ(angleZDegBox2);
372
373 TVector3* d16 = new TVector3(0, 2. * DetYsize - 2 * tofYoverlap, FromCoverToRpc - tofZshift);
374 TVector3* d17 = new TVector3(0, 1. * DetYsize - 1 * tofYoverlap, FromCoverToRpc);
375 TVector3* d18 = new TVector3(0, 0, FromCoverToRpc - tofZshift);
376 TVector3* d19 = new TVector3(0, -1. * DetYsize + 1 * tofYoverlap, FromCoverToRpc);
377 TVector3* d20 = new TVector3(0, -2. * DetYsize + 2 * tofYoverlap, FromCoverToRpc - tofZshift);
378
379 d16->RotateX(TMath::DegToRad() * angleXDegBox2);
380 d17->RotateX(TMath::DegToRad() * angleXDegBox2);
381 d18->RotateX(TMath::DegToRad() * angleXDegBox2);
382 d19->RotateX(TMath::DegToRad() * angleXDegBox2);
383 d20->RotateX(TMath::DegToRad() * angleXDegBox2);
384
385 d16->RotateY(TMath::DegToRad() * angleYDegBox2);
386 d17->RotateY(TMath::DegToRad() * angleYDegBox2);
387 d18->RotateY(TMath::DegToRad() * angleYDegBox2);
388 d19->RotateY(TMath::DegToRad() * angleYDegBox2);
389 d20->RotateY(TMath::DegToRad() * angleYDegBox2);
390
391 d16->RotateZ(TMath::DegToRad() * angleZDegBox2);
392 d17->RotateZ(TMath::DegToRad() * angleZDegBox2);
393 d18->RotateZ(TMath::DegToRad() * angleZDegBox2);
394 d19->RotateZ(TMath::DegToRad() * angleZDegBox2);
395 d20->RotateZ(TMath::DegToRad() * angleZDegBox2);
396
397 TGeoCombiTrans* cR16 = new TGeoCombiTrans("", d16->X() + box2_x, d16->Y() + box2_y, d16->Z() + box2_z, geoRot2);
398 topTof->AddNode(vDetector, 16, cR16); // right side, x > 0
399
400 TGeoCombiTrans* cR17 = new TGeoCombiTrans("", d17->X() + box2_x, d17->Y() + box2_y, d17->Z() + box2_z, geoRot2);
401 topTof->AddNode(vDetector, 17, cR17);
402
403 TGeoCombiTrans* cR18 = new TGeoCombiTrans("", d18->X() + box2_x, d18->Y() + box2_y, d18->Z() + box2_z, geoRot2);
404 topTof->AddNode(vDetector, 18, cR18);
405
406 TGeoCombiTrans* cR19 = new TGeoCombiTrans("", d19->X() + box2_x, d19->Y() + box2_y, d19->Z() + box2_z, geoRot2);
407 topTof->AddNode(vDetector, 19, cR19);
408
409 TGeoCombiTrans* cR20 = new TGeoCombiTrans("", d20->X() + box2_x, d20->Y() + box2_y, d20->Z() + box2_z, geoRot2);
410 topTof->AddNode(vDetector, 20, cR20);
411
412 // ------------------ Adding the TOP Volume --------------------------
413 top->AddNode(topTof, 1, new TGeoTranslation("tw", 0., 0., 0.));
414
415 // --------------- Finish --------------------------------------------
417
418 gGeoMan->CloseGeometry();
419 gGeoMan->CheckOverlaps(0.001);
420 gGeoMan->PrintOverlaps();
421 gGeoMan->Test();
422
423 TFile* geoFile = new TFile(geoFileName, "RECREATE");
424 top->Write();
425 geoFile->Close();
426
427 top->Draw("ogl");
428 gGeoMan->Browse(new TBrowser);
429}
int i
Definition P4_F32vec4.h:22
double Double_t
constexpr Bool_t kTRUE
#define R__ADD_INCLUDE_PATH(PATH)
kRed
kBlue
kYellow
void Fatal(const char *location, const char *msgfmt,...)
R__EXTERN TGeoManager * gGeoManager
#define gROOT
R__EXTERN TSystem * gSystem
void Close(Option_t *option="") override
void RotateX(Double_t angle) override
void RotateY(Double_t angle) override
void RotateZ(Double_t angle) 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
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)
Double_t Z() const
Double_t Y() const
void RotateZ(Double_t)
Double_t X() const
void RotateX(Double_t)
void RotateY(Double_t)
void create_rootgeom_TOF400_RUN8_SRC()
constexpr Double_t DegToRad()
Definition json.hpp:4446