Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
tank.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_geom
3/// Drawing a fine tank, 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 tank.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_tank.png width=800px
14/// \macro_code
15///
16/// \author Dong Gyu Lee (ravirus@hanmail.net), Dept. of Physics, Univ. of Seoul
17
18#include "TGeoManager.h"
19
20void tank()
21{
22 TGeoManager *geom = new TGeoManager("geom", "My 3D Project");
23
24 //------------------Creat materials-----------------------------
25 TGeoMaterial *vacuum = new TGeoMaterial("vacuum", 0, 0, 0);
26 TGeoMaterial *Fe = new TGeoMaterial("Fe", 55.84, 26.7, 7.87);
27 TGeoMaterial *Cu = new TGeoMaterial("Cu", 63.549, 29, 8.92);
28
29 //------------------Creat media----------------------------------
30 TGeoMedium *Air = new TGeoMedium("Air", 0, vacuum);
31 TGeoMedium *Iron = new TGeoMedium("Iron", 1, Fe);
32
33 //------------------Create TOP volume----------------------------
34 TGeoVolume *top = geom->MakeBox("top", Air, 100, 100, 100);
35 geom->SetTopVolume(top);
36 geom->SetTopVisible(false);
37 // If you want to see the boundary, please input the number, 1 instead of 0.
38 // Like this, geom->SetTopVisible(1);
39
40 //-----------------Create Object volume--------------------------
41
42 // Now, we start real shape
43
44 // UpperBody
45 TGeoVolume *pl = geom->MakeBox("pl", Iron, 210, 93, 20);
46 pl->SetLineColor(42);
47 TGeoVolume *pl1 = geom->MakeBox("pl1", Iron, 217, 50, 5);
48 pl1->SetLineColor(42);
49 TGeoVolume *pl2 = geom->MakeTrd2("pl2", Iron, 219, 150, 50, 40, 10);
50 pl2->SetLineColor(42);
51 TGeoVolume *plu = geom->MakeTrd2("plu", Iron, 210, 70, 100, 100, 5);
52 plu->SetLineColor(42);
53 top->AddNodeOverlap(plu, 1, new TGeoTranslation(0, 0, -105));
54 TGeoVolume *sp = geom->MakeTubs("sp", Iron, 30, 40, 50, 10, 60); // Small Plate front
55 sp->SetLineColor(42);
56
57 // Top which will have the gun
58 TGeoVolume *tp = geom->MakeSphere("tp", Iron, 0, 100, 67, 90, 0, 360); // tp is Top with gun
59 tp->SetLineColor(12);
60 TGeoVolume *tp1 = geom->MakeSphere("tp1", Iron, 90, 190, 0, 29, 0, 360); // tp1 is Top with roof
61 tp1->SetLineColor(12);
62 TGeoVolume *mgg = geom->MakeTubs("mgg", Iron, 0, 25, 30, 42, 136); // Main Gun Guard
63 mgg->SetLineColor(12);
64 TGeoVolume *mgg1 = geom->MakeTrd2("mgg1", Iron, 30.5, 45, 19, 30, 35);
65 mgg1->SetLineColor(12);
66
67 top->AddNodeOverlap(mgg1, 1, new TGeoCombiTrans(-57, 0, -63, new TGeoRotation("mgg", 90, 90, 0)));
68 top->AddNodeOverlap(mgg, 1, new TGeoCombiTrans(-75, 0, -63, new TGeoRotation("mgg", 0, 90, 90)));
69
70 // Small Top infront Top
71 TGeoVolume *stp = geom->MakeSphere("stp", Iron, 0, 30, 67, 90, 0, 360); // Top for driver
72 stp->SetLineColor(12);
73 TGeoVolume *stp1 = geom->MakeSphere("stp1", Iron, 115, 120, 0, 12, 0, 360); // Top with roof
74 stp1->SetLineColor(12);
75 TGeoVolume *stpo1 = geom->MakeBox("stpo1", Iron, 3, 1, 5);
76 stpo1->SetLineColor(42); // Small T P Option 1
77
78 top->AddNodeOverlap(stpo1, 1, new TGeoTranslation(-93, -32, -95));
79 top->AddNodeOverlap(stpo1, 1, new TGeoTranslation(-93, -38, -95));
80 top->AddNodeOverlap(stp, 1, new TGeoTranslation(-120, -35, -108));
81 top->AddNodeOverlap(stp1, 1, new TGeoCombiTrans(-185, -35, -168, new TGeoRotation("stp1", 90, 40, 0)));
82
83 // The Main Gun1 with AddNodeOverlap
84 TGeoVolume *mg1 = geom->MakeCone("mg1", Iron, 160, 4, 5, 4, 7);
85 mg1->SetLineColor(12);
86 top->AddNodeOverlap(mg1, 1, new TGeoCombiTrans(-220, 0, -53, new TGeoRotation("bs", 90, 94, 0)));
87 TGeoVolume *mg1o1 = geom->MakeCone("mg1o1", Iron, 40, 4.1, 8, 4.1, 8);
88 mg1o1->SetLineColor(12); //
89 top->AddNodeOverlap(mg1o1, 1, new TGeoCombiTrans(-220, 0, -53, new TGeoRotation("bs", 90, 94, 0)));
90
91 // Underbody
92 TGeoVolume *underbody = geom->MakeTrd2("underbody", Iron, 160, 210, 93, 93, 30);
93 underbody->SetLineColor(28);
94 TGeoVolume *bs = geom->MakeTubs("bs", Iron, 0, 20, 93, 10, 270);
95 bs->SetLineColor(42);
96 TGeoVolume *bsp = geom->MakeTubs("bsp", Iron, 0, 20, 30, 10, 270);
97 bsp->SetLineColor(42);
98
99 TGeoVolume *Tip = geom->MakeCone("Tip", Iron, 21, 0, 24, 0, 24); // Tip is wheel
100 Tip->SetLineColor(12);
101 TGeoVolume *Tip1 = geom->MakeCone("Tip1", Iron, 10, 23, 30, 25, 30);
102 Tip1->SetLineColor(14);
103 TGeoVolume *Tip2 = geom->MakeCone("Tip2", Iron, 30, 0, 7, 0, 7);
104 Tip2->SetLineColor(42);
105
106 TGeoVolume *wheel = geom->MakeCone("wheel", Iron, 30, 0, 7, 0, 7);
107 wheel->SetLineColor(42);
108 TGeoVolume *wheel1 = geom->MakeCone("wheel1", Iron, 21, 0, 16, 0, 16); // innner wheel
109 wheel1->SetLineColor(14);
110 TGeoVolume *wheel2 = geom->MakeCone("wheel2", Iron, 10, 15, 22, 15, 22); // outter wheel
111 wheel2->SetLineColor(12);
112
113 TGeoVolume *Tip0 = geom->MakeCone("Tip0", Iron, 30, 0, 7, 0, 7);
114 Tip0->SetLineColor(12);
115 TGeoVolume *Tip01 = geom->MakeCone("Tip01", Iron, 10, 7, 10.5, 7, 10.5);
116 Tip0->SetLineColor(14);
117
118 // cycle of chain with AddNodeOverlap
119 char name[50];
120 TGeoVolume *WH; // piece of chain
121 TGeoVolume *whp;
122 TGeoVolume *who;
123
124 // consist upper chain
125 for (int i = 0; i < 26; i++) {
126 sprintf(name, "wh%d", i);
127 WH = geom->MakeBox(name, Iron, 5.5, 22, 2);
128 whp = geom->MakeBox(name, Iron, 5, 2.1, 4);
129 who = geom->MakeBox(name, Iron, 2, 6, 1);
130 WH->SetLineColor(12);
131 whp->SetLineColor(14);
132 who->SetLineColor(42);
133 top->AddNodeOverlap(WH, 1, new TGeoTranslation(-195 + (15 * i), -120, -125));
134 top->AddNodeOverlap(WH, 1, new TGeoTranslation(-195 + (15 * i), 120, -125));
135
136 top->AddNodeOverlap(whp, 1, new TGeoTranslation(-195 + (15 * i), -120, -127));
137 top->AddNodeOverlap(whp, 1, new TGeoTranslation(-195 + (15 * i), 120, -127));
138
139 top->AddNodeOverlap(who, 1, new TGeoCombiTrans(-195 + (15 * i), -127, -123, new TGeoRotation("who", -15, 0, 0)));
140 top->AddNodeOverlap(who, 1, new TGeoCombiTrans(-195 + (15 * i), -113, -123, new TGeoRotation("who", 15, 0, 0)));
141 top->AddNodeOverlap(who, 1, new TGeoCombiTrans(-195 + (15 * i), 127, -123, new TGeoRotation("who", 15, 0, 0)));
142 top->AddNodeOverlap(who, 1, new TGeoCombiTrans(-195 + (15 * i), 113, -123, new TGeoRotation("who", -15, 0, 0)));
143 }
144 // chain connector
145 TGeoVolume *WHl = geom->MakeBox(name, Iron, 187.5, 5, 1);
146 WHl->SetLineColor(12);
147 top->AddNodeOverlap(WHl, 1, new TGeoTranslation(-7.5, -129, -125));
148 top->AddNodeOverlap(WHl, 1, new TGeoTranslation(-7.5, -111, -125));
149 top->AddNodeOverlap(WHl, 1, new TGeoTranslation(-7.5, 111, -125));
150 top->AddNodeOverlap(WHl, 1, new TGeoTranslation(-7.5, 129, -125));
151
152 // just one side
153 top->AddNodeOverlap(WH, 1,
154 new TGeoCombiTrans(180 + (25 * sin(34 * (3.14 / 180))), -120,
155 -150 + (25 * cos(34 * (3.14 / 180))), new TGeoRotation("who", 90, 34, -90)));
156 top->AddNodeOverlap(WH, 1,
157 new TGeoCombiTrans(180 + (25 * sin(68 * (3.14 / 180))), -120,
158 -150 + (25 * cos(68 * (3.14 / 180))), new TGeoRotation("who", 90, 68, -90)));
159 top->AddNodeOverlap(WH, 1,
160 new TGeoCombiTrans(180 + (25 * sin(102 * (3.14 / 180))), -120,
161 -150 + (25 * cos(102 * (3.14 / 180))),
162 new TGeoRotation("who", 90, 102, -90)));
163 top->AddNodeOverlap(WH, 1,
164 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))), -120,
165 -150 + (25 * cos(136 * (3.14 / 180))),
166 new TGeoRotation("who", 90, 136, -90)));
167
168 top->AddNodeOverlap(WH, 1,
169 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 12, -120,
170 -150 + (25 * cos(136 * (3.14 / 180))) - 10,
171 new TGeoRotation("who", 90, 140, -90)));
172 top->AddNodeOverlap(WH, 1,
173 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 24, -120,
174 -150 + (25 * cos(136 * (3.14 / 180))) - 20,
175 new TGeoRotation("who", 90, 142, -90)));
176 top->AddNodeOverlap(WH, 1,
177 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 37, -120,
178 -150 + (25 * cos(136 * (3.14 / 180))) - 30,
179 new TGeoRotation("who", 90, 145, -90)));
180 top->AddNodeOverlap(WH, 1,
181 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 50, -120,
182 -150 + (25 * cos(136 * (3.14 / 180))) - 40,
183 new TGeoRotation("who", 90, 149, -90)));
184
185 top->AddNodeOverlap(whp, 1,
186 new TGeoCombiTrans(180 + (22.8 * sin(34 * (3.14 / 180))), -120,
187 -150 + (22.8 * cos(34 * (3.14 / 180))),
188 new TGeoRotation("whp", 90, 34, -90)));
189 top->AddNodeOverlap(whp, 1,
190 new TGeoCombiTrans(180 + (22.8 * sin(68 * (3.14 / 180))), -120,
191 -150 + (22.8 * cos(68 * (3.14 / 180))),
192 new TGeoRotation("whp", 90, 68, -90)));
193 top->AddNodeOverlap(whp, 1,
194 new TGeoCombiTrans(180 + (22.8 * sin(102 * (3.14 / 180))), -120,
195 -150 + (22.8 * cos(102 * (3.14 / 180))),
196 new TGeoRotation("whp", 90, 102, -90)));
197 top->AddNodeOverlap(whp, 1,
198 new TGeoCombiTrans(180 + (22.8 * sin(136 * (3.14 / 180))), -120,
199 -150 + (22.8 * cos(136 * (3.14 / 180))),
200 new TGeoRotation("whp", 90, 136, -90)));
201
202 top->AddNodeOverlap(whp, 1,
203 new TGeoCombiTrans(180 + (22.8 * sin(136 * (3.14 / 180))) - 12, -120,
204 -150 + (22.8 * cos(136 * (3.14 / 180))) - 10,
205 new TGeoRotation("whp", 90, 140, -90)));
206 top->AddNodeOverlap(whp, 1,
207 new TGeoCombiTrans(180 + (22.8 * sin(136 * (3.14 / 180))) - 24, -120,
208 -150 + (22.8 * cos(136 * (3.14 / 180))) - 20,
209 new TGeoRotation("whp", 90, 142, -90)));
210 top->AddNodeOverlap(whp, 1,
211 new TGeoCombiTrans(180 + (22.8 * sin(136 * (3.14 / 180))) - 37, -120,
212 -150 + (22.8 * cos(136 * (3.14 / 180))) - 30,
213 new TGeoRotation("whp", 90, 145, -90)));
214 top->AddNodeOverlap(whp, 1,
215 new TGeoCombiTrans(180 + (22.8 * sin(136 * (3.14 / 180))) - 50, -120,
216 -150 + (22.8 * cos(136 * (3.14 / 180))) - 40,
217 new TGeoRotation("whp", 90, 149, -90)));
218
219 top->AddNodeOverlap(who, 1,
220 new TGeoCombiTrans(180 + (27 * sin(34 * (3.14 / 180))), -127,
221 -150 + (27 * cos(34 * (3.14 / 180))),
222 new TGeoRotation("who", 97.5, 34, -97.5)));
223 top->AddNodeOverlap(who, 1,
224 new TGeoCombiTrans(180 + (27 * sin(68 * (3.14 / 180))), -127,
225 -150 + (27 * cos(68 * (3.14 / 180))),
226 new TGeoRotation("who", 97.5, 68, -97.5)));
227 top->AddNodeOverlap(who, 1,
228 new TGeoCombiTrans(180 + (27 * sin(102 * (3.14 / 180))), -127,
229 -150 + (27 * cos(102 * (3.14 / 180))),
230 new TGeoRotation("who", 97.5, 102, -97.5)));
231 top->AddNodeOverlap(who, 1,
232 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))), -127,
233 -150 + (27 * cos(136 * (3.14 / 180))),
234 new TGeoRotation("who", 97.5, 136, -97.5)));
235
236 top->AddNodeOverlap(who, 1,
237 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 12, -127,
238 -150 + (27 * cos(136 * (3.14 / 180))) - 10,
239 new TGeoRotation("who", 97.5, 140, -97.5)));
240 top->AddNodeOverlap(who, 1,
241 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 24, -127,
242 -150 + (27 * cos(136 * (3.14 / 180))) - 20,
243 new TGeoRotation("who", 97.5, 142, -97.5)));
244 top->AddNodeOverlap(who, 1,
245 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 37, -127,
246 -150 + (27 * cos(136 * (3.14 / 180))) - 30,
247 new TGeoRotation("who", 97.5, 145, -97.5)));
248 top->AddNodeOverlap(who, 1,
249 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 50, -127,
250 -150 + (27 * cos(136 * (3.14 / 180))) - 40,
251 new TGeoRotation("who", 97.5, 149, -97.5)));
252 //--------------------------
253 top->AddNodeOverlap(who, 1,
254 new TGeoCombiTrans(180 + (27 * sin(34 * (3.14 / 180))), -113,
255 -150 + (27 * cos(34 * (3.14 / 180))),
256 new TGeoRotation("who", 82.5, 34, -82.5)));
257 top->AddNodeOverlap(who, 1,
258 new TGeoCombiTrans(180 + (27 * sin(68 * (3.14 / 180))), -113,
259 -150 + (27 * cos(68 * (3.14 / 180))),
260 new TGeoRotation("who", 82.5, 68, -82.5)));
261 top->AddNodeOverlap(who, 1,
262 new TGeoCombiTrans(180 + (27 * sin(102 * (3.14 / 180))), -113,
263 -150 + (27 * cos(102 * (3.14 / 180))),
264 new TGeoRotation("who", 82.5, 102, -82.5)));
265 top->AddNodeOverlap(who, 1,
266 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))), -113,
267 -150 + (27 * cos(136 * (3.14 / 180))),
268 new TGeoRotation("who", 82.5, 136, -82.5)));
269
270 top->AddNodeOverlap(who, 1,
271 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 12, -113,
272 -150 + (27 * cos(136 * (3.14 / 180))) - 10,
273 new TGeoRotation("who", 82.5, 140, -82.5)));
274 top->AddNodeOverlap(who, 1,
275 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 24, -113,
276 -150 + (27 * cos(136 * (3.14 / 180))) - 20,
277 new TGeoRotation("who", 82.5, 142, -82.5)));
278 top->AddNodeOverlap(who, 1,
279 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 37, -113,
280 -150 + (27 * cos(136 * (3.14 / 180))) - 30,
281 new TGeoRotation("who", 82.5, 145, -82.5)));
282 top->AddNodeOverlap(who, 1,
283 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 50, -113,
284 -150 + (27 * cos(136 * (3.14 / 180))) - 40,
285 new TGeoRotation("who", 82.5, 149, -82.5)));
286
287 TGeoVolume *chc0 = geom->MakeTubs("chc0", Iron, 24.5, 26.5, 5, -34, 0); // Small Plate front
288 chc0->SetLineColor(12);
289 TGeoVolume *chc1 = geom->MakeTubs("chc1", Iron, 24.5, 26.5, 5, -68, -34); // Small Plate front
290 chc1->SetLineColor(12);
291 TGeoVolume *chc2 = geom->MakeTubs("chc2", Iron, 24.5, 26.5, 5, -102, -68); // Small Plate front
292 chc2->SetLineColor(12);
293 TGeoVolume *chc3 = geom->MakeTubs("chc3", Iron, 24.5, 26.5, 5, -136, -102); // Small Plate front
294 chc3->SetLineColor(12);
295
296 top->AddNodeOverlap(chc0, 1, new TGeoCombiTrans(180, -129, -150, new TGeoRotation("chc0", 0, 90, 90)));
297 top->AddNodeOverlap(chc1, 1, new TGeoCombiTrans(180, -129, -150, new TGeoRotation("chc1", 0, 90, 90)));
298 top->AddNodeOverlap(chc2, 1, new TGeoCombiTrans(180, -129, -150, new TGeoRotation("chc2", 0, 90, 90)));
299 top->AddNodeOverlap(chc3, 1, new TGeoCombiTrans(180, -129, -150, new TGeoRotation("chc3", 0, 90, 90)));
300
301 top->AddNodeOverlap(chc0, 1, new TGeoCombiTrans(180, -111, -150, new TGeoRotation("chc0", 0, 90, 90)));
302 top->AddNodeOverlap(chc1, 1, new TGeoCombiTrans(180, -111, -150, new TGeoRotation("chc1", 0, 90, 90)));
303 top->AddNodeOverlap(chc2, 1, new TGeoCombiTrans(180, -111, -150, new TGeoRotation("chc2", 0, 90, 90)));
304 top->AddNodeOverlap(chc3, 1, new TGeoCombiTrans(180, -111, -150, new TGeoRotation("chc3", 0, 90, 90)));
305
306 TGeoVolume *chcl = geom->MakeBox("chcl", Iron, 5, 5, 1);
307 chcl->SetLineColor(12);
308 top->AddNodeOverlap(chcl, 1,
309 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 6, -111,
310 -150 + (25 * cos(136 * (3.14 / 180))) - 5,
311 new TGeoRotation("chcl", 90, 140, -90)));
312 top->AddNodeOverlap(chcl, 1,
313 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 18, -111,
314 -150 + (25 * cos(136 * (3.14 / 180))) - 15,
315 new TGeoRotation("chcl", 90, 142, -90)));
316 top->AddNodeOverlap(chcl, 1,
317 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 30, -111,
318 -150 + (25 * cos(136 * (3.14 / 180))) - 25,
319 new TGeoRotation("chcl", 90, 145, -90)));
320 top->AddNodeOverlap(chcl, 1,
321 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 43, -111,
322 -150 + (25 * cos(136 * (3.14 / 180))) - 35,
323 new TGeoRotation("chcl", 90, 149, -90)));
324
325 top->AddNodeOverlap(chcl, 1,
326 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 6, -129,
327 -150 + (25 * cos(136 * (3.14 / 180))) - 5,
328 new TGeoRotation("chcl", 90, 140, -90)));
329 top->AddNodeOverlap(chcl, 1,
330 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 18, -129,
331 -150 + (25 * cos(136 * (3.14 / 180))) - 15,
332 new TGeoRotation("chcl", 90, 142, -90)));
333 top->AddNodeOverlap(chcl, 1,
334 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 30, -129,
335 -150 + (25 * cos(136 * (3.14 / 180))) - 25,
336 new TGeoRotation("chcl", 90, 145, -90)));
337 top->AddNodeOverlap(chcl, 1,
338 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 43, -129,
339 -150 + (25 * cos(136 * (3.14 / 180))) - 35,
340 new TGeoRotation("chcl", 90, 149, -90)));
341
342 TGeoVolume *chc4 = geom->MakeTubs("chc4", Iron, 31.5, 34.5, 5, -175, -145); // Small Plate front
343 chc4->SetLineColor(12);
344 top->AddNodeOverlap(chc4, 1, new TGeoCombiTrans(130, -111, -180, new TGeoRotation("chc3", 0, 90, 90)));
345 top->AddNodeOverlap(chc4, 1, new TGeoCombiTrans(130, -129, -180, new TGeoRotation("chc3", 0, 90, 90)));
346
347 top->AddNodeOverlap(WH, 1,
348 new TGeoCombiTrans(-195 - (25 * sin(34 * (3.14 / 180))), -120,
349 -150 + (25 * cos(34 * (3.14 / 180))), new TGeoRotation("who", 90, -34, -90)));
350 top->AddNodeOverlap(WH, 1,
351 new TGeoCombiTrans(-195 - (25 * sin(68 * (3.14 / 180))), -120,
352 -150 + (25 * cos(68 * (3.14 / 180))), new TGeoRotation("who", 90, -68, -90)));
353 top->AddNodeOverlap(WH, 1,
354 new TGeoCombiTrans(-195 - (25 * sin(102 * (3.14 / 180))), -120,
355 -150 + (25 * cos(102 * (3.14 / 180))),
356 new TGeoRotation("who", 90, -102, -90)));
357 top->AddNodeOverlap(WH, 1,
358 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))), -120,
359 -150 + (25 * cos(136 * (3.14 / 180))),
360 new TGeoRotation("who", 90, -136, -90)));
361
362 top->AddNodeOverlap(WH, 1,
363 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 12, -120,
364 -150 + (25 * cos(136 * (3.14 / 180))) - 10,
365 new TGeoRotation("who", 90, -140, -90)));
366 top->AddNodeOverlap(WH, 1,
367 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 24, -120,
368 -150 + (25 * cos(136 * (3.14 / 180))) - 20,
369 new TGeoRotation("who", 90, -142, -90)));
370 top->AddNodeOverlap(WH, 1,
371 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 35, -120,
372 -150 + (25 * cos(136 * (3.14 / 180))) - 30,
373 new TGeoRotation("who", 90, -139, -90)));
374 top->AddNodeOverlap(WH, 1,
375 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 48, -120,
376 -150 + (25 * cos(136 * (3.14 / 180))) - 41,
377 new TGeoRotation("who", 90, -153, -90)));
378
379 top->AddNodeOverlap(whp, 1,
380 new TGeoCombiTrans(-195 - (22.8 * sin(34 * (3.14 / 180))), -120,
381 -150 + (22.8 * cos(34 * (3.14 / 180))),
382 new TGeoRotation("whp", 90, -34, -90)));
383 top->AddNodeOverlap(whp, 1,
384 new TGeoCombiTrans(-195 - (22.8 * sin(68 * (3.14 / 180))), -120,
385 -150 + (22.8 * cos(68 * (3.14 / 180))),
386 new TGeoRotation("whp", 90, -68, -90)));
387 top->AddNodeOverlap(whp, 1,
388 new TGeoCombiTrans(-195 - (22.8 * sin(102 * (3.14 / 180))), -120,
389 -150 + (22.8 * cos(102 * (3.14 / 180))),
390 new TGeoRotation("whp", 90, -102, -90)));
391 top->AddNodeOverlap(whp, 1,
392 new TGeoCombiTrans(-195 - (22.8 * sin(136 * (3.14 / 180))), -120,
393 -150 + (22.8 * cos(136 * (3.14 / 180))),
394 new TGeoRotation("whp", 90, -136, -90)));
395
396 top->AddNodeOverlap(whp, 1,
397 new TGeoCombiTrans(-195 - (22.8 * sin(136 * (3.14 / 180))) + 12, -120,
398 -150 + (22.8 * cos(136 * (3.14 / 180))) - 10,
399 new TGeoRotation("whp", 90, -140, -90)));
400 top->AddNodeOverlap(whp, 1,
401 new TGeoCombiTrans(-195 - (22.8 * sin(136 * (3.14 / 180))) + 24, -120,
402 -150 + (22.8 * cos(136 * (3.14 / 180))) - 20,
403 new TGeoRotation("whp", 90, -142, -90)));
404 top->AddNodeOverlap(whp, 1,
405 new TGeoCombiTrans(-195 - (22.8 * sin(136 * (3.14 / 180))) + 35, -120,
406 -150 + (22.8 * cos(136 * (3.14 / 180))) - 30,
407 new TGeoRotation("whp", 90, -139, -90)));
408 top->AddNodeOverlap(whp, 1,
409 new TGeoCombiTrans(-195 - (22.8 * sin(136 * (3.14 / 180))) + 48, -120,
410 -150 + (22.8 * cos(136 * (3.14 / 180))) - 41,
411 new TGeoRotation("whp", 90, -153, -90)));
412
413 top->AddNodeOverlap(who, 1,
414 new TGeoCombiTrans(-195 - (27 * sin(34 * (3.14 / 180))), -127,
415 -150 + (27 * cos(34 * (3.14 / 180))),
416 new TGeoRotation("who", 97.5, -34, -97.5)));
417 top->AddNodeOverlap(who, 1,
418 new TGeoCombiTrans(-195 - (27 * sin(68 * (3.14 / 180))), -127,
419 -150 + (27 * cos(68 * (3.14 / 180))),
420 new TGeoRotation("who", 97.5, -68, -97.5)));
421 top->AddNodeOverlap(who, 1,
422 new TGeoCombiTrans(-195 - (27 * sin(102 * (3.14 / 180))), -127,
423 -150 + (27 * cos(102 * (3.14 / 180))),
424 new TGeoRotation("who", 97.5, -102, -97.5)));
425 top->AddNodeOverlap(who, 1,
426 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))), -127,
427 -150 + (27 * cos(136 * (3.14 / 180))),
428 new TGeoRotation("who", 97.5, -136, -97.5)));
429
430 top->AddNodeOverlap(who, 1,
431 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 12, -127,
432 -150 + (27 * cos(136 * (3.14 / 180))) - 10,
433 new TGeoRotation("who", 97.5, -140, -97.5)));
434 top->AddNodeOverlap(who, 1,
435 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 24, -127,
436 -150 + (27 * cos(136 * (3.14 / 180))) - 20,
437 new TGeoRotation("who", 97.5, -142, -97.5)));
438 top->AddNodeOverlap(who, 1,
439 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 35, -127,
440 -150 + (27 * cos(136 * (3.14 / 180))) - 30,
441 new TGeoRotation("who", 97.5, -139, -97.5)));
442 top->AddNodeOverlap(who, 1,
443 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 48, -127,
444 -150 + (27 * cos(136 * (3.14 / 180))) - 41,
445 new TGeoRotation("who", 97.5, -153, -97.5)));
446 //-------------------------
447 top->AddNodeOverlap(who, 1,
448 new TGeoCombiTrans(-195 - (27 * sin(34 * (3.14 / 180))), -113,
449 -150 + (27 * cos(34 * (3.14 / 180))),
450 new TGeoRotation("who", 82.5, -34, -82.5)));
451 top->AddNodeOverlap(who, 1,
452 new TGeoCombiTrans(-195 - (27 * sin(68 * (3.14 / 180))), -113,
453 -150 + (27 * cos(68 * (3.14 / 180))),
454 new TGeoRotation("who", 82.5, -68, -82.5)));
455 top->AddNodeOverlap(who, 1,
456 new TGeoCombiTrans(-195 - (27 * sin(102 * (3.14 / 180))), -113,
457 -150 + (27 * cos(102 * (3.14 / 180))),
458 new TGeoRotation("who", 82.5, -102, -82.5)));
459 top->AddNodeOverlap(who, 1,
460 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))), -113,
461 -150 + (27 * cos(136 * (3.14 / 180))),
462 new TGeoRotation("who", 82.5, -136, -82.5)));
463
464 top->AddNodeOverlap(who, 1,
465 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 12, -113,
466 -150 + (27 * cos(136 * (3.14 / 180))) - 10,
467 new TGeoRotation("who", 82.5, -140, -82.5)));
468 top->AddNodeOverlap(who, 1,
469 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 24, -113,
470 -150 + (27 * cos(136 * (3.14 / 180))) - 20,
471 new TGeoRotation("who", 82.5, -142, -82.5)));
472 top->AddNodeOverlap(who, 1,
473 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 35, -113,
474 -150 + (27 * cos(136 * (3.14 / 180))) - 30,
475 new TGeoRotation("who", 82.5, -139, -82.5)));
476 top->AddNodeOverlap(who, 1,
477 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 48, -113,
478 -150 + (27 * cos(136 * (3.14 / 180))) - 41,
479 new TGeoRotation("who", 82.5, -153, -82.5)));
480
481 TGeoVolume *chc0i = geom->MakeTubs("chc0i", Iron, 24.5, 26.5, 5, 0, 34); // Small Plate front
482 chc0i->SetLineColor(12);
483 TGeoVolume *chc1i = geom->MakeTubs("chc1i", Iron, 24.5, 26.5, 5, 34, 68); // Small Plate front
484 chc1i->SetLineColor(12);
485 TGeoVolume *chc2i = geom->MakeTubs("chc2i", Iron, 24.5, 26.5, 5, 68, 102); // Small Plate front
486 chc2i->SetLineColor(12);
487 TGeoVolume *chc3i = geom->MakeTubs("chc3i", Iron, 24.5, 26.5, 5, 102, 136); // Small Plate front
488 chc3i->SetLineColor(12);
489
490 top->AddNodeOverlap(chc0i, 1, new TGeoCombiTrans(-195, -129, -150, new TGeoRotation("chc0", 0, 90, 90)));
491 top->AddNodeOverlap(chc1i, 1, new TGeoCombiTrans(-195, -129, -150, new TGeoRotation("chc1", 0, 90, 90)));
492 top->AddNodeOverlap(chc2i, 1, new TGeoCombiTrans(-195, -129, -150, new TGeoRotation("chc2", 0, 90, 90)));
493 top->AddNodeOverlap(chc3i, 1, new TGeoCombiTrans(-195, -129, -150, new TGeoRotation("chc3", 0, 90, 90)));
494
495 top->AddNodeOverlap(chc0i, 1, new TGeoCombiTrans(-195, -111, -150, new TGeoRotation("chc0", 0, 90, 90)));
496 top->AddNodeOverlap(chc1i, 1, new TGeoCombiTrans(-195, -111, -150, new TGeoRotation("chc1", 0, 90, 90)));
497 top->AddNodeOverlap(chc2i, 1, new TGeoCombiTrans(-195, -111, -150, new TGeoRotation("chc2", 0, 90, 90)));
498 top->AddNodeOverlap(chc3i, 1, new TGeoCombiTrans(-195, -111, -150, new TGeoRotation("chc3", 0, 90, 90)));
499
500 top->AddNodeOverlap(chcl, 1,
501 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 06, -129,
502 -150 + (25 * cos(136 * (3.14 / 180))) - 5,
503 new TGeoRotation("chcl", 90, -140, -90)));
504 top->AddNodeOverlap(chcl, 1,
505 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 18, -129,
506 -150 + (25 * cos(136 * (3.14 / 180))) - 15,
507 new TGeoRotation("chcl", 90, -142, -90)));
508 top->AddNodeOverlap(chcl, 1,
509 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 29, -129,
510 -150 + (25 * cos(136 * (3.14 / 180))) - 25,
511 new TGeoRotation("chcl", 90, -139, -90)));
512 top->AddNodeOverlap(chcl, 1,
513 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 41, -129,
514 -150 + (25 * cos(136 * (3.14 / 180))) - 35,
515 new TGeoRotation("chcl", 90, -138, -90)));
516
517 top->AddNodeOverlap(chcl, 1,
518 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 06, -111,
519 -150 + (25 * cos(136 * (3.14 / 180))) - 5,
520 new TGeoRotation("chcl", 90, -140, -90)));
521 top->AddNodeOverlap(chcl, 1,
522 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 18, -111,
523 -150 + (25 * cos(136 * (3.14 / 180))) - 15,
524 new TGeoRotation("chcl", 90, -142, -90)));
525 top->AddNodeOverlap(chcl, 1,
526 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 29, -111,
527 -150 + (25 * cos(136 * (3.14 / 180))) - 25,
528 new TGeoRotation("chcl", 90, -139, -90)));
529 top->AddNodeOverlap(chcl, 1,
530 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 41, -111,
531 -150 + (25 * cos(136 * (3.14 / 180))) - 35,
532 new TGeoRotation("chcl", 90, -138, -90)));
533
534 TGeoVolume *chc4i = geom->MakeTubs("chc4i", Iron, 31.5, 33, 5, 145, 175); // Small Plate front
535 chc4i->SetLineColor(12);
536 top->AddNodeOverlap(chc4i, 1, new TGeoCombiTrans(-150, -111, -180, new TGeoRotation("chc3", 0, 90, 90)));
537 top->AddNodeOverlap(chc4i, 1, new TGeoCombiTrans(-150, -129, -180, new TGeoRotation("chc3", 0, 90, 90)));
538
539 // just other side
540
541 top->AddNodeOverlap(WH, 1,
542 new TGeoCombiTrans(180 + (25 * sin(34 * (3.14 / 180))), 120,
543 -150 + (25 * cos(34 * (3.14 / 180))), new TGeoRotation("who", 90, 34, -90)));
544 top->AddNodeOverlap(WH, 1,
545 new TGeoCombiTrans(180 + (25 * sin(68 * (3.14 / 180))), 120,
546 -150 + (25 * cos(68 * (3.14 / 180))), new TGeoRotation("who", 90, 68, -90)));
547 top->AddNodeOverlap(WH, 1,
548 new TGeoCombiTrans(180 + (25 * sin(102 * (3.14 / 180))), 120,
549 -150 + (25 * cos(102 * (3.14 / 180))),
550 new TGeoRotation("who", 90, 102, -90)));
551 top->AddNodeOverlap(WH, 1,
552 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))), 120,
553 -150 + (25 * cos(136 * (3.14 / 180))),
554 new TGeoRotation("who", 90, 136, -90)));
555
556 top->AddNodeOverlap(WH, 1,
557 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 12, 120,
558 -150 + (25 * cos(136 * (3.14 / 180))) - 10,
559 new TGeoRotation("who", 90, 140, -90)));
560 top->AddNodeOverlap(WH, 1,
561 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 24, 120,
562 -150 + (25 * cos(136 * (3.14 / 180))) - 20,
563 new TGeoRotation("who", 90, 142, -90)));
564 top->AddNodeOverlap(WH, 1,
565 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 37, 120,
566 -150 + (25 * cos(136 * (3.14 / 180))) - 30,
567 new TGeoRotation("who", 90, 145, -90)));
568 top->AddNodeOverlap(WH, 1,
569 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 50, 120,
570 -150 + (25 * cos(136 * (3.14 / 180))) - 40,
571 new TGeoRotation("who", 90, 149, -90)));
572
573 top->AddNodeOverlap(whp, 1,
574 new TGeoCombiTrans(180 + (22.8 * sin(34 * (3.14 / 180))), 120,
575 -150 + (22.8 * cos(34 * (3.14 / 180))),
576 new TGeoRotation("whp", 90, 34, -90)));
577 top->AddNodeOverlap(whp, 1,
578 new TGeoCombiTrans(180 + (22.8 * sin(68 * (3.14 / 180))), 120,
579 -150 + (22.8 * cos(68 * (3.14 / 180))),
580 new TGeoRotation("whp", 90, 68, -90)));
581 top->AddNodeOverlap(whp, 1,
582 new TGeoCombiTrans(180 + (22.8 * sin(102 * (3.14 / 180))), 120,
583 -150 + (22.8 * cos(102 * (3.14 / 180))),
584 new TGeoRotation("whp", 90, 102, -90)));
585 top->AddNodeOverlap(whp, 1,
586 new TGeoCombiTrans(180 + (22.8 * sin(136 * (3.14 / 180))), 120,
587 -150 + (22.8 * cos(136 * (3.14 / 180))),
588 new TGeoRotation("whp", 90, 136, -90)));
589
590 top->AddNodeOverlap(whp, 1,
591 new TGeoCombiTrans(180 + (22.8 * sin(136 * (3.14 / 180))) - 12, 120,
592 -150 + (22.8 * cos(136 * (3.14 / 180))) - 10,
593 new TGeoRotation("whp", 90, 140, -90)));
594 top->AddNodeOverlap(whp, 1,
595 new TGeoCombiTrans(180 + (22.8 * sin(136 * (3.14 / 180))) - 24, 120,
596 -150 + (22.8 * cos(136 * (3.14 / 180))) - 20,
597 new TGeoRotation("whp", 90, 142, -90)));
598 top->AddNodeOverlap(whp, 1,
599 new TGeoCombiTrans(180 + (22.8 * sin(136 * (3.14 / 180))) - 37, 120,
600 -150 + (22.8 * cos(136 * (3.14 / 180))) - 30,
601 new TGeoRotation("whp", 90, 145, -90)));
602 top->AddNodeOverlap(whp, 1,
603 new TGeoCombiTrans(180 + (22.8 * sin(136 * (3.14 / 180))) - 50, 120,
604 -150 + (22.8 * cos(136 * (3.14 / 180))) - 40,
605 new TGeoRotation("whp", 90, 149, -90)));
606
607 top->AddNodeOverlap(who, 1,
608 new TGeoCombiTrans(180 + (27 * sin(34 * (3.14 / 180))), 113,
609 -150 + (27 * cos(34 * (3.14 / 180))),
610 new TGeoRotation("who", 97.5, 34, -97.5)));
611 top->AddNodeOverlap(who, 1,
612 new TGeoCombiTrans(180 + (27 * sin(68 * (3.14 / 180))), 113,
613 -150 + (27 * cos(68 * (3.14 / 180))),
614 new TGeoRotation("who", 97.5, 68, -97.5)));
615 top->AddNodeOverlap(who, 1,
616 new TGeoCombiTrans(180 + (27 * sin(102 * (3.14 / 180))), 113,
617 -150 + (27 * cos(102 * (3.14 / 180))),
618 new TGeoRotation("who", 97.5, 102, -97.5)));
619 top->AddNodeOverlap(who, 1,
620 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))), 113,
621 -150 + (27 * cos(136 * (3.14 / 180))),
622 new TGeoRotation("who", 97.5, 136, -97.5)));
623
624 top->AddNodeOverlap(who, 1,
625 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 12, 113,
626 -150 + (27 * cos(136 * (3.14 / 180))) - 10,
627 new TGeoRotation("who", 97.5, 140, -97.5)));
628 top->AddNodeOverlap(who, 1,
629 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 24, 113,
630 -150 + (27 * cos(136 * (3.14 / 180))) - 20,
631 new TGeoRotation("who", 97.5, 142, -97.5)));
632 top->AddNodeOverlap(who, 1,
633 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 37, 113,
634 -150 + (27 * cos(136 * (3.14 / 180))) - 30,
635 new TGeoRotation("who", 97.5, 145, -97.5)));
636 top->AddNodeOverlap(who, 1,
637 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 50, 113,
638 -150 + (27 * cos(136 * (3.14 / 180))) - 40,
639 new TGeoRotation("who", 97.5, 149, -97.5)));
640 //--------------------------
641 top->AddNodeOverlap(who, 1,
642 new TGeoCombiTrans(180 + (27 * sin(34 * (3.14 / 180))), 127,
643 -150 + (27 * cos(34 * (3.14 / 180))),
644 new TGeoRotation("who", 82.5, 34, -82.5)));
645 top->AddNodeOverlap(who, 1,
646 new TGeoCombiTrans(180 + (27 * sin(68 * (3.14 / 180))), 127,
647 -150 + (27 * cos(68 * (3.14 / 180))),
648 new TGeoRotation("who", 82.5, 68, -82.5)));
649 top->AddNodeOverlap(who, 1,
650 new TGeoCombiTrans(180 + (27 * sin(102 * (3.14 / 180))), 127,
651 -150 + (27 * cos(102 * (3.14 / 180))),
652 new TGeoRotation("who", 82.5, 102, -82.5)));
653 top->AddNodeOverlap(who, 1,
654 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))), 127,
655 -150 + (27 * cos(136 * (3.14 / 180))),
656 new TGeoRotation("who", 82.5, 136, -82.5)));
657
658 top->AddNodeOverlap(who, 1,
659 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 12, 127,
660 -150 + (27 * cos(136 * (3.14 / 180))) - 10,
661 new TGeoRotation("who", 82.5, 140, -82.5)));
662 top->AddNodeOverlap(who, 1,
663 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 24, 127,
664 -150 + (27 * cos(136 * (3.14 / 180))) - 20,
665 new TGeoRotation("who", 82.5, 142, -82.5)));
666 top->AddNodeOverlap(who, 1,
667 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 37, 127,
668 -150 + (27 * cos(136 * (3.14 / 180))) - 30,
669 new TGeoRotation("who", 82.5, 145, -82.5)));
670 top->AddNodeOverlap(who, 1,
671 new TGeoCombiTrans(180 + (27 * sin(136 * (3.14 / 180))) - 50, 127,
672 -150 + (27 * cos(136 * (3.14 / 180))) - 40,
673 new TGeoRotation("who", 82.5, 149, -82.5)));
674
675 top->AddNodeOverlap(chc0, 1, new TGeoCombiTrans(180, 129, -150, new TGeoRotation("chc0", 0, 90, 90)));
676 top->AddNodeOverlap(chc1, 1, new TGeoCombiTrans(180, 129, -150, new TGeoRotation("chc1", 0, 90, 90)));
677 top->AddNodeOverlap(chc2, 1, new TGeoCombiTrans(180, 129, -150, new TGeoRotation("chc2", 0, 90, 90)));
678 top->AddNodeOverlap(chc3, 1, new TGeoCombiTrans(180, 129, -150, new TGeoRotation("chc3", 0, 90, 90)));
679
680 top->AddNodeOverlap(chc0, 1, new TGeoCombiTrans(180, 111, -150, new TGeoRotation("chc0", 0, 90, 90)));
681 top->AddNodeOverlap(chc1, 1, new TGeoCombiTrans(180, 111, -150, new TGeoRotation("chc1", 0, 90, 90)));
682 top->AddNodeOverlap(chc2, 1, new TGeoCombiTrans(180, 111, -150, new TGeoRotation("chc2", 0, 90, 90)));
683 top->AddNodeOverlap(chc3, 1, new TGeoCombiTrans(180, 111, -150, new TGeoRotation("chc3", 0, 90, 90)));
684
685 top->AddNodeOverlap(chcl, 1,
686 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 6, 111,
687 -150 + (25 * cos(136 * (3.14 / 180))) - 5,
688 new TGeoRotation("chcl", 90, 140, -90)));
689 top->AddNodeOverlap(chcl, 1,
690 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 18, 111,
691 -150 + (25 * cos(136 * (3.14 / 180))) - 15,
692 new TGeoRotation("chcl", 90, 142, -90)));
693 top->AddNodeOverlap(chcl, 1,
694 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 30, 111,
695 -150 + (25 * cos(136 * (3.14 / 180))) - 25,
696 new TGeoRotation("chcl", 90, 145, -90)));
697 top->AddNodeOverlap(chcl, 1,
698 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 43, 111,
699 -150 + (25 * cos(136 * (3.14 / 180))) - 35,
700 new TGeoRotation("chcl", 90, 149, -90)));
701
702 top->AddNodeOverlap(chcl, 1,
703 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 6, 129,
704 -150 + (25 * cos(136 * (3.14 / 180))) - 5,
705 new TGeoRotation("chcl", 90, 140, -90)));
706 top->AddNodeOverlap(chcl, 1,
707 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 18, 129,
708 -150 + (25 * cos(136 * (3.14 / 180))) - 15,
709 new TGeoRotation("chcl", 90, 142, -90)));
710 top->AddNodeOverlap(chcl, 1,
711 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 30, 129,
712 -150 + (25 * cos(136 * (3.14 / 180))) - 25,
713 new TGeoRotation("chcl", 90, 145, -90)));
714 top->AddNodeOverlap(chcl, 1,
715 new TGeoCombiTrans(180 + (25 * sin(136 * (3.14 / 180))) - 43, 129,
716 -150 + (25 * cos(136 * (3.14 / 180))) - 35,
717 new TGeoRotation("chcl", 90, 149, -90)));
718
719 top->AddNodeOverlap(WH, 1,
720 new TGeoCombiTrans(-195 - (25 * sin(34 * (3.14 / 180))), 120,
721 -150 + (25 * cos(34 * (3.14 / 180))), new TGeoRotation("who", 90, -34, -90)));
722 top->AddNodeOverlap(WH, 1,
723 new TGeoCombiTrans(-195 - (25 * sin(68 * (3.14 / 180))), 120,
724 -150 + (25 * cos(68 * (3.14 / 180))), new TGeoRotation("who", 90, -68, -90)));
725 top->AddNodeOverlap(WH, 1,
726 new TGeoCombiTrans(-195 - (25 * sin(102 * (3.14 / 180))), 120,
727 -150 + (25 * cos(102 * (3.14 / 180))),
728 new TGeoRotation("who", 90, -102, -90)));
729 top->AddNodeOverlap(WH, 1,
730 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))), 120,
731 -150 + (25 * cos(136 * (3.14 / 180))),
732 new TGeoRotation("who", 90, -136, -90)));
733
734 top->AddNodeOverlap(WH, 1,
735 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 12, 120,
736 -150 + (25 * cos(136 * (3.14 / 180))) - 10,
737 new TGeoRotation("who", 90, -140, -90)));
738 top->AddNodeOverlap(WH, 1,
739 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 24, 120,
740 -150 + (25 * cos(136 * (3.14 / 180))) - 20,
741 new TGeoRotation("who", 90, -142, -90)));
742 top->AddNodeOverlap(WH, 1,
743 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 35, 120,
744 -150 + (25 * cos(136 * (3.14 / 180))) - 30,
745 new TGeoRotation("who", 90, -139, -90)));
746 top->AddNodeOverlap(WH, 1,
747 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 48, 120,
748 -150 + (25 * cos(136 * (3.14 / 180))) - 41,
749 new TGeoRotation("who", 90, -153, -90)));
750
751 top->AddNodeOverlap(whp, 1,
752 new TGeoCombiTrans(-195 - (22.8 * sin(34 * (3.14 / 180))), 120,
753 -150 + (22.8 * cos(34 * (3.14 / 180))),
754 new TGeoRotation("whp", 90, -34, -90)));
755 top->AddNodeOverlap(whp, 1,
756 new TGeoCombiTrans(-195 - (22.8 * sin(68 * (3.14 / 180))), 120,
757 -150 + (22.8 * cos(68 * (3.14 / 180))),
758 new TGeoRotation("whp", 90, -68, -90)));
759 top->AddNodeOverlap(whp, 1,
760 new TGeoCombiTrans(-195 - (22.8 * sin(102 * (3.14 / 180))), 120,
761 -150 + (22.8 * cos(102 * (3.14 / 180))),
762 new TGeoRotation("whp", 90, -102, -90)));
763 top->AddNodeOverlap(whp, 1,
764 new TGeoCombiTrans(-195 - (22.8 * sin(136 * (3.14 / 180))), 120,
765 -150 + (22.8 * cos(136 * (3.14 / 180))),
766 new TGeoRotation("whp", 90, -136, -90)));
767
768 top->AddNodeOverlap(whp, 1,
769 new TGeoCombiTrans(-195 - (22.8 * sin(136 * (3.14 / 180))) + 12, 120,
770 -150 + (22.8 * cos(136 * (3.14 / 180))) - 10,
771 new TGeoRotation("whp", 90, -140, -90)));
772 top->AddNodeOverlap(whp, 1,
773 new TGeoCombiTrans(-195 - (22.8 * sin(136 * (3.14 / 180))) + 24, 120,
774 -150 + (22.8 * cos(136 * (3.14 / 180))) - 20,
775 new TGeoRotation("whp", 90, -142, -90)));
776 top->AddNodeOverlap(whp, 1,
777 new TGeoCombiTrans(-195 - (22.8 * sin(136 * (3.14 / 180))) + 35, 120,
778 -150 + (22.8 * cos(136 * (3.14 / 180))) - 30,
779 new TGeoRotation("whp", 90, -139, -90)));
780 top->AddNodeOverlap(whp, 1,
781 new TGeoCombiTrans(-195 - (22.8 * sin(136 * (3.14 / 180))) + 48, 120,
782 -150 + (22.8 * cos(136 * (3.14 / 180))) - 41,
783 new TGeoRotation("whp", 90, -153, -90)));
784
785 top->AddNodeOverlap(who, 1,
786 new TGeoCombiTrans(-195 - (27 * sin(34 * (3.14 / 180))), 113,
787 -150 + (27 * cos(34 * (3.14 / 180))),
788 new TGeoRotation("who", 97.5, -34, -97.5)));
789 top->AddNodeOverlap(who, 1,
790 new TGeoCombiTrans(-195 - (27 * sin(68 * (3.14 / 180))), 113,
791 -150 + (27 * cos(68 * (3.14 / 180))),
792 new TGeoRotation("who", 97.5, -68, -97.5)));
793 top->AddNodeOverlap(who, 1,
794 new TGeoCombiTrans(-195 - (27 * sin(102 * (3.14 / 180))), 113,
795 -150 + (27 * cos(102 * (3.14 / 180))),
796 new TGeoRotation("who", 97.5, -102, -97.5)));
797 top->AddNodeOverlap(who, 1,
798 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))), 113,
799 -150 + (27 * cos(136 * (3.14 / 180))),
800 new TGeoRotation("who", 97.5, -136, -97.5)));
801
802 top->AddNodeOverlap(who, 1,
803 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 12, 113,
804 -150 + (27 * cos(136 * (3.14 / 180))) - 10,
805 new TGeoRotation("who", 97.5, -140, -97.5)));
806 top->AddNodeOverlap(who, 1,
807 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 24, 113,
808 -150 + (27 * cos(136 * (3.14 / 180))) - 20,
809 new TGeoRotation("who", 97.5, -142, -97.5)));
810 top->AddNodeOverlap(who, 1,
811 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 35, 113,
812 -150 + (27 * cos(136 * (3.14 / 180))) - 30,
813 new TGeoRotation("who", 97.5, -139, -97.5)));
814 top->AddNodeOverlap(who, 1,
815 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 48, 113,
816 -150 + (27 * cos(136 * (3.14 / 180))) - 41,
817 new TGeoRotation("who", 97.5, -153, -97.5)));
818 //-------------------------
819 top->AddNodeOverlap(who, 1,
820 new TGeoCombiTrans(-195 - (27 * sin(34 * (3.14 / 180))), 127,
821 -150 + (27 * cos(34 * (3.14 / 180))),
822 new TGeoRotation("who", 82.5, -34, -82.5)));
823 top->AddNodeOverlap(who, 1,
824 new TGeoCombiTrans(-195 - (27 * sin(68 * (3.14 / 180))), 127,
825 -150 + (27 * cos(68 * (3.14 / 180))),
826 new TGeoRotation("who", 82.5, -68, -82.5)));
827 top->AddNodeOverlap(who, 1,
828 new TGeoCombiTrans(-195 - (27 * sin(102 * (3.14 / 180))), 127,
829 -150 + (27 * cos(102 * (3.14 / 180))),
830 new TGeoRotation("who", 82.5, -102, -82.5)));
831 top->AddNodeOverlap(who, 1,
832 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))), 127,
833 -150 + (27 * cos(136 * (3.14 / 180))),
834 new TGeoRotation("who", 82.5, -136, -82.5)));
835
836 top->AddNodeOverlap(who, 1,
837 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 12, 127,
838 -150 + (27 * cos(136 * (3.14 / 180))) - 10,
839 new TGeoRotation("who", 82.5, -140, -82.5)));
840 top->AddNodeOverlap(who, 1,
841 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 24, 127,
842 -150 + (27 * cos(136 * (3.14 / 180))) - 20,
843 new TGeoRotation("who", 82.5, -142, -82.5)));
844 top->AddNodeOverlap(who, 1,
845 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 35, 127,
846 -150 + (27 * cos(136 * (3.14 / 180))) - 30,
847 new TGeoRotation("who", 82.5, -139, -82.5)));
848 top->AddNodeOverlap(who, 1,
849 new TGeoCombiTrans(-195 - (27 * sin(136 * (3.14 / 180))) + 48, 127,
850 -150 + (27 * cos(136 * (3.14 / 180))) - 41,
851 new TGeoRotation("who", 82.5, -153, -82.5)));
852
853 top->AddNodeOverlap(chc0i, 1, new TGeoCombiTrans(-195, 129, -150, new TGeoRotation("chc0", 0, 90, 90)));
854 top->AddNodeOverlap(chc1i, 1, new TGeoCombiTrans(-195, 129, -150, new TGeoRotation("chc1", 0, 90, 90)));
855 top->AddNodeOverlap(chc2i, 1, new TGeoCombiTrans(-195, 129, -150, new TGeoRotation("chc2", 0, 90, 90)));
856 top->AddNodeOverlap(chc3i, 1, new TGeoCombiTrans(-195, 129, -150, new TGeoRotation("chc3", 0, 90, 90)));
857
858 top->AddNodeOverlap(chc0i, 1, new TGeoCombiTrans(-195, 111, -150, new TGeoRotation("chc0", 0, 90, 90)));
859 top->AddNodeOverlap(chc1i, 1, new TGeoCombiTrans(-195, 111, -150, new TGeoRotation("chc1", 0, 90, 90)));
860 top->AddNodeOverlap(chc2i, 1, new TGeoCombiTrans(-195, 111, -150, new TGeoRotation("chc2", 0, 90, 90)));
861 top->AddNodeOverlap(chc3i, 1, new TGeoCombiTrans(-195, 111, -150, new TGeoRotation("chc3", 0, 90, 90)));
862
863 top->AddNodeOverlap(chcl, 1,
864 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 06, 129,
865 -150 + (25 * cos(136 * (3.14 / 180))) - 5,
866 new TGeoRotation("chcl", 90, -140, -90)));
867 top->AddNodeOverlap(chcl, 1,
868 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 18, 129,
869 -150 + (25 * cos(136 * (3.14 / 180))) - 15,
870 new TGeoRotation("chcl", 90, -142, -90)));
871 top->AddNodeOverlap(chcl, 1,
872 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 29, 129,
873 -150 + (25 * cos(136 * (3.14 / 180))) - 25,
874 new TGeoRotation("chcl", 90, -139, -90)));
875 top->AddNodeOverlap(chcl, 1,
876 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 41, 129,
877 -150 + (25 * cos(136 * (3.14 / 180))) - 35,
878 new TGeoRotation("chcl", 90, -138, -90)));
879
880 top->AddNodeOverlap(chcl, 1,
881 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 06, 111,
882 -150 + (25 * cos(136 * (3.14 / 180))) - 5,
883 new TGeoRotation("chcl", 90, -140, -90)));
884 top->AddNodeOverlap(chcl, 1,
885 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 18, 111,
886 -150 + (25 * cos(136 * (3.14 / 180))) - 15,
887 new TGeoRotation("chcl", 90, -142, -90)));
888 top->AddNodeOverlap(chcl, 1,
889 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 29, 111,
890 -150 + (25 * cos(136 * (3.14 / 180))) - 25,
891 new TGeoRotation("chcl", 90, -139, -90)));
892 top->AddNodeOverlap(chcl, 1,
893 new TGeoCombiTrans(-195 - (25 * sin(136 * (3.14 / 180))) + 41, 111,
894 -150 + (25 * cos(136 * (3.14 / 180))) - 35,
895 new TGeoRotation("chcl", 90, -138, -90)));
896
897 // consist under chain
898 for (int i = 0; i < 20; i++) {
899 sprintf(name, "wh%d", i);
900 top->AddNodeOverlap(WH, 1, new TGeoTranslation(-150 + (15 * i), -120, -212));
901 top->AddNodeOverlap(WH, 1, new TGeoTranslation(-150 + (15 * i), 120, -212));
902
903 top->AddNodeOverlap(whp, 1, new TGeoTranslation(-150 + (15 * i), -120, -210));
904 top->AddNodeOverlap(whp, 1, new TGeoTranslation(-150 + (15 * i), 120, -210));
905
906 top->AddNodeOverlap(who, 1, new TGeoCombiTrans(-150 + (15 * i), -127, -214, new TGeoRotation("who", 15, 0, 0)));
907 top->AddNodeOverlap(who, 1, new TGeoCombiTrans(-150 + (15 * i), -113, -214, new TGeoRotation("who", -15, 0, 0)));
908 top->AddNodeOverlap(who, 1, new TGeoCombiTrans(-150 + (15 * i), 127, -214, new TGeoRotation("who", -15, 0, 0)));
909 top->AddNodeOverlap(who, 1, new TGeoCombiTrans(-150 + (15 * i), 113, -214, new TGeoRotation("who", 15, 0, 0)));
910 }
911 TGeoVolume *WHlu = geom->MakeBox(name, Iron, 140, 5, 1); // chain connetor in under
912 WHlu->SetLineColor(12);
913 top->AddNodeOverlap(WHlu, 1, new TGeoTranslation(-7.5, -129, -212));
914 top->AddNodeOverlap(WHlu, 1, new TGeoTranslation(-7.5, -111, -212));
915 top->AddNodeOverlap(WHlu, 1, new TGeoTranslation(-7.5, 129, -212));
916 top->AddNodeOverlap(WHlu, 1, new TGeoTranslation(-7.5, 111, -212));
917
918 // Now, we put real shape
919
920 top->AddNodeOverlap(underbody, 1, new TGeoTranslation(0, 0, -160));
921 top->AddNodeOverlap(pl, 1, new TGeoTranslation(0, 0, -130));
922 top->AddNodeOverlap(tp, 1, new TGeoTranslation(30, 0, -83));
923 top->AddNodeOverlap(tp1, 1, new TGeoTranslation(30, 0, -208));
924 top->AddNodeOverlap(pl2, 1, new TGeoTranslation(0, -120, -100));
925 top->AddNodeOverlap(pl2, 1, new TGeoTranslation(0, 120, -100));
926 top->AddNodeOverlap(pl1, 1, new TGeoTranslation(0, -120, -115));
927 top->AddNodeOverlap(pl1, 1, new TGeoTranslation(0, 120, -115));
928 top->AddNodeOverlap(bs, 1, new TGeoCombiTrans(180, 0, -150, new TGeoRotation("bs", 180, 90, 90)));
929 top->AddNodeOverlap(bsp, 1, new TGeoCombiTrans(-195, 61.5, -150, new TGeoRotation("bsp", 0, 90, 90)));
930 top->AddNodeOverlap(bsp, 1, new TGeoCombiTrans(-195, -61.5, -150, new TGeoRotation("bsp", 0, 90, 90)));
931
932 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(-115, -132.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
933 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(-45, -132.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
934 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(35, -132.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
935 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(95, -132.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
936
937 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(-115, -107.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
938 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(-45, -107.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
939 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(35, -107.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
940 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(95, -107.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
941
942 top->AddNodeOverlap(Tip0, 1, new TGeoCombiTrans(-115, -110.5, -140, new TGeoRotation("Tip0", 0, 90, 90)));
943 top->AddNodeOverlap(Tip0, 1, new TGeoCombiTrans(-45, -110.5, -140, new TGeoRotation("Tip0", 0, 90, 90)));
944 top->AddNodeOverlap(Tip0, 1, new TGeoCombiTrans(35, -110.5, -140, new TGeoRotation("Tip0", 0, 90, 90)));
945 top->AddNodeOverlap(Tip0, 1, new TGeoCombiTrans(95, -110.5, -140, new TGeoRotation("Tip0", 0, 90, 90)));
946
947 top->AddNodeOverlap(Tip, 1, new TGeoCombiTrans(-150, -120, -180, new TGeoRotation("Tip", 0, 90, 90)));
948 top->AddNodeOverlap(Tip, 1, new TGeoCombiTrans(-80, -120, -180, new TGeoRotation("Tip", 0, 90, 90)));
949 top->AddNodeOverlap(Tip, 1, new TGeoCombiTrans(-10, -120, -180, new TGeoRotation("Tip", 0, 90, 90)));
950 top->AddNodeOverlap(Tip, 1, new TGeoCombiTrans(60, -120, -180, new TGeoRotation("Tip", 0, 90, 90)));
951 top->AddNodeOverlap(Tip, 1, new TGeoCombiTrans(130, -120, -180, new TGeoRotation("Tip", 0, 90, 90)));
952
953 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(-150, -107.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
954 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(-150, -132.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
955 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(-80, -107.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
956 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(-80, -132.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
957 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(-10, -107.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
958 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(-10, -132.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
959 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(60, -107.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
960 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(60, -132.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
961 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(130, -107.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
962 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(130, -132.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
963
964 top->AddNodeOverlap(Tip2, 1, new TGeoCombiTrans(-150, -112.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
965 top->AddNodeOverlap(Tip2, 1, new TGeoCombiTrans(-80, -112.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
966 top->AddNodeOverlap(Tip2, 1, new TGeoCombiTrans(-10, -112.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
967 top->AddNodeOverlap(Tip2, 1, new TGeoCombiTrans(60, -112.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
968 top->AddNodeOverlap(Tip2, 1, new TGeoCombiTrans(130, -112.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
969
970 top->AddNodeOverlap(wheel1, 1, new TGeoCombiTrans(180, -120, -150, new TGeoRotation("wheel1", 0, 90, 90)));
971 top->AddNodeOverlap(wheel1, 1, new TGeoCombiTrans(-195, -120, -150, new TGeoRotation("wheel1", 0, 90, 90)));
972 top->AddNodeOverlap(wheel2, 1, new TGeoCombiTrans(180, -107.5, -150, new TGeoRotation("wheel2", 0, 90, 90)));
973 top->AddNodeOverlap(wheel2, 1, new TGeoCombiTrans(180, -132.5, -150, new TGeoRotation("wheel2", 0, 90, 90)));
974 top->AddNodeOverlap(wheel2, 1, new TGeoCombiTrans(-195, -107.5, -150, new TGeoRotation("wheel2", 0, 90, 90)));
975 top->AddNodeOverlap(wheel2, 1, new TGeoCombiTrans(-195, -132.5, -150, new TGeoRotation("wheel2", 0, 90, 90)));
976 top->AddNodeOverlap(wheel, 1, new TGeoCombiTrans(180, -112.5, -150, new TGeoRotation("wheel", 0, 90, 90)));
977 top->AddNodeOverlap(wheel, 1, new TGeoCombiTrans(-195, -112.5, -150, new TGeoRotation("wheel2", 0, 90, 90)));
978
979 top->AddNodeOverlap(sp, 1, new TGeoCombiTrans(-209, -120, -149, new TGeoRotation("sp", 0, 90, 90))); // sp!
980 top->AddNodeOverlap(sp, 1, new TGeoCombiTrans(209, -120, -149, new TGeoRotation("sp1", 180, 90, 90))); // sp!
981
982 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(-115, 132.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
983 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(-45, 132.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
984 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(35, 132.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
985 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(95, 132.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
986
987 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(-115, 107.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
988 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(-45, 107.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
989 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(35, 107.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
990 top->AddNodeOverlap(Tip01, 1, new TGeoCombiTrans(95, 107.5, -140, new TGeoRotation("Tip01", 0, 90, 90)));
991
992 top->AddNodeOverlap(Tip0, 1, new TGeoCombiTrans(-115, 110.5, -140, new TGeoRotation("Tip0", 0, 90, 90)));
993 top->AddNodeOverlap(Tip0, 1, new TGeoCombiTrans(-45, 110.5, -140, new TGeoRotation("Tip0", 0, 90, 90)));
994 top->AddNodeOverlap(Tip0, 1, new TGeoCombiTrans(35, 110.5, -140, new TGeoRotation("Tip0", 0, 90, 90)));
995 top->AddNodeOverlap(Tip0, 1, new TGeoCombiTrans(95, 110.5, -140, new TGeoRotation("Tip0", 0, 90, 90)));
996
997 top->AddNodeOverlap(Tip, 1, new TGeoCombiTrans(-150, 120, -180, new TGeoRotation("Tip", 0, 90, 90)));
998 top->AddNodeOverlap(Tip, 1, new TGeoCombiTrans(-80, 120, -180, new TGeoRotation("Tip", 0, 90, 90)));
999 top->AddNodeOverlap(Tip, 1, new TGeoCombiTrans(-10, 120, -180, new TGeoRotation("Tip", 0, 90, 90)));
1000 top->AddNodeOverlap(Tip, 1, new TGeoCombiTrans(60, 120, -180, new TGeoRotation("Tip", 0, 90, 90)));
1001 top->AddNodeOverlap(Tip, 1, new TGeoCombiTrans(130, 120, -180, new TGeoRotation("Tip", 0, 90, 90)));
1002
1003 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(-150, 107.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1004 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(-150, 132.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1005 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(-80, 107.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1006 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(-80, 132.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1007 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(-10, 107.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1008 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(-10, 132.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1009 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(60, 107.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1010 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(60, 132.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1011 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(130, 107.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1012 top->AddNodeOverlap(Tip1, 1, new TGeoCombiTrans(130, 132.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1013
1014 top->AddNodeOverlap(Tip2, 1, new TGeoCombiTrans(-150, 112.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1015 top->AddNodeOverlap(Tip2, 1, new TGeoCombiTrans(-80, 112.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1016 top->AddNodeOverlap(Tip2, 1, new TGeoCombiTrans(-10, 112.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1017 top->AddNodeOverlap(Tip2, 1, new TGeoCombiTrans(60, 112.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1018 top->AddNodeOverlap(Tip2, 1, new TGeoCombiTrans(130, 112.5, -180, new TGeoRotation("Tip", 0, 90, 90)));
1019
1020 top->AddNodeOverlap(wheel, 1, new TGeoCombiTrans(-195, 112.5, -150, new TGeoRotation("wheel1", 0, 90, 90)));
1021 top->AddNodeOverlap(wheel, 1, new TGeoCombiTrans(180, 112.5, -150, new TGeoRotation("wheel", 0, 90, 90)));
1022 top->AddNodeOverlap(wheel1, 1, new TGeoCombiTrans(180, 120, -150, new TGeoRotation("wheel1", 0, 90, 90)));
1023 top->AddNodeOverlap(wheel1, 1, new TGeoCombiTrans(-195, 120, -150, new TGeoRotation("wheel1", 0, 90, 90)));
1024 top->AddNodeOverlap(wheel2, 1, new TGeoCombiTrans(180, 107.5, -150, new TGeoRotation("wheel2", 0, 90, 90)));
1025 top->AddNodeOverlap(wheel2, 1, new TGeoCombiTrans(180, 132.5, -150, new TGeoRotation("wheel2", 0, 90, 90)));
1026 top->AddNodeOverlap(wheel2, 1, new TGeoCombiTrans(-195, 107.5, -150, new TGeoRotation("wheel2", 0, 90, 90)));
1027 top->AddNodeOverlap(wheel2, 1, new TGeoCombiTrans(-195, 132.5, -150, new TGeoRotation("wheel2", 0, 90, 90)));
1028
1029 top->AddNodeOverlap(sp, 1, new TGeoCombiTrans(-209, 120, -149, new TGeoRotation("sp", 0, 90, 90))); // sp!
1030 top->AddNodeOverlap(sp, 1, new TGeoCombiTrans(209, 120, -149, new TGeoRotation("sp1", 180, 90, 90))); // sp!
1031 top->SetVisibility(false);
1032 geom->CloseGeometry();
1033
1034 //------------------draw on GL viewer-------------------------------
1035 top->Draw("ogl");
1036}
char name[80]
Definition TGX11.cxx:110
Class describing rotation + translation.
Definition TGeoMatrix.h:317
The manager class for any TGeo geometry.
Definition TGeoManager.h:44
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.
void CloseGeometry(Option_t *option="d")
Closing geometry implies checking the geometry validity, fixing shapes with negative parameters (run-...
TGeoVolume * MakeTrd2(const char *name, TGeoMedium *medium, Double_t dx1, Double_t dx2, Double_t dy1, Double_t dy2, Double_t dz)
Make in one step a volume pointing to a TGeoTrd2 shape with given medium.
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.
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.
void SetTopVolume(TGeoVolume *vol)
Set the top volume and corresponding node as starting point of the geometry.
void SetTopVisible(Bool_t vis=kTRUE)
make top volume visible on screen
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.
Base class describing materials.
Media are used to store properties related to tracking and which are useful only when using geometry ...
Definition TGeoMedium.h:23
Class describing rotations.
Definition TGeoMatrix.h:168
Class describing translations.
Definition TGeoMatrix.h:116
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
Definition TGeoVolume.h:43
void SetVisibility(Bool_t vis=kTRUE) override
set visibility of this volume
void Draw(Option_t *option="") override
draw top volume according to option
virtual void AddNodeOverlap(TGeoVolume *vol, Int_t copy_no, TGeoMatrix *mat=nullptr, Option_t *option="")
Add a TGeoNode to the list of nodes.
void SetLineColor(Color_t lcolor) override
Set the line color.
RVec< PromoteType< T > > cos(const RVec< T > &v)
Definition RVec.hxx:1852
RVec< PromoteType< T > > sin(const RVec< T > &v)
Definition RVec.hxx:1851