Logo ROOT  
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