ROOT
master
Reference Guide
station1.C
Go to the documentation of this file.
1
/// \file
2
/// \ingroup tutorial_geom
3
/// Drawing a space station, using ROOT geometry class.
4
///
5
/// Reviewed by Sunman Kim (sunman98@hanmail.net)
6
/// Supervisor: Prof. Inkyu Park (icpark@physics.uos.ac.kr)
7
///
8
/// How to run: `.x station1.C` in ROOT terminal, then use OpenGL
9
///
10
/// This macro was created for the evaluation of Computational Physics course in 2006.
11
/// We thank to Prof. Inkyu Park for his special lecture on ROOT and to all of ROOT team
12
///
13
/// \image html geom_station1.png width=800px
14
/// \macro_code
15
///
16
/// \author Chang Yeol Lee, Dept. of Physics, Univ. of Seoul
17
18
#include "
TGeoManager.h
"
19
20
void
station1()
21
{
22
23
24
TGeoManager
*geom=
new
TGeoManager
(
"geom"
,
"My first 3D geometry"
);
25
26
TGeoMaterial
*vacuum=
new
TGeoMaterial
(
"vacuum"
,0,0,0);
27
TGeoMaterial
*Fe=
new
TGeoMaterial
(
"Fe"
,55.845,26,7.87);
28
TGeoMaterial
*Cu=
new
TGeoMaterial
(
"Cu"
,63.549,29,8.92);
29
30
TGeoMedium
*Air=
new
TGeoMedium
(
"Vacuum"
,0,vacuum);
31
TGeoMedium
*Iron=
new
TGeoMedium
(
"Iron"
,1,Fe);
32
TGeoMedium
*Copper=
new
TGeoMedium
(
"Copper"
,2,Cu);
33
34
TGeoVolume
*top=geom->
MakeBox
(
"top"
,Air,1000,1000,1000);
35
geom->
SetTopVolume
(top);
36
geom->
SetTopVisible
(0);
37
// If you want to see the boundary, please input the number, 1 instead of 0.
38
// Like this, geom->SetTopVisible(1);
39
40
41
42
TGeoVolume
*Cone1=geom->
MakeCone
(
"Cone1"
,Copper,650,0,20,0,20);
43
Cone1->
SetFillColor
(35);
44
Cone1->
SetLineColor
(35);
45
top->
AddNodeOverlap
(Cone1,1,
new
TGeoTranslation
(0,0,0));
46
47
TGeoVolume
*Cone2=geom->
MakeCone
(
"Cone2"
,Copper,25,0,30,0,30);
48
Cone2->
SetFillColor
(7);
49
Cone2->
SetLineColor
(7);
50
top->
AddNodeOverlap
(Cone2,1,
new
TGeoTranslation
(0,0,630));
51
52
TGeoVolume
*Cone21=geom->
MakeCone
(
"Cone21"
,Copper,30,0,30,0,30);
53
Cone21->
SetFillColor
(29);
54
Cone21->
SetLineColor
(29);
55
top->
AddNodeOverlap
(Cone21,1,
new
TGeoTranslation
(0,0,550));
56
57
TGeoVolume
*Cone22=geom->
MakeCone
(
"Cone22"
,Copper,5,0,50,0,50);
58
Cone22->
SetFillColor
(2);
59
Cone22->
SetLineColor
(2);
60
top->
AddNodeOverlap
(Cone22,1,
new
TGeoTranslation
(0,0,500));
61
62
for
(
int
i=0;i<28;i++){
63
TGeoVolume
*Cone00=geom->
MakeCone
(
"Cone00"
,Copper,3,0,25,0,25);
64
Cone00->
SetFillColor
(1);
65
Cone00->
SetLineColor
(1);
66
top->
AddNodeOverlap
(Cone00,1,
new
TGeoTranslation
(0,0,-100+20*i));
67
}
68
69
TGeoVolume
*Cone3=geom->
MakeCone
(
"Cone3"
,Copper,60,0,70,0,0);
70
Cone3->
SetFillColor
(13);
71
Cone3->
SetLineColor
(13);
72
top->
AddNodeOverlap
(Cone3,1,
new
TGeoTranslation
(-60,0,-110));
73
74
TGeoVolume
*Cone31=geom->
MakeCone
(
"Cone31"
,Copper,230,0,70,0,70);
75
Cone31->
SetFillColor
(13);
76
Cone31->
SetLineColor
(13);
77
top->
AddNodeOverlap
(Cone31,1,
new
TGeoTranslation
(-60,0,-400));
78
79
for
(
int
i=0;i<5;i++){
80
Cone31=geom->
MakeCone
(
"Cone31"
,Copper,7,0,73,0,73);
81
Cone31->
SetFillColor
(21);
82
Cone31->
SetLineColor
(21);
83
top->
AddNodeOverlap
(Cone31,1,
new
TGeoTranslation
(-60,0,-170-(500/6*(i+1))));
84
top->
AddNodeOverlap
(Cone31,1,
new
TGeoTranslation
(60,0,-170-(500/6*(i+1))));
85
top->
AddNodeOverlap
(Cone31,1,
new
TGeoTranslation
(0,-60,-170-(500/6*(i+1))));
86
top->
AddNodeOverlap
(Cone31,1,
new
TGeoTranslation
(0,60,-170-(500/6*(i+1))));
87
}
88
89
TGeoVolume
*Cone32=geom->
MakeCone
(
"Cone32"
,Copper,30,60,50,0,70);
90
Cone32->
SetFillColor
(35);
91
Cone32->
SetLineColor
(35);
92
top->
AddNodeOverlap
(Cone32,1,
new
TGeoTranslation
(-60,0,-650));
93
94
TGeoVolume
*Cone321=geom->
MakeCone
(
"Cone321"
,Copper,5,60,50,0,50);
95
Cone321->
SetFillColor
(2);
96
Cone321->
SetLineColor
(2);
97
top->
AddNodeOverlap
(Cone321,1,
new
TGeoTranslation
(-60,0,-680));
98
99
TGeoVolume
*Cone4=geom->
MakeCone
(
"Cone4"
,Copper,60,0,70,0,0);
100
Cone4->
SetFillColor
(13);
101
Cone4->
SetLineColor
(13);
102
top->
AddNodeOverlap
(Cone3,1,
new
TGeoTranslation
(60,0,-110));
103
104
for
(
int
i=1;i<=8;i++){
105
TGeoVolume
*Torus2=geom->
MakeTorus
(
"Torus2"
,Iron,120,20,40,45*i-4,8);
106
Torus2->
SetFillColor
(18);
107
Torus2->
SetLineColor
(18);
108
top->
AddNodeOverlap
(Torus2,1,
new
TGeoTranslation
(0,0,610));
109
110
TGeoVolume
*Tubs=geom->
MakeTubs
(
"Line"
,Iron,0,190,5,45*i-1,45*i+1);
111
Tubs->
SetFillColor
(18);
112
Tubs->
SetLineColor
(18);
113
top->
AddNodeOverlap
(Tubs,1,
new
TGeoTranslation
(0,0,610));
114
}
115
116
TGeoVolume
*Cone41=geom->
MakeCone
(
"Cone41"
,Copper,230,0,70,0,70);
117
Cone41->
SetFillColor
(13);
118
Cone41->
SetLineColor
(13);
119
top->
AddNodeOverlap
(Cone41,1,
new
TGeoTranslation
(60,0,-400));
120
121
TGeoVolume
*Cone42=geom->
MakeCone
(
"Cone42"
,Copper,30,60,50,0,70);
122
Cone42->
SetFillColor
(35);
123
Cone42->
SetLineColor
(35);
124
top->
AddNodeOverlap
(Cone42,1,
new
TGeoTranslation
(60,0,-650));
125
126
TGeoVolume
*Cone421=geom->
MakeCone
(
"Cone421"
,Copper,5,60,50,0,50);
127
Cone421->
SetFillColor
(2);
128
Cone421->
SetLineColor
(2);
129
top->
AddNodeOverlap
(Cone421,1,
new
TGeoTranslation
(60,0,-680));
130
131
TGeoVolume
*Cone5=geom->
MakeCone
(
"Cone5"
,Copper,60,0,70,0,0);
132
Cone5->
SetFillColor
(13);
133
Cone5->
SetLineColor
(13);
134
top->
AddNodeOverlap
(Cone3,1,
new
TGeoTranslation
(0,-60,-110));
135
136
TGeoVolume
*Cone51=geom->
MakeCone
(
"Cone51"
,Copper,230,0,70,0,70);
137
Cone51->
SetFillColor
(13);
138
Cone51->
SetLineColor
(13);
139
top->
AddNodeOverlap
(Cone51,1,
new
TGeoTranslation
(0,-60,-400));
140
141
TGeoVolume
*Cone52=geom->
MakeCone
(
"Cone52"
,Copper,30,60,50,0,70);
142
Cone52->
SetFillColor
(35);
143
Cone52->
SetLineColor
(35);
144
top->
AddNodeOverlap
(Cone52,1,
new
TGeoTranslation
(0,-60,-650));
145
146
TGeoVolume
*Cone521=geom->
MakeCone
(
"Cone521"
,Copper,5,60,50,0,50);
147
Cone521->
SetFillColor
(2);
148
Cone521->
SetLineColor
(2);
149
top->
AddNodeOverlap
(Cone521,1,
new
TGeoTranslation
(0,-60,-680));
150
151
TGeoVolume
*Cone6=geom->
MakeCone
(
"Cone6"
,Copper,60,0,70,0,0);
152
Cone6->
SetFillColor
(13);
153
Cone6->
SetLineColor
(13);
154
top->
AddNodeOverlap
(Cone3,1,
new
TGeoTranslation
(0,60,-110));
155
156
TGeoVolume
*Cone61=geom->
MakeCone
(
"Cone61"
,Copper,230,0,70,0,70);
157
Cone61->
SetFillColor
(13);
158
Cone61->
SetLineColor
(13);
159
top->
AddNodeOverlap
(Cone61,1,
new
TGeoTranslation
(0,60,-400));
160
161
TGeoVolume
*Cone62=geom->
MakeCone
(
"Cone62"
,Copper,30,60,50,0,70);
162
Cone62->
SetFillColor
(35);
163
Cone62->
SetLineColor
(35);
164
top->
AddNodeOverlap
(Cone62,1,
new
TGeoTranslation
(0,60,-650));
165
166
TGeoVolume
*Cone621=geom->
MakeCone
(
"Cone621"
,Copper,5,60,50,0,50);
167
Cone621->
SetFillColor
(2);
168
Cone621->
SetLineColor
(2);
169
top->
AddNodeOverlap
(Cone621,1,
new
TGeoTranslation
(0,60,-680));
170
171
TGeoVolume
*Cone7=geom->
MakeCone
(
"Cone7"
,Copper,50,0,40,0,5);
172
Cone7->
SetFillColor
(13);
173
Cone7->
SetLineColor
(13);
174
top->
AddNodeOverlap
(Cone7,1,
new
TGeoCombiTrans
(-90,-60,10,
new
TGeoRotation
(
"Cone7"
,90,-90,-90)));
175
176
TGeoVolume
*Cone71=geom->
MakeCone
(
"Cone71"
,Copper,50,0,60,0,40);
177
Cone71->
SetFillColor
(16);
178
Cone71->
SetLineColor
(16);
179
top->
AddNodeOverlap
(Cone71,1,
new
TGeoCombiTrans
(10,-60,10,
new
TGeoRotation
(
"Cone7"
,90,-90,-90)));
180
181
TGeoVolume
*Cone711=geom->
MakeCone
(
"Cone711"
,Copper,10,0,10,0,60);
182
Cone711->
SetFillColor
(13);
183
Cone711->
SetLineColor
(13);
184
top->
AddNodeOverlap
(Cone711,1,
new
TGeoCombiTrans
(70,-60,10,
new
TGeoRotation
(
"Cone7"
,90,-90,-90)));
185
186
TGeoVolume
*Torus1=geom->
MakeTorus
(
"Torus1"
,Iron,120,30,20);
187
Torus1->
SetFillColor
(33);
188
Torus1->
SetLineColor
(33);
189
top->
AddNodeOverlap
(Torus1,1,
new
TGeoTranslation
(0,0,610));
190
191
TGeoVolume
*Cone8=geom->
MakeCone
(
"Cone8"
,Copper,50,0,40,0,5);
192
Cone8->
SetFillColor
(13);
193
Cone8->
SetLineColor
(13);
194
top->
AddNodeOverlap
(Cone8,1,
new
TGeoCombiTrans
(100,60,10,
new
TGeoRotation
(
"Cone8"
,90,90,0)));
195
196
TGeoVolume
*Cone81=geom->
MakeCone
(
"Cone81"
,Copper,50,0,60,0,40);
197
Cone81->
SetFillColor
(16);
198
Cone81->
SetLineColor
(16);
199
top->
AddNodeOverlap
(Cone81,1,
new
TGeoCombiTrans
(0,60,10,
new
TGeoRotation
(
"Cone8"
,90,90,0)));
200
201
TGeoVolume
*Cone811=geom->
MakeCone
(
"Cone811"
,Copper,10,0,10,0,60);
202
Cone811->
SetFillColor
(13);
203
Cone811->
SetLineColor
(13);
204
top->
AddNodeOverlap
(Cone811,1,
new
TGeoCombiTrans
(-60,60,10,
new
TGeoRotation
(
"Cone8"
,90,90,0)));
205
206
TGeoVolume
*Box1=geom->
MakeBox
(
"Box1"
,Copper,10,10,3);
207
Box1->
SetFillColor
(3);
208
Box1->
SetLineColor
(3);
209
top->
AddNodeOverlap
(Box1,1,
new
TGeoCombiTrans
(-110,-50,645,
new
TGeoRotation
(
"Box1"
,0,0,30)));
210
211
TGeoVolume
*Box2=geom->
MakeBox
(
"Box2"
,Copper,10,10,3);
212
Box2->
SetFillColor
(3);
213
Box2->
SetLineColor
(3);
214
top->
AddNodeOverlap
(Box2,1,
new
TGeoCombiTrans
(110,45,645,
new
TGeoRotation
(
"Box2"
,0,0,30)));
215
216
TGeoVolume
*Box3=geom->
MakeBox
(
"Box3"
,Copper,10,10,3);
217
Box3->
SetFillColor
(3);
218
Box3->
SetLineColor
(3);
219
top->
AddNodeOverlap
(Box3,1,
new
TGeoCombiTrans
(-45,-110,645,
new
TGeoRotation
(
"Box3"
,0,0,70)));
220
221
TGeoVolume
*Box4=geom->
MakeBox
(
"Box4"
,Copper,10,10,3);
222
Box4->
SetFillColor
(3);
223
Box4->
SetLineColor
(3);
224
top->
AddNodeOverlap
(Box4,1,
new
TGeoCombiTrans
(45,110,645,
new
TGeoRotation
(
"Box4"
,0,0,70)));
225
226
TGeoVolume
*Box5=geom->
MakeBox
(
"Box5"
,Copper,10,10,3);
227
Box5->
SetFillColor
(3);
228
Box5->
SetLineColor
(3);
229
top->
AddNodeOverlap
(Box5,1,
new
TGeoCombiTrans
(45,-110,645,
new
TGeoRotation
(
"Box5"
,0,0,30)));
230
231
TGeoVolume
*Box6=geom->
MakeBox
(
"Box6"
,Copper,10,10,3);
232
Box6->
SetFillColor
(3);
233
Box6->
SetLineColor
(3);
234
top->
AddNodeOverlap
(Box6,1,
new
TGeoCombiTrans
(-45,110,645,
new
TGeoRotation
(
"Box6"
,0,0,25)));
235
236
TGeoVolume
*Box7=geom->
MakeBox
(
"Box7"
,Copper,10,10,3);
237
Box7->
SetFillColor
(3);
238
Box7->
SetLineColor
(3);
239
top->
AddNodeOverlap
(Box7,1,
new
TGeoCombiTrans
(110,-50,645,
new
TGeoRotation
(
"Box7"
,0,0,60)));
240
241
TGeoVolume
*Box8=geom->
MakeBox
(
"Box8"
,Copper,10,10,3);
242
Box8->
SetFillColor
(3);
243
Box8->
SetLineColor
(3);
244
top->
AddNodeOverlap
(Box8,1,
new
TGeoCombiTrans
(-110,45,645,
new
TGeoRotation
(
"Box8"
,0,0,60)));
245
246
Torus1=geom->
MakeTorus
(
"Torus1"
,Iron,120,30,20);
247
Torus1->
SetFillColor
(33);
248
Torus1->
SetLineColor
(33);
249
top->
AddNodeOverlap
(Torus1,1,
new
TGeoTranslation
(0,0,610));
250
251
for
(
int
i=1;i<=8;i++){
252
TGeoVolume
*Torus2=geom->
MakeTorus
(
"Torus2"
,Iron,120,20,40,45*i-4,8);
253
Torus2->
SetFillColor
(18);
254
Torus2->
SetLineColor
(18);
255
top->
AddNodeOverlap
(Torus2,1,
new
TGeoTranslation
(0,0,610));
256
257
TGeoVolume
*Tubs=geom->
MakeTubs
(
"Line"
,Iron,0,190,5,45*i-1,45*i+1);
258
Tubs->
SetFillColor
(18);
259
Tubs->
SetLineColor
(18);
260
top->
AddNodeOverlap
(Tubs,1,
new
TGeoTranslation
(0,0,610));
261
}
262
263
TGeoVolume
*Sphere00=geom->
MakeSphere
(
"Sphere00"
,Iron,0,15,0,45,0);
264
Sphere00->
SetFillColor
(2);
265
Sphere00->
SetLineColor
(2);
266
top->
AddNodeOverlap
(Sphere00,1,
new
TGeoTranslation
(-145,-145,600));
267
268
TGeoVolume
*Sphere01=geom->
MakeSphere
(
"Sphere01"
,Iron,0,15,0,45,0);
269
Sphere01->
SetFillColor
(2);
270
Sphere01->
SetLineColor
(2);
271
top->
AddNodeOverlap
(Sphere01,1,
new
TGeoTranslation
(0,-210,600));
272
273
TGeoVolume
*Sphere02=geom->
MakeSphere
(
"Sphere02"
,Iron,0,15,0,45,0);
274
Sphere02->
SetFillColor
(2);
275
Sphere02->
SetLineColor
(2);
276
top->
AddNodeOverlap
(Sphere02,1,
new
TGeoTranslation
(145,145,600));
277
278
TGeoVolume
*Sphere03=geom->
MakeSphere
(
"Sphere03"
,Iron,0,15,0,45,0);
279
Sphere03->
SetFillColor
(2);
280
Sphere03->
SetLineColor
(2);
281
top->
AddNodeOverlap
(Sphere03,1,
new
TGeoTranslation
(0,210,600));
282
283
TGeoVolume
*Sphere04=geom->
MakeSphere
(
"Sphere04"
,Iron,0,15,0,45,0);
284
Sphere04->
SetFillColor
(2);
285
Sphere04->
SetLineColor
(2);
286
top->
AddNodeOverlap
(Sphere04,1,
new
TGeoTranslation
(145,-145,600));
287
288
TGeoVolume
*Sphere05=geom->
MakeSphere
(
"Sphere05"
,Iron,0,15,0,45,0);
289
Sphere05->
SetFillColor
(2);
290
Sphere05->
SetLineColor
(2);
291
top->
AddNodeOverlap
(Sphere05,1,
new
TGeoTranslation
(-210,0,600));
292
293
TGeoVolume
*Sphere06=geom->
MakeSphere
(
"Sphere06"
,Iron,0,15,0,45,0);
294
Sphere06->
SetFillColor
(2);
295
Sphere06->
SetLineColor
(2);
296
top->
AddNodeOverlap
(Sphere06,1,
new
TGeoTranslation
(210,0,600));
297
298
TGeoVolume
*Sphere07=geom->
MakeSphere
(
"Sphere07"
,Iron,0,15,0,45,0);
299
Sphere07->
SetFillColor
(2);
300
Sphere07->
SetLineColor
(2);
301
top->
AddNodeOverlap
(Sphere07,1,
new
TGeoTranslation
(-145,145,600));
302
303
TGeoVolume
*Torus3=geom->
MakeTorus
(
"Torus3"
,Iron,190,0,10);
304
Torus3->
SetFillColor
(18);
305
Torus3->
SetLineColor
(18);
306
top->
AddNodeOverlap
(Torus3,1,
new
TGeoTranslation
(0,0,610));
307
308
TGeoVolume
*Sphere1=geom->
MakeSphere
(
"Sphere1"
,Iron,0,20,0,180,0,360);
309
Sphere1->
SetFillColor
(2);
310
Sphere1->
SetLineColor
(2);
311
top->
AddNodeOverlap
(Sphere1,1,
new
TGeoTranslation
(0,0,650));
312
313
TGeoVolume
*Tubs=geom->
MakeTubs
(
"Tubs"
,Iron,0,40,50,0,360);
314
Tubs->
SetFillColor
(29);
315
Tubs->
SetLineColor
(29);
316
top->
AddNodeOverlap
(Tubs,1,
new
TGeoTranslation
(0,0,500));
317
318
TGeoVolume
*Tubs1=geom->
MakeTubs
(
"Tubs1"
,Iron,50,60,230,40,150);
319
Tubs1->
SetFillColor
(18);
320
Tubs1->
SetLineColor
(18);
321
top->
AddNodeOverlap
(Tubs1,1,
new
TGeoTranslation
(-170,-30,-400));
322
323
TGeoVolume
*Tubs11=geom->
MakeTubs
(
"Tubs11"
,Iron,50,60,230,220,330);
324
Tubs11->
SetFillColor
(18);
325
Tubs11->
SetLineColor
(18);
326
top->
AddNodeOverlap
(Tubs11,1,
new
TGeoTranslation
(-260,35,-400));
327
328
TGeoVolume
*Sphere111=geom->
MakeSphere
(
"Sphere111"
,Iron,0,10,0,180,0,360);
329
Sphere111->
SetFillColor
(2);
330
Sphere111->
SetLineColor
(2);
331
top->
AddNodeOverlap
(Sphere111,1,
new
TGeoTranslation
(-310,0,-165));
332
333
TGeoVolume
*Sphere112=geom->
MakeSphere
(
"Sphere112"
,Iron,0,10,0,180,0,360);
334
Sphere112->
SetFillColor
(2);
335
Sphere112->
SetLineColor
(2);
336
top->
AddNodeOverlap
(Sphere112,1,
new
TGeoTranslation
(-310,0,-400));
337
338
TGeoVolume
*Sphere113=geom->
MakeSphere
(
"Sphere113"
,Iron,0,10,0,180,0,360);
339
Sphere113->
SetFillColor
(2);
340
Sphere113->
SetLineColor
(2);
341
top->
AddNodeOverlap
(Sphere113,1,
new
TGeoTranslation
(-310,0,-635));
342
343
TGeoVolume
*Tubs2=geom->
MakeTubs
(
"Tubs2"
,Iron,50,60,230,220,330);
344
Tubs2->
SetFillColor
(18);
345
Tubs2->
SetLineColor
(18);
346
top->
AddNodeOverlap
(Tubs2,1,
new
TGeoTranslation
(170,30,-400));
347
348
TGeoVolume
*Tubs21=geom->
MakeTubs
(
"Tubs21"
,Iron,50,60,230,400,510);
349
Tubs21->
SetFillColor
(18);
350
Tubs21->
SetLineColor
(18);
351
top->
AddNodeOverlap
(Tubs21,1,
new
TGeoTranslation
(265,-25,-400));
352
353
TGeoVolume
*Sphere211=geom->
MakeSphere
(
"Sphere211"
,Iron,0,10,0,180,0,360);
354
Sphere211->
SetFillColor
(2);
355
Sphere211->
SetLineColor
(2);
356
top->
AddNodeOverlap
(Sphere211,1,
new
TGeoTranslation
(310,0,-165));
357
358
TGeoVolume
*Sphere212=geom->
MakeSphere
(
"Sphere212"
,Iron,0,10,0,180,0,360);
359
Sphere212->
SetFillColor
(2);
360
Sphere212->
SetLineColor
(2);
361
top->
AddNodeOverlap
(Sphere212,1,
new
TGeoTranslation
(310,0,-400));
362
363
TGeoVolume
*Sphere213=geom->
MakeSphere
(
"Sphere213"
,Iron,0,10,0,180,0,360);
364
Sphere213->
SetFillColor
(2);
365
Sphere213->
SetLineColor
(2);
366
top->
AddNodeOverlap
(Sphere213,1,
new
TGeoTranslation
(310,0,-635));
367
368
TGeoVolume
*Tubs3=geom->
MakeTubs
(
"Tubs3"
,Iron,50,60,230,130,260);
369
Tubs3->
SetFillColor
(18);
370
Tubs3->
SetLineColor
(18);
371
top->
AddNodeOverlap
(Tubs3,1,
new
TGeoTranslation
(30,-170,-400));
372
373
TGeoVolume
*Tubs31=geom->
MakeTubs
(
"Tubs31"
,Iron,50,60,230,310,440);
374
Tubs31->
SetFillColor
(18);
375
Tubs31->
SetLineColor
(18);
376
top->
AddNodeOverlap
(Tubs31,1,
new
TGeoTranslation
(0,-275,-400));
377
378
TGeoVolume
*Sphere311=geom->
MakeSphere
(
"Sphere311"
,Iron,0,10,0,180,0,360);
379
Sphere311->
SetFillColor
(2);
380
Sphere311->
SetLineColor
(2);
381
top->
AddNodeOverlap
(Sphere311,1,
new
TGeoTranslation
(-35,320,-165));
382
383
TGeoVolume
*Sphere312=geom->
MakeSphere
(
"Sphere312"
,Iron,0,10,0,180,0,360);
384
Sphere312->
SetFillColor
(2);
385
Sphere312->
SetLineColor
(2);
386
top->
AddNodeOverlap
(Sphere312,1,
new
TGeoTranslation
(-35,320,-400));
387
388
TGeoVolume
*Sphere313=geom->
MakeSphere
(
"Sphere313"
,Iron,0,10,0,180,0,360);
389
Sphere313->
SetFillColor
(2);
390
Sphere313->
SetLineColor
(2);
391
top->
AddNodeOverlap
(Sphere313,1,
new
TGeoTranslation
(-35,320,-635));
392
393
TGeoVolume
*Tubs4=geom->
MakeTubs
(
"Tubs4"
,Iron,50,60,230,310,440);
394
Tubs4->
SetFillColor
(18);
395
Tubs4->
SetLineColor
(18);
396
top->
AddNodeOverlap
(Tubs4,1,
new
TGeoTranslation
(-30,170,-400));
397
398
TGeoVolume
*Tubs41=geom->
MakeTubs
(
"Tubs41"
,Iron,50,60,230,490,620);
399
Tubs41->
SetFillColor
(18);
400
Tubs41->
SetLineColor
(18);
401
top->
AddNodeOverlap
(Tubs41,1,
new
TGeoTranslation
(0,275,-400));
402
403
TGeoVolume
*Sphere411=geom->
MakeSphere
(
"Sphere411"
,Iron,0,10,0,180,0,360);
404
Sphere411->
SetFillColor
(2);
405
Sphere411->
SetLineColor
(2);
406
top->
AddNodeOverlap
(Sphere411,1,
new
TGeoTranslation
(30,-320,-165));
407
408
TGeoVolume
*Sphere412=geom->
MakeSphere
(
"Sphere412"
,Iron,0,10,0,180,0,360);
409
Sphere412->
SetFillColor
(2);
410
Sphere412->
SetLineColor
(2);
411
top->
AddNodeOverlap
(Sphere412,1,
new
TGeoTranslation
(30,-320,-400));
412
413
TGeoVolume
*Sphere413=geom->
MakeSphere
(
"Sphere413"
,Iron,0,10,0,180,0,360);
414
Sphere413->
SetFillColor
(2);
415
Sphere413->
SetLineColor
(2);
416
top->
AddNodeOverlap
(Sphere413,1,
new
TGeoTranslation
(30,-320,-635));
417
418
TGeoVolume
*Cone010=geom->
MakeCone
(
"Cone010"
,Iron,30,0,30,0,30);
419
Cone010->
SetFillColor
(2);
420
Cone010->
SetLineColor
(2);
421
top->
AddNodeOverlap
(Cone010,1,
new
TGeoTranslation
(0,0,250));
422
423
TGeoVolume
*Torus010=geom->
MakeTorus
(
"Torus010"
,Iron,300,50,40);
424
Torus010->
SetFillColor
(33);
425
Torus010->
SetLineColor
(33);
426
top->
AddNodeOverlap
(Torus010,1,
new
TGeoTranslation
(0,0,250));
427
428
TGeoVolume
*Torus011=geom->
MakeTorus
(
"Torus011"
,Iron,400,10,10);
429
Torus011->
SetFillColor
(33);
430
Torus011->
SetLineColor
(33);
431
top->
AddNodeOverlap
(Torus011,1,
new
TGeoTranslation
(0,0,250));
432
433
TGeoVolume
*Torus012=geom->
MakeTorus
(
"Torus012"
,Iron,200,10,10);
434
Torus012->
SetFillColor
(33);
435
Torus012->
SetLineColor
(33);
436
top->
AddNodeOverlap
(Torus012,1,
new
TGeoTranslation
(0,0,250));
437
438
TGeoVolume
*Sphere010=geom->
MakeSphere
(
"Sphere010"
,Iron,0,10,0,180,0,360);
439
Sphere010->
SetFillColor
(2);
440
Sphere010->
SetLineColor
(2);
441
top->
AddNodeOverlap
(Sphere010,1,
new
TGeoTranslation
(-290,-290,250));
442
443
TGeoVolume
*Sphere011=geom->
MakeSphere
(
"Sphere011"
,Iron,0,10,0,180,0,360);
444
Sphere011->
SetFillColor
(2);
445
Sphere011->
SetLineColor
(2);
446
top->
AddNodeOverlap
(Sphere011,1,
new
TGeoTranslation
(290,290,250));
447
448
TGeoVolume
*Sphere012=geom->
MakeSphere
(
"Sphere012"
,Iron,0,10,0,180,0,360);
449
Sphere012->
SetFillColor
(2);
450
Sphere012->
SetLineColor
(2);
451
top->
AddNodeOverlap
(Sphere012,1,
new
TGeoTranslation
(0,-410,250));
452
453
TGeoVolume
*Sphere013=geom->
MakeSphere
(
"Sphere013"
,Iron,0,10,0,180,0,360);
454
Sphere013->
SetFillColor
(2);
455
Sphere013->
SetLineColor
(2);
456
top->
AddNodeOverlap
(Sphere013,1,
new
TGeoTranslation
(0,410,250));
457
458
TGeoVolume
*Sphere014=geom->
MakeSphere
(
"Sphere014"
,Iron,0,10,0,180,0,360);
459
Sphere014->
SetFillColor
(2);
460
Sphere014->
SetLineColor
(2);
461
top->
AddNodeOverlap
(Sphere014,1,
new
TGeoTranslation
(290,-290,250));
462
463
TGeoVolume
*Sphere015=geom->
MakeSphere
(
"Sphere015"
,Iron,0,10,0,180,0,360);
464
Sphere015->
SetFillColor
(2);
465
Sphere015->
SetLineColor
(2);
466
top->
AddNodeOverlap
(Sphere015,1,
new
TGeoTranslation
(-290,290,250));
467
468
TGeoVolume
*Sphere016=geom->
MakeSphere
(
"Sphere016"
,Iron,0,10,0,180,0,360);
469
Sphere016->
SetFillColor
(2);
470
Sphere016->
SetLineColor
(2);
471
top->
AddNodeOverlap
(Sphere016,1,
new
TGeoTranslation
(410,0,250));
472
473
TGeoVolume
*Sphere017=geom->
MakeSphere
(
"Sphere017"
,Iron,0,10,0,180,0,360);
474
Sphere017->
SetFillColor
(2);
475
Sphere017->
SetLineColor
(2);
476
top->
AddNodeOverlap
(Sphere017,1,
new
TGeoTranslation
(-410,0,250));
477
478
TGeoVolume
*Box010=geom->
MakeBox
(
"Box010"
,Copper,10,10,3);
479
Box010->
SetFillColor
(3);
480
Box010->
SetLineColor
(3);
481
top->
AddNodeOverlap
(Box1,1,
new
TGeoCombiTrans
(-120,-280,300,
new
TGeoRotation
(
"Box010"
,0,0,70)));
482
483
TGeoVolume
*Box011=geom->
MakeBox
(
"Box011"
,Copper,10,10,3);
484
Box011->
SetFillColor
(3);
485
Box011->
SetLineColor
(3);
486
top->
AddNodeOverlap
(Box011,1,
new
TGeoCombiTrans
(120,280,300,
new
TGeoRotation
(
"Box011"
,0,0,70)));
487
488
TGeoVolume
*Box012=geom->
MakeBox
(
"Box012"
,Copper,10,10,3);
489
Box012->
SetFillColor
(3);
490
Box012->
SetLineColor
(3);
491
top->
AddNodeOverlap
(Box012,1,
new
TGeoCombiTrans
(120,-280,300,
new
TGeoRotation
(
"Box012"
,0,0,30)));
492
493
TGeoVolume
*Box013=geom->
MakeBox
(
"Box013"
,Copper,10,10,3);
494
Box013->
SetFillColor
(3);
495
Box013->
SetLineColor
(3);
496
top->
AddNodeOverlap
(Box013,1,
new
TGeoCombiTrans
(-120,280,300,
new
TGeoRotation
(
"Box013"
,0,0,30)));
497
498
TGeoVolume
*Box014=geom->
MakeBox
(
"Box010"
,Copper,10,10,3);
499
Box014->
SetFillColor
(3);
500
Box014->
SetLineColor
(3);
501
top->
AddNodeOverlap
(Box014,1,
new
TGeoCombiTrans
(270,-120,300,
new
TGeoRotation
(
"Box014"
,0,0,70)));
502
503
TGeoVolume
*Box015=geom->
MakeBox
(
"Box015"
,Copper,10,10,3);
504
Box015->
SetFillColor
(3);
505
Box015->
SetLineColor
(3);
506
top->
AddNodeOverlap
(Box015,1,
new
TGeoCombiTrans
(-270,120,300,
new
TGeoRotation
(
"Box015"
,0,0,70)));
507
508
TGeoVolume
*Box016=geom->
MakeBox
(
"Box016"
,Copper,10,10,3);
509
Box016->
SetFillColor
(3);
510
Box016->
SetLineColor
(3);
511
top->
AddNodeOverlap
(Box016,1,
new
TGeoCombiTrans
(270,100,300,
new
TGeoRotation
(
"Box016"
,0,0,30)));
512
513
TGeoVolume
*Box017=geom->
MakeBox
(
"Box017"
,Copper,10,10,3);
514
Box017->
SetFillColor
(3);
515
Box017->
SetLineColor
(3);
516
top->
AddNodeOverlap
(Box017,1,
new
TGeoCombiTrans
(-270,-120,300,
new
TGeoRotation
(
"Box017"
,0,0,30)));
517
518
for
(
int
i=1;i<=8;i++){
519
TGeoVolume
*Torus0101=geom->
MakeTorus
(
"Torus0101"
,Iron,300,70,40,45*i-4,8);
520
Torus0101->
SetFillColor
(18);
521
Torus0101->
SetLineColor
(18);
522
top->
AddNodeOverlap
(Torus0101,1,
new
TGeoTranslation
(0,0,250));
523
524
TGeoVolume
*Tubs0101=geom->
MakeTubs
(
"Line"
,Iron,0,400,5,45*i-1,45*i+1);
525
Tubs0101->
SetFillColor
(18);
526
Tubs0101->
SetLineColor
(18);
527
top->
AddNodeOverlap
(Tubs0101,1,
new
TGeoTranslation
(0,0,250));
528
}
529
530
Cone31->
SetFillColor
(38);
531
top->
SetVisibility
(0);
532
geom->
CloseGeometry
();
533
534
top->
Draw
(
"ogl"
);
535
536
}
TGeoCombiTrans
Class describing rotation + translation.
Definition:
TGeoMatrix.h:292
TGeoManager::MakeBox
TGeoVolume * MakeBox(const char *name, TGeoMedium *medium, Double_t dx, Double_t dy, Double_t dz)
Make in one step a volume pointing to a box shape with given medium.
Definition:
TGeoManager.cxx:2918
TGeoManager::CloseGeometry
void CloseGeometry(Option_t *option="d")
Closing geometry implies checking the geometry validity, fixing shapes with negative parameters (run-...
Definition:
TGeoManager.cxx:1359
TGeoManager::SetTopVisible
void SetTopVisible(Bool_t vis=kTRUE)
make top volume visible on screen
Definition:
TGeoManager.cxx:2193
TGeoTranslation
Class describing translations.
Definition:
TGeoMatrix.h:122
TGeoMaterial
Base class describing materials.
Definition:
TGeoMaterial.h:36
TGeoManager::MakeCone
TGeoVolume * MakeCone(const char *name, TGeoMedium *medium, Double_t dz, Double_t rmin1, Double_t rmax1, Double_t rmin2, Double_t rmax2)
Make in one step a volume pointing to a cone shape with given medium.
Definition:
TGeoManager.cxx:3013
TGeoManager::SetTopVolume
void SetTopVolume(TGeoVolume *vol)
Set the top volume and corresponding node as starting point of the geometry.
Definition:
TGeoManager.cxx:3397
TGeoVolume::Draw
virtual void Draw(Option_t *option="")
draw top volume according to option
Definition:
TGeoVolume.cxx:1146
TGeoRotation
Class describing rotations.
Definition:
TGeoMatrix.h:175
TGeoManager::MakeSphere
TGeoVolume * MakeSphere(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t themin=0, Double_t themax=180, Double_t phimin=0, Double_t phimax=360)
Make in one step a volume pointing to a sphere shape with given medium.
Definition:
TGeoManager.cxx:2937
TGeoManager::MakeTorus
TGeoVolume * MakeTorus(const char *name, TGeoMedium *medium, Double_t r, Double_t rmin, Double_t rmax, Double_t phi1=0, Double_t dphi=360)
Make in one step a volume pointing to a torus shape with given medium.
Definition:
TGeoManager.cxx:2947
TGeoManager.h
TGeoVolume::AddNodeOverlap
virtual void AddNodeOverlap(TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=0, Option_t *option="")
Add a TGeoNode to the list of nodes.
Definition:
TGeoVolume.cxx:996
TAttFill::SetFillColor
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
Definition:
TAttFill.h:37
TGeoManager::MakeTubs
TGeoVolume * MakeTubs(const char *name, TGeoMedium *medium, Double_t rmin, Double_t rmax, Double_t dz, Double_t phi1, Double_t phi2)
Make in one step a volume pointing to a tube segment shape with given medium.
Definition:
TGeoManager.cxx:2966
TGeoMedium
Media are used to store properties related to tracking and which are useful only when using geometry ...
Definition:
TGeoMedium.h:24
TGeoVolume::SetLineColor
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Definition:
TGeoVolume.cxx:2036
TGeoManager
The manager class for any TGeo geometry.
Definition:
TGeoManager.h:45
TGeoVolume::SetVisibility
virtual void SetVisibility(Bool_t vis=kTRUE)
set visibility of this volume
Definition:
TGeoVolume.cxx:2198
TGeoVolume
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
Definition:
TGeoVolume.h:49
tutorials
geom
station1.C
ROOT master - Reference Guide Generated on Wed Jan 20 2021 12:10:52 (GVA Time) using Doxygen 1.9.0