BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
create_fd_root_v10.C
Go to the documentation of this file.
2#include "TGeoCone.h"
3#include "TGeoManager.h"
4#include "TGeoPara.h"
5#include "TGeoTrd2.h"
6#include "TGeoTube.h"
7
8#include <iomanip>
9#include <iostream>
10
11R__ADD_INCLUDE_PATH($VMCWORKDIR)
12#include "macro/run/bmnloadlibs.C"
13//---------------------------
14//---------------------------
15
17
18const Double_t SID_Xpos = 0.0;
19const Double_t SID_Ypos = 0.0;
20const Double_t SID_Zpos = 6.8; // cm
21
23
24const Double_t dphia = 5.6;
25
27// const Double_t MaxRadiusOfActiveVolume = 40.;
29
32
33const Double_t phia2OfActiveVolume = dphia * 17. + 0.025;
34const Double_t phib2OfActiveVolume = dphia * 18. + 0.025;
35
36const Double_t phia3OfActiveVolume = dphia * 18. + 0.025 * 2;
37const Double_t phib3OfActiveVolume = dphia * 19. + 0.025 * 2;
38
39const Double_t phia4OfActiveVolume = dphia * 19. + 0.025 * 3;
40const Double_t phib4OfActiveVolume = dphia * 20. + 0.025 * 3;
41
42const Double_t phia5OfActiveVolume = dphia * 20. + 0.025 * 4;
43const Double_t phib5OfActiveVolume = dphia * 21. + 0.025 * 4;
44
45const Double_t phia6OfActiveVolume = dphia * 21. + 0.025 * 5;
46const Double_t phib6OfActiveVolume = dphia * 22. + 0.025 * 5;
47
48const Double_t phia7OfActiveVolume = dphia * 22. + 0.025 * 6;
49const Double_t phib7OfActiveVolume = dphia * 23. + 0.025 * 6;
50
51const Double_t phia8OfActiveVolume = dphia * 23. + 0.025 * 7;
52const Double_t phib8OfActiveVolume = dphia * 24. + 0.025 * 7;
53
54const Double_t phia9OfActiveVolume = dphia * 24. + 0.025 * 8;
55const Double_t phib9OfActiveVolume = dphia * 25. + 0.025 * 8;
56
57const Double_t phia10OfActiveVolume = dphia * 25. + 0.025 * 9;
58const Double_t phib10OfActiveVolume = dphia * 26. + 0.025 * 9;
59
60const Double_t phia11OfActiveVolume = dphia * 26. + 0.025 * 10;
61const Double_t phib11OfActiveVolume = dphia * 27. + 0.025 * 10;
62
63const Double_t phia12OfActiveVolume = dphia * 27. + 0.025 * 11;
64const Double_t phib12OfActiveVolume = dphia * 28. + 0.025 * 11;
65
66const Double_t phia13OfActiveVolume = dphia * 28. + 0.025 * 12;
67const Double_t phib13OfActiveVolume = dphia * 29. + 0.025 * 12;
68
69const Double_t phia14OfActiveVolume = dphia * 29. + 0.025 * 13;
70const Double_t phib14OfActiveVolume = dphia * 30. + 0.025 * 13;
71
72const Double_t phia15OfActiveVolume = dphia * 30. + 0.025 * 14;
73const Double_t phib15OfActiveVolume = dphia * 31. + 0.025 * 14;
74
75const Double_t phia16OfActiveVolume = dphia * 31. + 0.025 * 15;
76const Double_t phib16OfActiveVolume = dphia * 32. + 0.025 * 15;
77
78const Double_t phia17OfActiveVolume = dphia * 32. + 0.025 * 16;
79const Double_t phib17OfActiveVolume = dphia * 33. + 0.025 * 16;
80
81const Double_t phia18OfActiveVolume = dphia * 33. + 0.025 * 17;
82const Double_t phib18OfActiveVolume = dphia * 34. + 0.025 * 17;
83
84const Double_t phia19OfActiveVolume = dphia * 34. + 0.025 * 18;
85const Double_t phib19OfActiveVolume = dphia * 35. + 0.025 * 18;
86
87const Double_t phia20OfActiveVolume = dphia * 35. + 0.025 * 19;
88const Double_t phib20OfActiveVolume = dphia * 36. + 0.025 * 19;
89
90const Double_t phia21OfActiveVolume = dphia * 36. + 0.025 * 20;
91const Double_t phib21OfActiveVolume = dphia * 37. + 0.025 * 20;
92
93const Double_t phia22OfActiveVolume = dphia * 37. + 0.025 * 21;
94const Double_t phib22OfActiveVolume = dphia * 38. + 0.025 * 21;
95
96const Double_t phia23OfActiveVolume = dphia * 38. + 0.025 * 22;
97const Double_t phib23OfActiveVolume = dphia * 39. + 0.025 * 22;
98
99const Double_t phia24OfActiveVolume = dphia * 39. + 0.025 * 23;
100const Double_t phib24OfActiveVolume = dphia * 40. + 0.025 * 23;
101
102const Double_t phia25OfActiveVolume = dphia * 40. + 0.025 * 24;
103const Double_t phib25OfActiveVolume = dphia * 41. + 0.025 * 24;
104
105const Double_t phia26OfActiveVolume = dphia * 41. + 0.025 * 25;
106const Double_t phib26OfActiveVolume = dphia * 42. + 0.025 * 25;
107
108const Double_t phia27OfActiveVolume = dphia * 42. + 0.025 * 26;
109const Double_t phib27OfActiveVolume = dphia * 43. + 0.025 * 26;
110
111const Double_t phia28OfActiveVolume = dphia * 43. + 0.025 * 27;
112const Double_t phib28OfActiveVolume = dphia * 44. + 0.025 * 27;
113
114const Double_t phia29OfActiveVolume = dphia * 44. + 0.025 * 28;
115const Double_t phib29OfActiveVolume = dphia * 45. + 0.025 * 28;
116
117const Double_t phia30OfActiveVolume = dphia * 45. + 0.025 * 29;
118const Double_t phib30OfActiveVolume = dphia * 46. + 0.025 * 29;
119
120const Double_t phia31OfActiveVolume = dphia * 46. + 0.025 * 30;
121const Double_t phib31OfActiveVolume = dphia * 47. + 0.025 * 30;
122
123const Double_t phia32OfActiveVolume = dphia * 47. + 0.025 * 31;
124const Double_t phib32OfActiveVolume = dphia * 48. + 0.025 * 31;
125
126const Double_t phia33OfActiveVolume = dphia * 48. + 0.025 * 32;
127const Double_t phib33OfActiveVolume = dphia * 49. + 0.025 * 32;
128
129const Double_t phia34OfActiveVolume = dphia * 49. + 0.025 * 33;
130const Double_t phib34OfActiveVolume = dphia * 50. + 0.025 * 33;
131
132const Double_t phia35OfActiveVolume = dphia * 50. + 0.025 * 34;
133const Double_t phib35OfActiveVolume = dphia * 51. + 0.025 * 34;
134
135const Double_t phia36OfActiveVolume = dphia * 51. + 0.025 * 35;
136const Double_t phib36OfActiveVolume = dphia * 52. + 0.025 * 35;
137
138const Double_t phia37OfActiveVolume = dphia * 52. + 0.025 * 36;
139const Double_t phib37OfActiveVolume = dphia * 53. + 0.025 * 36;
140
141const Double_t phia38OfActiveVolume = dphia * 53. + 0.025 * 37;
142const Double_t phib38OfActiveVolume = dphia * 54. + 0.025 * 37;
143
144const Double_t phia39OfActiveVolume = dphia * 54. + 0.025 * 38;
145const Double_t phib39OfActiveVolume = dphia * 55. + 0.025 * 38;
146
147const Double_t phia40OfActiveVolume = dphia * 55. + 0.025 * 39;
148const Double_t phib40OfActiveVolume = dphia * 56. + 0.025 * 39;
149
150const Double_t phia41OfActiveVolume = dphia * 56. + 0.025 * 40;
151const Double_t phib41OfActiveVolume = dphia * 57. + 0.025 * 40;
152
153const Double_t phia42OfActiveVolume = dphia * 57. + 0.025 * 41;
154const Double_t phib42OfActiveVolume = dphia * 58. + 0.025 * 41;
155
156const Double_t phia43OfActiveVolume = dphia * 58. + 0.025 * 42;
157const Double_t phib43OfActiveVolume = dphia * 59. + 0.025 * 42;
158
159const Double_t phia44OfActiveVolume = dphia * 59. + 0.025 * 43;
160const Double_t phib44OfActiveVolume = dphia * 60. + 0.025 * 43;
161
162const Double_t phia45OfActiveVolume = dphia * 60. + 0.025 * 44;
163const Double_t phib45OfActiveVolume = dphia * 61. + 0.025 * 44;
164
165const Double_t phia46OfActiveVolume = dphia * 61. + 0.025 * 45;
166const Double_t phib46OfActiveVolume = dphia * 62. + 0.025 * 45;
167
168const Double_t phia47OfActiveVolume = dphia * 62. + 0.025 * 46;
169const Double_t phib47OfActiveVolume = dphia * 63. + 0.025 * 46;
170
171const Double_t phia48OfActiveVolume = dphia * 63. + 0.025 * 47;
172const Double_t phib48OfActiveVolume = dphia * 64. + 0.025 * 47;
173
174const Double_t phia49OfActiveVolume = dphia * 64. + 0.025 * 48;
175const Double_t phib49OfActiveVolume = dphia * 1. + 0.025 * 48;
176
177const Double_t phia50OfActiveVolume = dphia * 1. + 0.025 * 49;
178const Double_t phib50OfActiveVolume = dphia * 2. + 0.025 * 49;
179
180const Double_t phia51OfActiveVolume = dphia * 2. + 0.025 * 50;
181const Double_t phib51OfActiveVolume = dphia * 3. + 0.025 * 50;
182
183const Double_t phia52OfActiveVolume = dphia * 3. + 0.025 * 51;
184const Double_t phib52OfActiveVolume = dphia * 4. + 0.025 * 51;
185
186const Double_t phia53OfActiveVolume = dphia * 4. + 0.025 * 52;
187const Double_t phib53OfActiveVolume = dphia * 5. + 0.025 * 52;
188
189const Double_t phia54OfActiveVolume = dphia * 5. + 0.025 * 53;
190const Double_t phib54OfActiveVolume = dphia * 6. + 0.025 * 53;
191
192const Double_t phia55OfActiveVolume = dphia * 6. + 0.025 * 54;
193const Double_t phib55OfActiveVolume = dphia * 7. + 0.025 * 54;
194
195const Double_t phia56OfActiveVolume = dphia * 7. + 0.025 * 55;
196const Double_t phib56OfActiveVolume = dphia * 8. + 0.025 * 55;
197
198const Double_t phia57OfActiveVolume = dphia * 8. + 0.025 * 56;
199const Double_t phib57OfActiveVolume = dphia * 9. + 0.025 * 56;
200
201const Double_t phia58OfActiveVolume = dphia * 9. + 0.025 * 57;
202const Double_t phib58OfActiveVolume = dphia * 10. + 0.025 * 57;
203
204const Double_t phia59OfActiveVolume = dphia * 10. + 0.025 * 58;
205const Double_t phib59OfActiveVolume = dphia * 11. + 0.025 * 58;
206
207const Double_t phia60OfActiveVolume = dphia * 11. + 0.025 * 59;
208const Double_t phib60OfActiveVolume = dphia * 12. + 0.025 * 59;
209
210const Double_t phia61OfActiveVolume = dphia * 12. + 0.025 * 60;
211const Double_t phib61OfActiveVolume = dphia * 13. + 0.025 * 60;
212
213const Double_t phia62OfActiveVolume = dphia * 13. + 0.025 * 61;
214const Double_t phib62OfActiveVolume = dphia * 14. + 0.025 * 61;
215
216const Double_t phia63OfActiveVolume = dphia * 14. + 0.025 * 62;
217const Double_t phib63OfActiveVolume = dphia * 15. + 0.025 * 62;
218
219const Double_t phia64OfActiveVolume = dphia * 15. + 0.025 * 63;
220const Double_t phib64OfActiveVolume = dphia * 16. + 0.025 * 63;
221
223{
224 // ------- Load media from media file -----------------------------------
225 FairGeoLoader* geoLoad = new FairGeoLoader("TGeo", "FairGeoLoader");
226 FairGeoInterface* geoFace = geoLoad->getGeoInterface();
227 TString geoPath = gSystem->Getenv("VMCWORKDIR");
228 TString medFile = geoPath + "/geometry/media.geo";
229 geoFace->setMediaFile(medFile);
230 geoFace->readMedia();
232 // --------------------------------------------------------------------------
233
234 // ------- Geometry file name (output) ----------------------------------
235 const TString geoDetectorName = "FD";
236 const TString geoDetectorVersion = "v10";
237 TString geoFileName = geoPath + "/geometry/" + geoDetectorName + "_" + geoDetectorVersion + ".root";
238 // --------------------------------------------------------------------------
239
240 // ----------------- Get and create the required media -----------------
241 FairGeoMedia* geoMedia = geoFace->getMedia();
242 FairGeoBuilder* geoBuild = geoLoad->getGeoBuilder();
243
244 FairGeoMedium* mAir = geoMedia->getMedium("air");
245 if (!mAir)
246 Fatal("Main", "FairMedium air not found");
247 geoBuild->createMedium(mAir);
248 TGeoMedium* pMedAir = gGeoMan->GetMedium("air");
249 if (!pMedAir)
250 Fatal("Main", "Medium air not found");
251
252 FairGeoMedium* msilicon = geoMedia->getMedium("silicon");
253 if (!msilicon)
254 Fatal("Main", "FairMedium silicon not found");
255 geoBuild->createMedium(msilicon);
256 TGeoMedium* pMedsilicon = gGeoMan->GetMedium("silicon");
257 if (!pMedsilicon)
258 Fatal("Main", "Medium silicon not found");
259
260 // --------------------------------------------------------------------------
261
262 // -------------- Create geometry and top volume -------------------------
263 gGeoMan = (TGeoManager*)gROOT->FindObject("FAIRGeom");
264 gGeoMan->SetName(geoDetectorName + "_geom");
265 TGeoVolume* top = new TGeoVolumeAssembly("TOP");
266 top->SetMedium(pMedAir);
267 gGeoMan->SetTopVolume(top);
268 // gGeoMan->SetTopVisible(1);
269 // --------------------------------------------------------------------------
270
271 // Define TOP Geometry
272 TGeoVolume* SIDTop = new TGeoVolumeAssembly(geoDetectorName);
273 SIDTop->SetMedium(pMedAir);
274
275 // Transformations (translations, rotations and scales)
276 TGeoTranslation* SIDPos_trans = new TGeoTranslation("DetPos_trans", SID_Xpos, SID_Ypos, SID_Zpos);
277
278 TGeoTubeSeg* SIDActiveVolumeS1 =
281 TGeoTubeSeg* SIDActiveVolumeS2 =
284 TGeoTubeSeg* SIDActiveVolumeS3 =
287 TGeoTubeSeg* SIDActiveVolumeS4 =
290 TGeoTubeSeg* SIDActiveVolumeS5 =
293 TGeoTubeSeg* SIDActiveVolumeS6 =
296 TGeoTubeSeg* SIDActiveVolumeS7 =
299 TGeoTubeSeg* SIDActiveVolumeS8 =
302 TGeoTubeSeg* SIDActiveVolumeS9 =
305 TGeoTubeSeg* SIDActiveVolumeS10 =
308 TGeoTubeSeg* SIDActiveVolumeS11 =
311 TGeoTubeSeg* SIDActiveVolumeS12 =
314 TGeoTubeSeg* SIDActiveVolumeS13 =
317 TGeoTubeSeg* SIDActiveVolumeS14 =
320 TGeoTubeSeg* SIDActiveVolumeS15 =
323 TGeoTubeSeg* SIDActiveVolumeS16 =
326 TGeoTubeSeg* SIDActiveVolumeS17 =
329 TGeoTubeSeg* SIDActiveVolumeS18 =
332 TGeoTubeSeg* SIDActiveVolumeS19 =
335 TGeoTubeSeg* SIDActiveVolumeS20 =
338 TGeoTubeSeg* SIDActiveVolumeS21 =
341 TGeoTubeSeg* SIDActiveVolumeS22 =
344 TGeoTubeSeg* SIDActiveVolumeS23 =
347 TGeoTubeSeg* SIDActiveVolumeS24 =
350 TGeoTubeSeg* SIDActiveVolumeS25 =
353 TGeoTubeSeg* SIDActiveVolumeS26 =
356 TGeoTubeSeg* SIDActiveVolumeS27 =
359 TGeoTubeSeg* SIDActiveVolumeS28 =
362 TGeoTubeSeg* SIDActiveVolumeS29 =
365 TGeoTubeSeg* SIDActiveVolumeS30 =
368 TGeoTubeSeg* SIDActiveVolumeS31 =
371 TGeoTubeSeg* SIDActiveVolumeS32 =
374 TGeoTubeSeg* SIDActiveVolumeS33 =
377 TGeoTubeSeg* SIDActiveVolumeS34 =
380 TGeoTubeSeg* SIDActiveVolumeS35 =
383 TGeoTubeSeg* SIDActiveVolumeS36 =
386 TGeoTubeSeg* SIDActiveVolumeS37 =
389 TGeoTubeSeg* SIDActiveVolumeS38 =
392 TGeoTubeSeg* SIDActiveVolumeS39 =
395 TGeoTubeSeg* SIDActiveVolumeS40 =
398 TGeoTubeSeg* SIDActiveVolumeS41 =
401 TGeoTubeSeg* SIDActiveVolumeS42 =
404 TGeoTubeSeg* SIDActiveVolumeS43 =
407 TGeoTubeSeg* SIDActiveVolumeS44 =
410 TGeoTubeSeg* SIDActiveVolumeS45 =
413 TGeoTubeSeg* SIDActiveVolumeS46 =
416 TGeoTubeSeg* SIDActiveVolumeS47 =
419 TGeoTubeSeg* SIDActiveVolumeS48 =
422 TGeoTubeSeg* SIDActiveVolumeS49 =
425 TGeoTubeSeg* SIDActiveVolumeS50 =
428 TGeoTubeSeg* SIDActiveVolumeS51 =
431 TGeoTubeSeg* SIDActiveVolumeS52 =
434 TGeoTubeSeg* SIDActiveVolumeS53 =
437 TGeoTubeSeg* SIDActiveVolumeS54 =
440 TGeoTubeSeg* SIDActiveVolumeS55 =
443 TGeoTubeSeg* SIDActiveVolumeS56 =
446 TGeoTubeSeg* SIDActiveVolumeS57 =
449 TGeoTubeSeg* SIDActiveVolumeS58 =
452 TGeoTubeSeg* SIDActiveVolumeS59 =
455 TGeoTubeSeg* SIDActiveVolumeS60 =
458 TGeoTubeSeg* SIDActiveVolumeS61 =
461 TGeoTubeSeg* SIDActiveVolumeS62 =
464 TGeoTubeSeg* SIDActiveVolumeS63 =
467 TGeoTubeSeg* SIDActiveVolumeS64 =
470
471 TGeoVolume* SIDActiveVolumeV1 = new TGeoVolume("SIDActiveVolumeV1", SIDActiveVolumeS1);
472 SIDActiveVolumeV1->SetMedium(pMedsilicon);
473 SIDActiveVolumeV1->SetLineColor(kRed);
474
475 TGeoVolume* SIDActiveVolumeV2 = new TGeoVolume("SIDActiveVolumeV2", SIDActiveVolumeS2);
476 SIDActiveVolumeV2->SetMedium(pMedsilicon);
477 SIDActiveVolumeV2->SetLineColor(kRed);
478
479 TGeoVolume* SIDActiveVolumeV3 = new TGeoVolume("SIDActiveVolumeV3", SIDActiveVolumeS3);
480 SIDActiveVolumeV3->SetMedium(pMedsilicon);
481 SIDActiveVolumeV3->SetLineColor(kRed);
482
483 TGeoVolume* SIDActiveVolumeV4 = new TGeoVolume("SIDActiveVolumeV4", SIDActiveVolumeS4);
484 SIDActiveVolumeV4->SetMedium(pMedsilicon);
485 SIDActiveVolumeV4->SetLineColor(kRed);
486
487 TGeoVolume* SIDActiveVolumeV5 = new TGeoVolume("SIDActiveVolumeV5", SIDActiveVolumeS5);
488 SIDActiveVolumeV5->SetMedium(pMedsilicon);
489 SIDActiveVolumeV5->SetLineColor(kRed);
490
491 TGeoVolume* SIDActiveVolumeV6 = new TGeoVolume("SIDActiveVolumeV6", SIDActiveVolumeS6);
492 SIDActiveVolumeV6->SetMedium(pMedsilicon);
493 SIDActiveVolumeV6->SetLineColor(kRed);
494
495 TGeoVolume* SIDActiveVolumeV7 = new TGeoVolume("SIDActiveVolumeV7", SIDActiveVolumeS7);
496 SIDActiveVolumeV7->SetMedium(pMedsilicon);
497 SIDActiveVolumeV7->SetLineColor(kRed);
498
499 TGeoVolume* SIDActiveVolumeV8 = new TGeoVolume("SIDActiveVolumeV8", SIDActiveVolumeS8);
500 SIDActiveVolumeV8->SetMedium(pMedsilicon);
501 SIDActiveVolumeV8->SetLineColor(kRed);
502
503 TGeoVolume* SIDActiveVolumeV9 = new TGeoVolume("SIDActiveVolumeV9", SIDActiveVolumeS9);
504 SIDActiveVolumeV9->SetMedium(pMedsilicon);
505 SIDActiveVolumeV9->SetLineColor(kRed);
506
507 TGeoVolume* SIDActiveVolumeV10 = new TGeoVolume("SIDActiveVolumeV10", SIDActiveVolumeS10);
508 SIDActiveVolumeV10->SetMedium(pMedsilicon);
509 SIDActiveVolumeV10->SetLineColor(kRed);
510
511 TGeoVolume* SIDActiveVolumeV11 = new TGeoVolume("SIDActiveVolumeV11", SIDActiveVolumeS11);
512 SIDActiveVolumeV11->SetMedium(pMedsilicon);
513 SIDActiveVolumeV11->SetLineColor(kRed);
514
515 TGeoVolume* SIDActiveVolumeV12 = new TGeoVolume("SIDActiveVolumeV12", SIDActiveVolumeS12);
516 SIDActiveVolumeV12->SetMedium(pMedsilicon);
517 SIDActiveVolumeV12->SetLineColor(kRed);
518
519 TGeoVolume* SIDActiveVolumeV13 = new TGeoVolume("SIDActiveVolumeV13", SIDActiveVolumeS13);
520 SIDActiveVolumeV13->SetMedium(pMedsilicon);
521 SIDActiveVolumeV13->SetLineColor(kRed);
522
523 TGeoVolume* SIDActiveVolumeV14 = new TGeoVolume("SIDActiveVolumeV14", SIDActiveVolumeS14);
524 SIDActiveVolumeV14->SetMedium(pMedsilicon);
525 SIDActiveVolumeV14->SetLineColor(kRed);
526
527 TGeoVolume* SIDActiveVolumeV15 = new TGeoVolume("SIDActiveVolumeV15", SIDActiveVolumeS15);
528 SIDActiveVolumeV15->SetMedium(pMedsilicon);
529 SIDActiveVolumeV15->SetLineColor(kRed);
530
531 TGeoVolume* SIDActiveVolumeV16 = new TGeoVolume("SIDActiveVolumeV16", SIDActiveVolumeS16);
532 SIDActiveVolumeV16->SetMedium(pMedsilicon);
533 SIDActiveVolumeV16->SetLineColor(kRed);
534
535 TGeoVolume* SIDActiveVolumeV17 = new TGeoVolume("SIDActiveVolumeV17", SIDActiveVolumeS17);
536 SIDActiveVolumeV17->SetMedium(pMedsilicon);
537 SIDActiveVolumeV17->SetLineColor(kRed);
538
539 TGeoVolume* SIDActiveVolumeV18 = new TGeoVolume("SIDActiveVolumeV18", SIDActiveVolumeS18);
540 SIDActiveVolumeV18->SetMedium(pMedsilicon);
541 SIDActiveVolumeV18->SetLineColor(kRed);
542
543 TGeoVolume* SIDActiveVolumeV19 = new TGeoVolume("SIDActiveVolumeV19", SIDActiveVolumeS19);
544 SIDActiveVolumeV19->SetMedium(pMedsilicon);
545 SIDActiveVolumeV19->SetLineColor(kRed);
546
547 TGeoVolume* SIDActiveVolumeV20 = new TGeoVolume("SIDActiveVolumeV20", SIDActiveVolumeS20);
548 SIDActiveVolumeV20->SetMedium(pMedsilicon);
549 SIDActiveVolumeV20->SetLineColor(kRed);
550
551 TGeoVolume* SIDActiveVolumeV21 = new TGeoVolume("SIDActiveVolumeV21", SIDActiveVolumeS21);
552 SIDActiveVolumeV21->SetMedium(pMedsilicon);
553 SIDActiveVolumeV21->SetLineColor(kRed);
554
555 TGeoVolume* SIDActiveVolumeV22 = new TGeoVolume("SIDActiveVolumeV22", SIDActiveVolumeS22);
556 SIDActiveVolumeV22->SetMedium(pMedsilicon);
557 SIDActiveVolumeV22->SetLineColor(kRed);
558
559 TGeoVolume* SIDActiveVolumeV23 = new TGeoVolume("SIDActiveVolumeV23", SIDActiveVolumeS23);
560 SIDActiveVolumeV23->SetMedium(pMedsilicon);
561 SIDActiveVolumeV23->SetLineColor(kRed);
562
563 TGeoVolume* SIDActiveVolumeV24 = new TGeoVolume("SIDActiveVolumeV24", SIDActiveVolumeS24);
564 SIDActiveVolumeV24->SetMedium(pMedsilicon);
565 SIDActiveVolumeV24->SetLineColor(kRed);
566
567 TGeoVolume* SIDActiveVolumeV25 = new TGeoVolume("SIDActiveVolumeV25", SIDActiveVolumeS25);
568 SIDActiveVolumeV25->SetMedium(pMedsilicon);
569 SIDActiveVolumeV25->SetLineColor(kRed);
570
571 TGeoVolume* SIDActiveVolumeV26 = new TGeoVolume("SIDActiveVolumeV26", SIDActiveVolumeS26);
572 SIDActiveVolumeV26->SetMedium(pMedsilicon);
573 SIDActiveVolumeV26->SetLineColor(kRed);
574
575 TGeoVolume* SIDActiveVolumeV27 = new TGeoVolume("SIDActiveVolumeV27", SIDActiveVolumeS27);
576 SIDActiveVolumeV27->SetMedium(pMedsilicon);
577 SIDActiveVolumeV27->SetLineColor(kRed);
578
579 TGeoVolume* SIDActiveVolumeV28 = new TGeoVolume("SIDActiveVolumeV28", SIDActiveVolumeS28);
580 SIDActiveVolumeV28->SetMedium(pMedsilicon);
581 SIDActiveVolumeV28->SetLineColor(kRed);
582
583 TGeoVolume* SIDActiveVolumeV29 = new TGeoVolume("SIDActiveVolumeV29", SIDActiveVolumeS29);
584 SIDActiveVolumeV29->SetMedium(pMedsilicon);
585 SIDActiveVolumeV29->SetLineColor(kRed);
586
587 TGeoVolume* SIDActiveVolumeV30 = new TGeoVolume("SIDActiveVolumeV30", SIDActiveVolumeS30);
588 SIDActiveVolumeV30->SetMedium(pMedsilicon);
589 SIDActiveVolumeV30->SetLineColor(kRed);
590
591 TGeoVolume* SIDActiveVolumeV31 = new TGeoVolume("SIDActiveVolumeV31", SIDActiveVolumeS31);
592 SIDActiveVolumeV31->SetMedium(pMedsilicon);
593 SIDActiveVolumeV31->SetLineColor(kRed);
594
595 TGeoVolume* SIDActiveVolumeV32 = new TGeoVolume("SIDActiveVolumeV32", SIDActiveVolumeS32);
596 SIDActiveVolumeV32->SetMedium(pMedsilicon);
597 SIDActiveVolumeV32->SetLineColor(kRed);
598
599 TGeoVolume* SIDActiveVolumeV33 = new TGeoVolume("SIDActiveVolumeV33", SIDActiveVolumeS33);
600 SIDActiveVolumeV33->SetMedium(pMedsilicon);
601 SIDActiveVolumeV33->SetLineColor(kRed);
602
603 TGeoVolume* SIDActiveVolumeV34 = new TGeoVolume("SIDActiveVolumeV34", SIDActiveVolumeS34);
604 SIDActiveVolumeV34->SetMedium(pMedsilicon);
605 SIDActiveVolumeV34->SetLineColor(kRed);
606
607 TGeoVolume* SIDActiveVolumeV35 = new TGeoVolume("SIDActiveVolumeV35", SIDActiveVolumeS35);
608 SIDActiveVolumeV35->SetMedium(pMedsilicon);
609 SIDActiveVolumeV35->SetLineColor(kRed);
610
611 TGeoVolume* SIDActiveVolumeV36 = new TGeoVolume("SIDActiveVolumeV36", SIDActiveVolumeS36);
612 SIDActiveVolumeV36->SetMedium(pMedsilicon);
613 SIDActiveVolumeV36->SetLineColor(kRed);
614
615 TGeoVolume* SIDActiveVolumeV37 = new TGeoVolume("SIDActiveVolumeV37", SIDActiveVolumeS37);
616 SIDActiveVolumeV37->SetMedium(pMedsilicon);
617 SIDActiveVolumeV37->SetLineColor(kRed);
618
619 TGeoVolume* SIDActiveVolumeV38 = new TGeoVolume("SIDActiveVolumeV38", SIDActiveVolumeS38);
620 SIDActiveVolumeV38->SetMedium(pMedsilicon);
621 SIDActiveVolumeV38->SetLineColor(kRed);
622
623 TGeoVolume* SIDActiveVolumeV39 = new TGeoVolume("SIDActiveVolumeV39", SIDActiveVolumeS39);
624 SIDActiveVolumeV39->SetMedium(pMedsilicon);
625 SIDActiveVolumeV39->SetLineColor(kRed);
626
627 TGeoVolume* SIDActiveVolumeV40 = new TGeoVolume("SIDActiveVolumeV40", SIDActiveVolumeS40);
628 SIDActiveVolumeV40->SetMedium(pMedsilicon);
629 SIDActiveVolumeV40->SetLineColor(kRed);
630
631 TGeoVolume* SIDActiveVolumeV41 = new TGeoVolume("SIDActiveVolumeV41", SIDActiveVolumeS41);
632 SIDActiveVolumeV41->SetMedium(pMedsilicon);
633 SIDActiveVolumeV41->SetLineColor(kRed);
634
635 TGeoVolume* SIDActiveVolumeV42 = new TGeoVolume("SIDActiveVolumeV42", SIDActiveVolumeS42);
636 SIDActiveVolumeV42->SetMedium(pMedsilicon);
637 SIDActiveVolumeV42->SetLineColor(kRed);
638
639 TGeoVolume* SIDActiveVolumeV43 = new TGeoVolume("SIDActiveVolumeV43", SIDActiveVolumeS43);
640 SIDActiveVolumeV43->SetMedium(pMedsilicon);
641 SIDActiveVolumeV43->SetLineColor(kRed);
642
643 TGeoVolume* SIDActiveVolumeV44 = new TGeoVolume("SIDActiveVolumeV44", SIDActiveVolumeS44);
644 SIDActiveVolumeV44->SetMedium(pMedsilicon);
645 SIDActiveVolumeV44->SetLineColor(kRed);
646
647 TGeoVolume* SIDActiveVolumeV45 = new TGeoVolume("SIDActiveVolumeV45", SIDActiveVolumeS45);
648 SIDActiveVolumeV45->SetMedium(pMedsilicon);
649 SIDActiveVolumeV45->SetLineColor(kRed);
650
651 TGeoVolume* SIDActiveVolumeV46 = new TGeoVolume("SIDActiveVolumeV46", SIDActiveVolumeS46);
652 SIDActiveVolumeV46->SetMedium(pMedsilicon);
653 SIDActiveVolumeV46->SetLineColor(kRed);
654
655 TGeoVolume* SIDActiveVolumeV47 = new TGeoVolume("SIDActiveVolumeV47", SIDActiveVolumeS47);
656 SIDActiveVolumeV47->SetMedium(pMedsilicon);
657 SIDActiveVolumeV47->SetLineColor(kRed);
658
659 TGeoVolume* SIDActiveVolumeV48 = new TGeoVolume("SIDActiveVolumeV48", SIDActiveVolumeS48);
660 SIDActiveVolumeV48->SetMedium(pMedsilicon);
661 SIDActiveVolumeV48->SetLineColor(kRed);
662
663 TGeoVolume* SIDActiveVolumeV49 = new TGeoVolume("SIDActiveVolumeV49", SIDActiveVolumeS49);
664 SIDActiveVolumeV49->SetMedium(pMedsilicon);
665 SIDActiveVolumeV49->SetLineColor(kRed);
666
667 TGeoVolume* SIDActiveVolumeV50 = new TGeoVolume("SIDActiveVolumeV50", SIDActiveVolumeS50);
668 SIDActiveVolumeV50->SetMedium(pMedsilicon);
669 SIDActiveVolumeV50->SetLineColor(kRed);
670
671 TGeoVolume* SIDActiveVolumeV51 = new TGeoVolume("SIDActiveVolumeV51", SIDActiveVolumeS51);
672 SIDActiveVolumeV51->SetMedium(pMedsilicon);
673 SIDActiveVolumeV51->SetLineColor(kRed);
674
675 TGeoVolume* SIDActiveVolumeV52 = new TGeoVolume("SIDActiveVolumeV52", SIDActiveVolumeS52);
676 SIDActiveVolumeV52->SetMedium(pMedsilicon);
677 SIDActiveVolumeV52->SetLineColor(kRed);
678
679 TGeoVolume* SIDActiveVolumeV53 = new TGeoVolume("SIDActiveVolumeV53", SIDActiveVolumeS53);
680 SIDActiveVolumeV53->SetMedium(pMedsilicon);
681 SIDActiveVolumeV53->SetLineColor(kRed);
682
683 TGeoVolume* SIDActiveVolumeV54 = new TGeoVolume("SIDActiveVolumeV54", SIDActiveVolumeS54);
684 SIDActiveVolumeV54->SetMedium(pMedsilicon);
685 SIDActiveVolumeV54->SetLineColor(kRed);
686
687 TGeoVolume* SIDActiveVolumeV55 = new TGeoVolume("SIDActiveVolumeV55", SIDActiveVolumeS55);
688 SIDActiveVolumeV55->SetMedium(pMedsilicon);
689 SIDActiveVolumeV55->SetLineColor(kRed);
690
691 TGeoVolume* SIDActiveVolumeV56 = new TGeoVolume("SIDActiveVolumeV56", SIDActiveVolumeS56);
692 SIDActiveVolumeV56->SetMedium(pMedsilicon);
693 SIDActiveVolumeV56->SetLineColor(kRed);
694
695 TGeoVolume* SIDActiveVolumeV57 = new TGeoVolume("SIDActiveVolumeV57", SIDActiveVolumeS57);
696 SIDActiveVolumeV57->SetMedium(pMedsilicon);
697 SIDActiveVolumeV57->SetLineColor(kRed);
698
699 TGeoVolume* SIDActiveVolumeV58 = new TGeoVolume("SIDActiveVolumeV58", SIDActiveVolumeS58);
700 SIDActiveVolumeV58->SetMedium(pMedsilicon);
701 SIDActiveVolumeV58->SetLineColor(kRed);
702
703 TGeoVolume* SIDActiveVolumeV59 = new TGeoVolume("SIDActiveVolumeV59", SIDActiveVolumeS59);
704 SIDActiveVolumeV59->SetMedium(pMedsilicon);
705 SIDActiveVolumeV59->SetLineColor(kRed);
706
707 TGeoVolume* SIDActiveVolumeV60 = new TGeoVolume("SIDActiveVolumeV60", SIDActiveVolumeS60);
708 SIDActiveVolumeV60->SetMedium(pMedsilicon);
709 SIDActiveVolumeV60->SetLineColor(kRed);
710
711 TGeoVolume* SIDActiveVolumeV61 = new TGeoVolume("SIDActiveVolumeV61", SIDActiveVolumeS61);
712 SIDActiveVolumeV61->SetMedium(pMedsilicon);
713 SIDActiveVolumeV61->SetLineColor(kRed);
714
715 TGeoVolume* SIDActiveVolumeV62 = new TGeoVolume("SIDActiveVolumeV62", SIDActiveVolumeS62);
716 SIDActiveVolumeV62->SetMedium(pMedsilicon);
717 SIDActiveVolumeV62->SetLineColor(kRed);
718
719 TGeoVolume* SIDActiveVolumeV63 = new TGeoVolume("SIDActiveVolumeV63", SIDActiveVolumeS63);
720 SIDActiveVolumeV63->SetMedium(pMedsilicon);
721 SIDActiveVolumeV63->SetLineColor(kRed);
722
723 TGeoVolume* SIDActiveVolumeV64 = new TGeoVolume("SIDActiveVolumeV64", SIDActiveVolumeS64);
724 SIDActiveVolumeV64->SetMedium(pMedsilicon);
725 SIDActiveVolumeV64->SetLineColor(kRed);
726
727 // Adding volumes to the TOP Volume
728 top->AddNode(SIDTop, 1, SIDPos_trans);
729
730 SIDTop->AddNode(SIDActiveVolumeV1, 1);
731 SIDTop->AddNode(SIDActiveVolumeV2, 2);
732 SIDTop->AddNode(SIDActiveVolumeV3, 3);
733 SIDTop->AddNode(SIDActiveVolumeV4, 4);
734 SIDTop->AddNode(SIDActiveVolumeV5, 5);
735 SIDTop->AddNode(SIDActiveVolumeV6, 6);
736 SIDTop->AddNode(SIDActiveVolumeV7, 7);
737 SIDTop->AddNode(SIDActiveVolumeV8, 8);
738 SIDTop->AddNode(SIDActiveVolumeV9, 9);
739 SIDTop->AddNode(SIDActiveVolumeV10, 10);
740 SIDTop->AddNode(SIDActiveVolumeV11, 11);
741 SIDTop->AddNode(SIDActiveVolumeV12, 12);
742 SIDTop->AddNode(SIDActiveVolumeV13, 13);
743 SIDTop->AddNode(SIDActiveVolumeV14, 14);
744 SIDTop->AddNode(SIDActiveVolumeV15, 15);
745 SIDTop->AddNode(SIDActiveVolumeV16, 16);
746 SIDTop->AddNode(SIDActiveVolumeV17, 17);
747 SIDTop->AddNode(SIDActiveVolumeV18, 18);
748 SIDTop->AddNode(SIDActiveVolumeV19, 19);
749 SIDTop->AddNode(SIDActiveVolumeV20, 20);
750 SIDTop->AddNode(SIDActiveVolumeV21, 21);
751 SIDTop->AddNode(SIDActiveVolumeV22, 22);
752 SIDTop->AddNode(SIDActiveVolumeV23, 23);
753 SIDTop->AddNode(SIDActiveVolumeV24, 24);
754 SIDTop->AddNode(SIDActiveVolumeV25, 25);
755 SIDTop->AddNode(SIDActiveVolumeV26, 26);
756 SIDTop->AddNode(SIDActiveVolumeV27, 27);
757 SIDTop->AddNode(SIDActiveVolumeV28, 28);
758 SIDTop->AddNode(SIDActiveVolumeV29, 29);
759 SIDTop->AddNode(SIDActiveVolumeV30, 30);
760 SIDTop->AddNode(SIDActiveVolumeV31, 31);
761 SIDTop->AddNode(SIDActiveVolumeV32, 32);
762 SIDTop->AddNode(SIDActiveVolumeV33, 33);
763 SIDTop->AddNode(SIDActiveVolumeV34, 34);
764 SIDTop->AddNode(SIDActiveVolumeV35, 35);
765 SIDTop->AddNode(SIDActiveVolumeV36, 36);
766 SIDTop->AddNode(SIDActiveVolumeV37, 37);
767 SIDTop->AddNode(SIDActiveVolumeV38, 38);
768 SIDTop->AddNode(SIDActiveVolumeV39, 39);
769 SIDTop->AddNode(SIDActiveVolumeV40, 40);
770 SIDTop->AddNode(SIDActiveVolumeV41, 41);
771 SIDTop->AddNode(SIDActiveVolumeV42, 42);
772 SIDTop->AddNode(SIDActiveVolumeV43, 43);
773 SIDTop->AddNode(SIDActiveVolumeV44, 44);
774 SIDTop->AddNode(SIDActiveVolumeV45, 45);
775 SIDTop->AddNode(SIDActiveVolumeV46, 46);
776 SIDTop->AddNode(SIDActiveVolumeV47, 47);
777 SIDTop->AddNode(SIDActiveVolumeV48, 48);
778 SIDTop->AddNode(SIDActiveVolumeV49, 49);
779 SIDTop->AddNode(SIDActiveVolumeV50, 50);
780 SIDTop->AddNode(SIDActiveVolumeV51, 51);
781 SIDTop->AddNode(SIDActiveVolumeV52, 52);
782 SIDTop->AddNode(SIDActiveVolumeV53, 53);
783 SIDTop->AddNode(SIDActiveVolumeV54, 54);
784 SIDTop->AddNode(SIDActiveVolumeV55, 55);
785 SIDTop->AddNode(SIDActiveVolumeV56, 56);
786 SIDTop->AddNode(SIDActiveVolumeV57, 57);
787 SIDTop->AddNode(SIDActiveVolumeV58, 58);
788 SIDTop->AddNode(SIDActiveVolumeV59, 59);
789 SIDTop->AddNode(SIDActiveVolumeV60, 60);
790 SIDTop->AddNode(SIDActiveVolumeV61, 61);
791 SIDTop->AddNode(SIDActiveVolumeV62, 62);
792 SIDTop->AddNode(SIDActiveVolumeV63, 63);
793 SIDTop->AddNode(SIDActiveVolumeV64, 64);
794
796
797 // --------------- Finish -----------------------------------------------
798 gGeoMan->CloseGeometry();
799 gGeoMan->CheckOverlaps(0.001);
800 gGeoMan->PrintOverlaps();
801 gGeoMan->Test();
802
803 TFile* geoFile = new TFile(geoFileName, "RECREATE");
804 top->Write();
805 geoFile->Close();
806 top->Draw("ogl");
807 // top->Draw("");
808}
double Double_t
constexpr Bool_t kTRUE
#define R__ADD_INCLUDE_PATH(PATH)
kRed
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 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 Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
const Double_t MaxRadiusOfActiveVolume
const Double_t MinRadiusOfActiveVolume
TGeoManager * gGeoMan
const Double_t phia29OfActiveVolume
const Double_t phia4OfActiveVolume
const Double_t phib15OfActiveVolume
const Double_t phia28OfActiveVolume
const Double_t phib51OfActiveVolume
const Double_t phib12OfActiveVolume
const Double_t phia57OfActiveVolume
const Double_t phia24OfActiveVolume
const Double_t phia38OfActiveVolume
const Double_t phib49OfActiveVolume
const Double_t phib17OfActiveVolume
const Double_t phia36OfActiveVolume
const Double_t phib21OfActiveVolume
const Double_t phia63OfActiveVolume
const Double_t phib48OfActiveVolume
const Double_t phia42OfActiveVolume
const Double_t phia41OfActiveVolume
const Double_t phia5OfActiveVolume
const Double_t phia26OfActiveVolume
const Double_t phib62OfActiveVolume
const Double_t phib1OfActiveVolume
const Double_t phia1OfActiveVolume
const Double_t phib39OfActiveVolume
const Double_t phia59OfActiveVolume
const Double_t phib57OfActiveVolume
const Double_t phia21OfActiveVolume
const Double_t phib24OfActiveVolume
const Double_t phia46OfActiveVolume
const Double_t phia31OfActiveVolume
const Double_t phia35OfActiveVolume
const Double_t phib36OfActiveVolume
const Double_t phia3OfActiveVolume
const Double_t phib45OfActiveVolume
const Double_t phia10OfActiveVolume
const Double_t phib52OfActiveVolume
const Double_t phia18OfActiveVolume
const Double_t phib31OfActiveVolume
const Double_t phia11OfActiveVolume
const Double_t phia62OfActiveVolume
const Double_t phia30OfActiveVolume
const Double_t phib38OfActiveVolume
const Double_t phia7OfActiveVolume
const Double_t phia44OfActiveVolume
const Double_t phib25OfActiveVolume
const Double_t phia14OfActiveVolume
const Double_t phib34OfActiveVolume
const Double_t phib10OfActiveVolume
const Double_t phia50OfActiveVolume
const Double_t phia13OfActiveVolume
const Double_t ZLength_SIDActiveVolume
const Double_t phib3OfActiveVolume
const Double_t phia25OfActiveVolume
const Double_t phib9OfActiveVolume
const Double_t phib16OfActiveVolume
const Double_t phib5OfActiveVolume
const Double_t phib40OfActiveVolume
const Double_t phia2OfActiveVolume
const Double_t phib8OfActiveVolume
const Double_t phib29OfActiveVolume
const Double_t phia15OfActiveVolume
const Double_t phia43OfActiveVolume
const Double_t phib14OfActiveVolume
const Double_t phib6OfActiveVolume
const Double_t phia20OfActiveVolume
const Double_t phia54OfActiveVolume
const Double_t phib46OfActiveVolume
const Double_t phia34OfActiveVolume
void create_fd_root_v10()
const Double_t phib30OfActiveVolume
const Double_t phia47OfActiveVolume
const Double_t phia23OfActiveVolume
const Double_t phib13OfActiveVolume
const Double_t phib27OfActiveVolume
const Double_t phia53OfActiveVolume
const Double_t phib50OfActiveVolume
const Double_t phib33OfActiveVolume
const Double_t phib53OfActiveVolume
const Double_t phia8OfActiveVolume
const Double_t phib58OfActiveVolume
const Double_t phia49OfActiveVolume
const Double_t phia58OfActiveVolume
const Double_t phib32OfActiveVolume
const Double_t phib55OfActiveVolume
const Double_t phib2OfActiveVolume
const Double_t phib42OfActiveVolume
const Double_t phia32OfActiveVolume
const Double_t phib35OfActiveVolume
const Double_t phib43OfActiveVolume
const Double_t phia64OfActiveVolume
const Double_t phia55OfActiveVolume
const Double_t phib19OfActiveVolume
const Double_t phia6OfActiveVolume
const Double_t phib47OfActiveVolume
const Double_t phib22OfActiveVolume
const Double_t phia39OfActiveVolume
const Double_t phib18OfActiveVolume
const Double_t phib20OfActiveVolume
const Double_t phib61OfActiveVolume
const Double_t dphia
const Double_t phib11OfActiveVolume
const Double_t phia17OfActiveVolume
const Double_t phia45OfActiveVolume
const Double_t phia52OfActiveVolume
const Double_t phib44OfActiveVolume
const Double_t phib64OfActiveVolume
const Double_t SID_Zpos
const Double_t phib60OfActiveVolume
const Double_t phia48OfActiveVolume
const Double_t phib7OfActiveVolume
const Double_t phia60OfActiveVolume
const Double_t SID_Ypos
const Double_t SID_Xpos
const Double_t phia19OfActiveVolume
const Double_t phia12OfActiveVolume
const Double_t phib59OfActiveVolume
const Double_t phib56OfActiveVolume
const Double_t phib23OfActiveVolume
const Double_t phib54OfActiveVolume
const Double_t phia16OfActiveVolume
const Double_t phib37OfActiveVolume
const Double_t phia51OfActiveVolume
const Double_t phia37OfActiveVolume
const Double_t phia61OfActiveVolume
const Double_t phia33OfActiveVolume
const Double_t phia22OfActiveVolume
const Double_t phib41OfActiveVolume
const Double_t phia9OfActiveVolume
const Double_t phia40OfActiveVolume
const Double_t phib28OfActiveVolume
const Double_t phib4OfActiveVolume
const Double_t phib63OfActiveVolume
const Double_t phia27OfActiveVolume
const Double_t phib26OfActiveVolume
const Double_t phia56OfActiveVolume