Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
building.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_geom
3/// Drawing a building where Dept. of Physics is, 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 building.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_building.png width=800px
14/// \macro_code
15///
16/// \author Hyung Ju Lee (laccalus@nate.com), Dept. of Physics, Univ. of Seoul
17
18#include "TGeoManager.h"
19
20void building()
21{
22 TGeoManager *geom = new TGeoManager("geom", "My First 3D Geometry");
23
24 // Materials
25 TGeoMaterial *Vacuum = new TGeoMaterial("vacuum", 0, 0, 0);
26 TGeoMaterial *Fe = new TGeoMaterial("Fe", 55.845, 26, 7.87);
27
28 // Media
29 TGeoMedium *Air = new TGeoMedium("Air", 0, Vacuum);
30 TGeoMedium *Iron = new TGeoMedium("Iron", 0, Fe);
31
32 // Volume
33 TGeoVolume *Phy_Building = geom->MakeBox("top", Air, 150, 150, 150);
34 geom->SetTopVolume(Phy_Building);
35 geom->SetTopVisible(false);
36 // If you want to see the boundary, please input the number, 1 instead of 0.
37 // Like this, geom->SetTopVisible(1);
38
39 TGeoVolume *mBlocks;
40
41 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
42 //////////////////////////////// Front-Building ///////////////////////////////
43 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
44
45 int i = 0;
46 int F = 0; // Floor
47 int N = 0; // Block_no
48 int nW = 8; // Number of windows
49 int nF = 3; // Number of Floor
50 char no_Block[100]; // Name of Block
51 double sP = 0; // Starting Phi of Tubs
52 double hP = 21; // Height of Tubs from Ground
53
54 while (F < nF) {
55 N = 0;
56 i = 0;
57 sP = 0;
58
59 /////////////////////////// Front of Building
60 while (i < nW) {
61 i++;
62 sprintf(no_Block, "B1_F%d_%d", F, ++N); // Windows (6.25)
63 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 29, 1.8, sP, sP + 6.25);
64 mBlocks->SetLineColor(12);
65 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP + (8 * F)));
66
67 if (i < nW) {
68 sprintf(no_Block, "B1_F%d_%d", F, ++N); // Walls (8)
69 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 30, 1.8, sP, sP + 2.5);
70 mBlocks->SetLineColor(2);
71 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP + (8 * F)));
72
73 sprintf(no_Block, "B1_F%d_%d", F, ++N);
74 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 31, 1.8, sP, sP + 1);
75 mBlocks->SetLineColor(2);
76 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP + (8 * F)));
77
78 sprintf(no_Block, "B1_F%d_%d", F, ++N);
79 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 30, 1.8, sP, sP + 1);
80 mBlocks->SetLineColor(2);
81 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP + (8 * F)));
82
83 sprintf(no_Block, "B1_F%d_%d", F, ++N);
84 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 31, 1.8, sP, sP + 1);
85 mBlocks->SetLineColor(2);
86 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP + (8 * F)));
87
88 sprintf(no_Block, "B1_F%d_%d", F, ++N);
89 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 30, 1.8, sP, sP + 2.5);
90 mBlocks->SetLineColor(2);
91 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP + (8 * F)));
92 }
93
94 if (i >= nW) {
95 sprintf(no_Block, "B1_F%d_%d", F, ++N); // Walls
96 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 30, 1.8, sP, 103);
97 mBlocks->SetLineColor(2);
98 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP + (8 * F)));
99 }
100 }
101
102 sprintf(no_Block, "B1_F%d", ++F); // No Windows Floor
103 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 30, 2.2, 0, 103);
104 mBlocks->SetLineColor(2);
105 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 12 + (8 * F)));
106
107 ///////////////////////////////////////// Back of Building
108 sprintf(no_Block, "B1_F%d_%d", F, ++N);
109 mBlocks = geom->MakeTubs(no_Block, Iron, 18.5, 21, 0.8, 92, 101);
110 mBlocks->SetLineColor(12);
111 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 9.4 + (8 * F)));
112
113 if (F < nF) {
114 sprintf(no_Block, "B1_F%d_%d", F, ++N);
115 mBlocks = geom->MakeTubs(no_Block, Iron, 18.5, 21, 3.2, 92, 102);
116 mBlocks->SetLineColor(2);
117 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 5.4 + (8 * F)));
118 }
119 }
120
121 sprintf(no_Block, "B1_F%d_%d", F, ++N); // Walls
122 mBlocks = geom->MakeTubs(no_Block, Iron, 18.5, 21, 2, 92, 102);
123 mBlocks->SetLineColor(2);
124 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 4));
125 sprintf(no_Block, "B1_F%d_%d", F, ++N);
126 mBlocks = geom->MakeTubs(no_Block, Iron, 18.5, 21, 3.2, 92, 102);
127 mBlocks->SetLineColor(2);
128 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 5.4 + (8 * F)));
129
130 sprintf(no_Block, "B1_F%d_%d", F, ++N);
131 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 30, 2, 0, 103);
132 mBlocks->SetLineColor(2);
133 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 4.2 + (8 * F)));
134
135 sprintf(no_Block, "B1_F%d_%d", F, ++N);
136 mBlocks = geom->MakeTubs(no_Block, Iron, 18, 21, 2, 0, 102);
137 mBlocks->SetLineColor(2);
138 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 4.2 + (8 * F)));
139
140 sprintf(no_Block, "B1_F%d_%d", F, ++N);
141 mBlocks = geom->MakeTubs(no_Block, Iron, 18, 18.5, 14, 92, 103);
142 mBlocks->SetLineColor(2);
143 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 29));
144
145 //////////////////////// Front of Building
146 sprintf(no_Block, "B1_F%d_%d", F, ++N);
147 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 29, 2, 0, 97);
148 mBlocks->SetLineColor(12);
149 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 13));
150
151 sprintf(no_Block, "B1_F%d_%d", F, ++N);
152 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 32, 2, 37, 97);
153 mBlocks->SetLineColor(18);
154 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 9));
155
156 sprintf(no_Block, "B1_F%d_%d", F, ++N);
157 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 29, 1.95, 0, 37);
158 mBlocks->SetLineColor(30);
159 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 9.05));
160 sprintf(no_Block, "B1_F%d_%d", F, ++N);
161 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 29, 0.05, 0, 37);
162 mBlocks->SetLineColor(18);
163 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 7.05));
164
165 //////////////////////// Rooftop
166 sprintf(no_Block, "B1_RT%d", N = 0);
167 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 29.5, 0.2, 0, 102);
168 mBlocks->SetLineColor(18);
169 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 2 + (8 * F)));
170 sprintf(no_Block, "B1_RT%d", ++N);
171 mBlocks = geom->MakeTubs(no_Block, Iron, 18.5, 21, 0.2, 0, 101);
172 mBlocks->SetLineColor(18);
173 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 2 + (8 * F)));
174
175 sprintf(no_Block, "B1_RT%d", ++N);
176 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 30, 0.7, 102.9, 103);
177 mBlocks->SetLineColor(2);
178 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.8 + (8 * F)));
179 sprintf(no_Block, "B1_RT%d", ++N);
180 mBlocks = geom->MakeTubs(no_Block, Iron, 21.1, 29.9, 0.7, 102, 102.9);
181 mBlocks->SetLineColor(18);
182 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.8 + (8 * F)));
183
184 sprintf(no_Block, "B1_RT%d", ++N);
185 mBlocks = geom->MakeTubs(no_Block, Iron, 21.1, 21.5, 0.5, 98, 102.9);
186 mBlocks->SetLineColor(18);
187 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.8 + (8 * F)));
188 sprintf(no_Block, "B1_RT%d", ++N);
189 mBlocks = geom->MakeTubs(no_Block, Iron, 21, 21.1, 0.7, 98, 103);
190 mBlocks->SetLineColor(2);
191 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.8 + (8 * F)));
192
193 sprintf(no_Block, "B1_RT%d", ++N);
194 mBlocks = geom->MakeTubs(no_Block, Iron, 18.6, 21, 0.7, 101.9, 102);
195 mBlocks->SetLineColor(2);
196 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.8 + (8 * F)));
197 sprintf(no_Block, "B1_RT%d", ++N);
198 mBlocks = geom->MakeTubs(no_Block, Iron, 18.6, 21, 0.7, 101, 101.9);
199 mBlocks->SetLineColor(18);
200 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.8 + (8 * F)));
201
202 sprintf(no_Block, "B1_RT%d", ++N);
203 mBlocks = geom->MakeTubs(no_Block, Iron, 29.5, 29.9, 0.5, 0, 102);
204 mBlocks->SetLineColor(18);
205 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.7 + (8 * F)));
206 sprintf(no_Block, "B1_RT%d", ++N);
207 mBlocks = geom->MakeTubs(no_Block, Iron, 29.9, 30, 0.5, 0, 103);
208 mBlocks->SetLineColor(2);
209 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.7 + (8 * F)));
210
211 sprintf(no_Block, "B1_RT%d", ++N);
212 mBlocks = geom->MakeTubs(no_Block, Iron, 18.1, 18.5, 0.5, -1, 101.9);
213 mBlocks->SetLineColor(18);
214 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.7 + (8 * F)));
215 sprintf(no_Block, "B1_RT%d", ++N);
216 mBlocks = geom->MakeTubs(no_Block, Iron, 18, 18.1, 0.5, -0.5, 102);
217 mBlocks->SetLineColor(2);
218 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.7 + (8 * F)));
219
220 sprintf(no_Block, "B1_RT%d", ++N);
221 mBlocks = geom->MakeTubs(no_Block, Iron, 18.1, 18.4, 0.5, 101.9, 102.9);
222 mBlocks->SetLineColor(18);
223 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.7 + (8 * F)));
224 sprintf(no_Block, "B1_RT%d", ++N);
225 mBlocks = geom->MakeTubs(no_Block, Iron, 18, 18.1, 0.5, 102, 103);
226 mBlocks->SetLineColor(2);
227 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.7 + (8 * F)));
228 sprintf(no_Block, "B1_RT%d", ++N);
229 mBlocks = geom->MakeTubs(no_Block, Iron, 18.4, 18.5, 0.5, 102, 103);
230 mBlocks->SetLineColor(2);
231 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.7 + (8 * F)));
232 sprintf(no_Block, "B1_RT%d", ++N);
233 mBlocks = geom->MakeTubs(no_Block, Iron, 18, 18.5, 0.5, 102.9, 103);
234 mBlocks->SetLineColor(2);
235 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, hP - 1.7 + (8 * F)));
236
237 /////////////////////////////// White Wall
238 sprintf(no_Block, "B1_WW%d", N = 0);
239 mBlocks = geom->MakeTubs(no_Block, Iron, 20.8, 31, 19.5, sP, sP + 1);
240 mBlocks->SetLineColor(10);
241 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 26));
242
243 sprintf(no_Block, "B1_WW%d", ++N);
244 mBlocks = geom->MakeTubs(no_Block, Iron, 26.8, 31, 5, sP, sP + 1);
245 mBlocks->SetLineColor(10);
246 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 2));
247
248 sprintf(no_Block, "B1_WW%d", ++N);
249 mBlocks = geom->MakeTubs(no_Block, Iron, 23, 24.3, 5, sP, sP + 1);
250 mBlocks->SetLineColor(10);
251 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 2));
252
253 sprintf(no_Block, "B1_WW%d", ++N);
254 mBlocks = geom->MakeTubs(no_Block, Iron, 20.8, 21.3, 5, sP, sP + 1);
255 mBlocks->SetLineColor(10);
256 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 2));
257
258 ////////////////////////// Zero Floor1
259 sprintf(no_Block, "B1_ZF%d", N = 0);
260 mBlocks = geom->MakeTubs(no_Block, Iron, 0, 21, 9, 0, 92);
261 mBlocks->SetLineColor(12);
262 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 6));
263
264 sprintf(no_Block, "B1_ZF%d", ++N);
265 mBlocks = geom->MakeTubs(no_Block, Iron, 18, 21, 7.5, 0, 92);
266 mBlocks->SetLineColor(12);
267 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 31.5));
268
269 sprintf(no_Block, "B1_ZF%d", ++N);
270 mBlocks = geom->MakeTubs(no_Block, Iron, 18, 21, 4.5, 0, 92);
271 mBlocks->SetLineColor(2);
272 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 19.5));
273
274 sprintf(no_Block, "B1_ZF%d", ++N);
275 mBlocks = geom->MakeTubs(no_Block, Iron, 0, 18, 0.2, 0, 101);
276 mBlocks->SetLineColor(18);
277 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 18.6));
278 sprintf(no_Block, "B1_ZF%d", ++N);
279 mBlocks = geom->MakeTubs(no_Block, Iron, 0, 18, 1.7, 0, 100);
280 mBlocks->SetLineColor(12);
281 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 16.7));
282 sprintf(no_Block, "B1_ZF%d", ++N);
283 mBlocks = geom->MakeTubs(no_Block, Iron, 0, 18, 1.2, 101, 101.9);
284 mBlocks->SetLineColor(18);
285 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 19.6));
286 sprintf(no_Block, "B1_ZF%d", ++N);
287 mBlocks = geom->MakeTubs(no_Block, Iron, 0, 18, 1.2, 101.9, 102);
288 mBlocks->SetLineColor(2);
289 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, 19.6));
290
291 ////////////////////////// Zero Floor2
292 sprintf(no_Block, "B1_ZF%d", ++N);
293 mBlocks = geom->MakeBox(no_Block, Iron, 6.5, 7, 2.5);
294 mBlocks->SetLineColor(18);
295 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7, 10.75, 13));
296
297 sprintf(no_Block, "B1_ZF%d", ++N);
298 mBlocks = geom->MakeBox(no_Block, Iron, 6.5, 7, 3);
299 mBlocks->SetLineColor(12);
300 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7, 10.75, 7.5));
301
302 sprintf(no_Block, "B1_ZF%d", ++N);
303 mBlocks = geom->MakeBox(no_Block, Iron, 7, 0.05, 10);
304 mBlocks->SetLineColor(2);
305 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7, 17.95, 7));
306 sprintf(no_Block, "B1_ZF%d", ++N);
307 mBlocks = geom->MakeBox(no_Block, Iron, 6.9, 0.20, 10);
308 mBlocks->SetLineColor(18);
309 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7, 17.70, 7));
310 sprintf(no_Block, "B1_ZF%d", ++N);
311 mBlocks = geom->MakeBox(no_Block, Iron, 0.1, 0.20, 10);
312 mBlocks->SetLineColor(2);
313 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-13.9, 17.70, 7));
314
315 sprintf(no_Block, "B1_ZF%d", ++N);
316 mBlocks = geom->MakeBox(no_Block, Iron, 0.05, 7, 3.5);
317 mBlocks->SetLineColor(2);
318 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-13.95, 10.5, 13.5));
319 sprintf(no_Block, "B1_ZF%d", ++N);
320 mBlocks = geom->MakeBox(no_Block, Iron, 0.20, 6.9, 3.5);
321 mBlocks->SetLineColor(18);
322 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-13.70, 10.5, 13.5));
323
324 sprintf(no_Block, "B1_ZF%d", ++N);
325 mBlocks = geom->MakeBox(no_Block, Iron, 0.25, 7, 4);
326 mBlocks->SetLineColor(2);
327 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-13.75, 10.5, 1));
328
329 sprintf(no_Block, "B1_ZF%d", ++N);
330 mBlocks = geom->MakeBox(no_Block, Iron, 7, 0.05, 10);
331 mBlocks->SetLineColor(2);
332 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7, 3.55, 7));
333 sprintf(no_Block, "B1_ZF%d", ++N);
334 mBlocks = geom->MakeBox(no_Block, Iron, 6.9, 0.20, 10);
335 mBlocks->SetLineColor(18);
336 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7, 3.8, 7));
337 sprintf(no_Block, "B1_ZF%d", ++N);
338 mBlocks = geom->MakeBox(no_Block, Iron, 0.1, 0.20, 10);
339 mBlocks->SetLineColor(2);
340 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-13.9, 3.8, 7));
341
342 ////////////////////////// Zero Floor2
343 sprintf(no_Block, "B1_ZF%d", ++N);
344 mBlocks = geom->MakeBox(no_Block, Iron, 5, 5, 1);
345 mBlocks->SetLineColor(10);
346 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-5, 23, -2));
347
348 sprintf(no_Block, "B1_ZF%d", ++N);
349 mBlocks = geom->MakeBox(no_Block, Iron, 5, 0.25, 1.5);
350 mBlocks->SetLineColor(2);
351 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-5, 28.25, -1.5));
352
353 sprintf(no_Block, "B1_ZF%d", ++N);
354 mBlocks = geom->MakeBox(no_Block, Iron, 0.25, 5.5, 1.5);
355 mBlocks->SetLineColor(2);
356 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-10.25, 23, -1.5));
357
358 sprintf(no_Block, "B1_ZF%d", ++N);
359 mBlocks = geom->MakeBox(no_Block, Iron, 5.5, 3.5, 5);
360 mBlocks->SetLineColor(20);
361 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-12.5, 0, -4));
362
363 ////////////////////////// Ground
364 sprintf(no_Block, "B1_GRD%d", N = 0);
365 mBlocks = geom->MakeTubs(no_Block, Iron, 0, 29, 1, 0, 36.75);
366 mBlocks->SetLineColor(10);
367 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, -2));
368
369 sprintf(no_Block, "B1_GRD%d", ++N);
370 mBlocks = geom->MakeTubs(no_Block, Iron, 0, 30.4, 0.4, 36.75, 77.25);
371 mBlocks->SetLineColor(10);
372 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, -2.7));
373
374 sprintf(no_Block, "B1_GRD%d", ++N);
375 mBlocks = geom->MakeTubs(no_Block, Iron, 0, 29.7, 0.3, 36.75, 77.25);
376 mBlocks->SetLineColor(10);
377 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, -2));
378
379 sprintf(no_Block, "B1_GRD%d", ++N);
380 mBlocks = geom->MakeTubs(no_Block, Iron, 0, 29, 0.3, 36.75, 77.25);
381 mBlocks->SetLineColor(10);
382 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, -1.3));
383
384 sprintf(no_Block, "B1_GRD%d", ++N);
385 mBlocks = geom->MakeTubs(no_Block, Iron, 0, 29, 1, 77.25, 97);
386 mBlocks->SetLineColor(10);
387 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, -2));
388
389 ///////////////////////////// Pillars & fences
390 sprintf(no_Block, "B1_PF%d", N = 0);
391 mBlocks = geom->MakeBox(no_Block, Iron, 1.2, 1.5, 9);
392 mBlocks->SetLineColor(2);
393 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(29, 4.2, 6, new TGeoRotation("r1", 8.25, 0, 0)));
394
395 sprintf(no_Block, "B1_PF%d", ++N);
396 mBlocks = geom->MakeBox(no_Block, Iron, 1.2, 1.5, 9);
397 mBlocks->SetLineColor(2);
398 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(24.2, 16.5, 6, new TGeoRotation("r1", 34.25, 0, 0)));
399
400 sprintf(no_Block, "B1_PF%d", ++N);
401 mBlocks = geom->MakeBox(no_Block, Iron, 1.2, 1.5, 9);
402 mBlocks->SetLineColor(2);
403 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(14.5, 25.4, 6, new TGeoRotation("r1", 60.25, 0, 0)));
404
405 sprintf(no_Block, "B1_PF%d", ++N);
406 mBlocks = geom->MakeBox(no_Block, Iron, 1.2, 1.5, 9);
407 mBlocks->SetLineColor(2);
408 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(1.9, 29.2, 6, new TGeoRotation("r1", 86.25, 0, 0)));
409
410 sprintf(no_Block, "B1_PF%d", ++N);
411 mBlocks = geom->MakeTubs(no_Block, Iron, 29, 30, 2, 0, 36.75);
412 mBlocks->SetLineColor(2);
413 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, 0, -1));
414
415 sprintf(no_Block, "B1_PF%d", ++N);
416 mBlocks = geom->MakeBox(no_Block, Iron, 3, 2, 2);
417 mBlocks->SetLineColor(2);
418 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-0.75, 29.3, -1));
419
420 sprintf(no_Block, "B1_PF%d", ++N); // 장애인용
421 mBlocks = geom->MakeBox(no_Block, Iron, 0.25, 4.3, 1.5);
422 mBlocks->SetLineColor(2);
423 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(6.5, 30.6, -1.5));
424
425 sprintf(no_Block, "B1_PF%d", ++N);
426 mBlocks = geom->MakeBox(no_Block, Iron, 5.25, 4.3, 0.4);
427 mBlocks->SetLineColor(10);
428 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(1.125, 30.6, -2.7));
429
430 sprintf(no_Block, "B1_PF%d", ++N);
431 mBlocks = geom->MakeBox(no_Block, Iron, 5.5, 0.25, 0.75);
432 mBlocks->SetLineColor(2);
433 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(1.125, 34.9, -2.25));
434
435 sprintf(no_Block, "B1_PF%d", ++N);
436 mBlocks = geom->MakeTrd1(no_Block, Iron, 1.5, 0, 0.25, 5.5);
437 mBlocks->SetLineColor(2);
438 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(1.125, 34.9, -1.5, new TGeoRotation("r1", 90, -90, 90)));
439
440 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
441 //////////////////////////////// Second Part of Front-Building ///////////////////////////////
442 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
443
444 F = 0;
445 while (F < nF) {
446 N = 0;
447 i = 0;
448 nW = 7;
449
450 while (i < nW) {
451 sprintf(no_Block, "B12_F%d_B%d", F, ++N); // Wall
452 mBlocks = geom->MakeBox(no_Block, Iron, 3.8, 0.35, 1.8);
453 mBlocks->SetLineColor(2);
454 Phy_Building->AddNodeOverlap(mBlocks, 1,
455 new TGeoCombiTrans(23.38 + (21.65 - 6 * i) * 0.13, -21.2 + (21.65 - 6 * i) * 0.99,
456 hP + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
457 sprintf(no_Block, "B12_F%d_B%d", F, ++N);
458 mBlocks = geom->MakeBox(no_Block, Iron, 4.8, 0.3, 1.8);
459 mBlocks->SetLineColor(2);
460 Phy_Building->AddNodeOverlap(mBlocks, 1,
461 new TGeoCombiTrans(23.38 + (21.0 - 6 * i) * 0.13, -21.2 + (21 - 6 * i) * 0.99,
462 hP + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
463 sprintf(no_Block, "B12_F%d_B%d", F, ++N);
464 mBlocks = geom->MakeBox(no_Block, Iron, 3.8, 0.3, 1.8);
465 mBlocks->SetLineColor(2);
466 Phy_Building->AddNodeOverlap(mBlocks, 1,
467 new TGeoCombiTrans(23.38 + (20.4 - 6 * i) * 0.13, -21.2 + (20.4 - 6 * i) * 0.99,
468 hP + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
469 sprintf(no_Block, "B12_F%d_B%d", F, ++N);
470 mBlocks = geom->MakeBox(no_Block, Iron, 4.8, 0.3, 1.8);
471 mBlocks->SetLineColor(2);
472 Phy_Building->AddNodeOverlap(mBlocks, 1,
473 new TGeoCombiTrans(23.38 + (19.7 - 6 * i) * 0.13, -21.2 + (19.7 - 6 * i) * 0.99,
474 hP + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
475 sprintf(no_Block, "B12_F%d_B%d", F, ++N);
476 mBlocks = geom->MakeBox(no_Block, Iron, 3.8, 0.35, 1.8);
477 mBlocks->SetLineColor(2);
478 Phy_Building->AddNodeOverlap(mBlocks, 1,
479 new TGeoCombiTrans(23.38 + (19.05 - 6 * i) * 0.13, -21.2 + (19.05 - 6 * i) * 0.99,
480 hP + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
481
482 sprintf(no_Block, "B12_F%d_B%d", F, ++N); // Windows
483 mBlocks = geom->MakeBox(no_Block, Iron, 3, 1.4, 1.8);
484 mBlocks->SetLineColor(12);
485 Phy_Building->AddNodeOverlap(mBlocks, 1,
486 new TGeoCombiTrans(23.38 + (17.4 - 6 * i) * 0.13, -21.2 + (17.4 - 6 * i) * 0.99,
487 hP + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
488 i++;
489 if (i >= nW) {
490 sprintf(no_Block, "B12_F%d_B%d", F, ++N); // Wall.
491 mBlocks = geom->MakeBox(no_Block, Iron, 5.8, 1, 1.8);
492 mBlocks->SetLineColor(2);
493 Phy_Building->AddNodeOverlap(mBlocks, 1,
494 new TGeoCombiTrans(21.4 + (-21) * 0.13, -21 + (-21) * 0.99, hP + (8 * F),
495 new TGeoRotation("r1", -7.5, 0, 0)));
496 }
497 }
498
499 sprintf(no_Block, "B12_F%d_B%d", ++F, ++N);
500 mBlocks = geom->MakeBox(no_Block, Iron, 5.8, 22, 2.2);
501 mBlocks->SetLineColor(2);
502 Phy_Building->AddNodeOverlap(
503 mBlocks, 1, new TGeoCombiTrans(21.4, -21, hP - 12 + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
504 }
505 sprintf(no_Block, "B12_F%d_%d", F, ++N);
506 mBlocks = geom->MakeBox(no_Block, Iron, 5.8, 22, 2);
507 mBlocks->SetLineColor(2);
508 Phy_Building->AddNodeOverlap(mBlocks, 1,
509 new TGeoCombiTrans(21.4, -21, hP - 4.2 + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
510
511 sprintf(no_Block, "B12_F%d_%d", F, ++N);
512 mBlocks = geom->MakeBox(no_Block, Iron, 2.8, 22, 14);
513 mBlocks->SetLineColor(2);
514 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(18.43, -20.61, 29, new TGeoRotation("r1", -7.5, 0, 0)));
515
516 ////////////////////// RoofTop
517 sprintf(no_Block, "B12_RT%d_%d", F, N = 0);
518 mBlocks = geom->MakeBox(no_Block, Iron, 5.5, 21.75, 0.2);
519 mBlocks->SetLineColor(18);
520 Phy_Building->AddNodeOverlap(
521 mBlocks, 1, new TGeoCombiTrans(21.43, -20.75, hP - 2 + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
522
523 sprintf(no_Block, "B12_RT%d_%d", F, ++N);
524 mBlocks = geom->MakeBox(no_Block, Iron, 0.23, 21.95, 0.5);
525 mBlocks->SetLineColor(18);
526 Phy_Building->AddNodeOverlap(
527 mBlocks, 1, new TGeoCombiTrans(26.9, -21.72, hP - 1.7 + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
528 sprintf(no_Block, "B12_RT%d_%d", F, ++N);
529 mBlocks = geom->MakeBox(no_Block, Iron, 0.1, 22, 0.5);
530 mBlocks->SetLineColor(2);
531 Phy_Building->AddNodeOverlap(
532 mBlocks, 1, new TGeoCombiTrans(27.1, -21.75, hP - 1.7 + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
533
534 sprintf(no_Block, "B12_RT%d_%d", F, ++N);
535 mBlocks = geom->MakeBox(no_Block, Iron, 0.23, 3.6, 0.5);
536 mBlocks->SetLineColor(18);
537 Phy_Building->AddNodeOverlap(
538 mBlocks, 1, new TGeoCombiTrans(13.65, -38.03, hP - 1.7 + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
539
540 sprintf(no_Block, "B12_RT%d_%d", F, ++N);
541 mBlocks = geom->MakeBox(no_Block, Iron, 0.02, 3.8, 0.5);
542 mBlocks->SetLineColor(2);
543 Phy_Building->AddNodeOverlap(
544 mBlocks, 1, new TGeoCombiTrans(13.3, -38.39, hP - 1.7 + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
545
546 sprintf(no_Block, "B12_RT%d_%d", F, ++N);
547 mBlocks = geom->MakeBox(no_Block, Iron, 5.7, 0.23, 0.5);
548 mBlocks->SetLineColor(18);
549 Phy_Building->AddNodeOverlap(
550 mBlocks, 1, new TGeoCombiTrans(18.57, -42.48, hP - 1.7 + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
551 sprintf(no_Block, "B12_RT%d_%d", F, ++N);
552 mBlocks = geom->MakeBox(no_Block, Iron, 5.8, 0.1, 0.5);
553 mBlocks->SetLineColor(2);
554 Phy_Building->AddNodeOverlap(
555 mBlocks, 1, new TGeoCombiTrans(18.54, -42.71, hP - 1.7 + (8 * F), new TGeoRotation("r1", -7.5, 0, 0)));
556
557 //////////////////////// Pillars & fences
558 sprintf(no_Block, "B12_PF%d", N = 0);
559 mBlocks = geom->MakeBox(no_Block, Iron, 1.2, 1.5, 9);
560 mBlocks->SetLineColor(2);
561 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(28.32, -7.44, 6, new TGeoRotation("r1", -7.5, 0, 0)));
562
563 sprintf(no_Block, "B12_PF%d", ++N);
564 mBlocks = geom->MakeBox(no_Block, Iron, 1.2, 1.5, 9);
565 mBlocks->SetLineColor(2);
566 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(26.75, -19.33, 6, new TGeoRotation("r1", -7.5, 0, 0)));
567
568 sprintf(no_Block, "B12_PF%d", ++N);
569 mBlocks = geom->MakeBox(no_Block, Iron, 1.2, 1.5, 9);
570 mBlocks->SetLineColor(2);
571 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(25.19, -31.23, 6, new TGeoRotation("r1", -7.5, 0, 0)));
572
573 sprintf(no_Block, "B12_PF%d", ++N);
574 mBlocks = geom->MakeBox(no_Block, Iron, 1.2, 1.5, 11);
575 mBlocks->SetLineColor(2);
576 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(23.75, -42.14, 4, new TGeoRotation("r1", -7.5, 0, 0)));
577
578 sprintf(no_Block, "B12_PF%d", ++N);
579 mBlocks = geom->MakeBox(no_Block, Iron, 1.2, 1.5, 11);
580 mBlocks->SetLineColor(2);
581 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(13.84, -40.83, 4, new TGeoRotation("r1", -7.5, 0, 0)));
582
583 sprintf(no_Block, "B12_PF%d", ++N);
584 mBlocks = geom->MakeBox(no_Block, Iron, 0.5, 15.75, 2);
585 mBlocks->SetLineColor(2);
586 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(27.42, -15.48, -1, new TGeoRotation("r1", -7.5, 0, 0)));
587
588 sprintf(no_Block, "B12_PF%d", ++N);
589 mBlocks = geom->MakeBox(no_Block, Iron, 0.5, 2, 4);
590 mBlocks->SetLineColor(2);
591 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(24.28, -39.27, -3, new TGeoRotation("r1", -7.5, 0, 0)));
592
593 sprintf(no_Block, "B12_PF%d", ++N);
594 mBlocks = geom->MakeBox(no_Block, Iron, 1.5, 15.75, 2);
595 mBlocks->SetLineColor(2);
596 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(28.91, -15.68, -4, new TGeoRotation("r1", -7.5, 0, 0)));
597
598 sprintf(no_Block, "B12_RT%d_%d", F, ++N);
599 mBlocks = geom->MakeBox(no_Block, Iron, 5.8, 0.5, 4);
600 mBlocks->SetLineColor(2);
601 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(18.8, -40.73, -3, new TGeoRotation("r1", -7.5, 0, 0)));
602
603 /////////////////////// Stair
604 sprintf(no_Block, "B12_PF%d", ++N);
605 mBlocks = geom->MakeBox(no_Block, Iron, 3, 0.5, 3.25);
606 mBlocks->SetLineColor(2);
607 Phy_Building->AddNodeOverlap(mBlocks, 1,
608 new TGeoCombiTrans(28.33, -31.49, -2.75, new TGeoRotation("r1", -7.5, 0, 0)));
609
610 sprintf(no_Block, "B12_PF%d", ++N);
611 mBlocks = geom->MakeBox(no_Block, Iron, 0.5, 6.25, 1.625);
612 mBlocks->SetLineColor(2);
613 Phy_Building->AddNodeOverlap(mBlocks, 1,
614 new TGeoCombiTrans(30.56, -37.58, -4.375, new TGeoRotation("r1", -7.5, 0, 0)));
615 sprintf(no_Block, "B1_PF%d", ++N);
616 mBlocks = geom->MakeTrd1(no_Block, Iron, 3.25, 0, 0.5, 6.25);
617 mBlocks->SetLineColor(2);
618 Phy_Building->AddNodeOverlap(mBlocks, 1,
619 new TGeoCombiTrans(30.56, -37.58, -2.75, new TGeoRotation("r1", -7.5, 90, 90)));
620
621 sprintf(no_Block, "B12_PF%d", ++N);
622 mBlocks = geom->MakeBox(no_Block, Iron, 3, 3, 0.5);
623 mBlocks->SetLineColor(18);
624 Phy_Building->AddNodeOverlap(mBlocks, 1,
625 new TGeoCombiTrans(27.37, -34.89, -2.5, new TGeoRotation("r1", -7.5, 0, 0)));
626 sprintf(no_Block, "B12_PF%d", ++N);
627 mBlocks = geom->MakeBox(no_Block, Iron, 2.5, 3, 0.5);
628 mBlocks->SetLineColor(18);
629 Phy_Building->AddNodeOverlap(mBlocks, 1,
630 new TGeoCombiTrans(27.74, -35.95, -3.5, new TGeoRotation("r1", -7.5, 0, 0)));
631 sprintf(no_Block, "B12_PF%d", ++N);
632 mBlocks = geom->MakeBox(no_Block, Iron, 2.5, 3, 0.5);
633 mBlocks->SetLineColor(18);
634 Phy_Building->AddNodeOverlap(mBlocks, 1,
635 new TGeoCombiTrans(27.61, -36.94, -4.5, new TGeoRotation("r1", -7.5, 0, 0)));
636 sprintf(no_Block, "B12_PF%d", ++N);
637 mBlocks = geom->MakeBox(no_Block, Iron, 2.5, 3, 0.5);
638 mBlocks->SetLineColor(18);
639 Phy_Building->AddNodeOverlap(mBlocks, 1,
640 new TGeoCombiTrans(27.48, -37.93, -5.5, new TGeoRotation("r1", -7.5, 0, 0)));
641
642 //////////////////////// Ground
643 sprintf(no_Block, "B12_GR%d", N = 0);
644 mBlocks = geom->MakeBox(no_Block, Iron, 4.8, 21, 1);
645 mBlocks->SetLineColor(18);
646 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(21.53, -20.1, -2, new TGeoRotation("r1", -7.5, 0, 0)));
647
648 sprintf(no_Block, "B12_GR%d", ++N);
649 mBlocks = geom->MakeBox(no_Block, Iron, 5.8, 18, 9);
650 mBlocks->SetLineColor(12);
651 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(12.86, -16.62, 6, new TGeoRotation("r1", -7.5, 0, 0)));
652
653 sprintf(no_Block, "B12_GR%d", ++N);
654 mBlocks = geom->MakeBox(no_Block, Iron, 4.8, 22, 2);
655 mBlocks->SetLineColor(12);
656 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(21.4, -21, 13, new TGeoRotation("r1", -7.5, 0, 0)));
657
658 sprintf(no_Block, "B12_GR%d_%d", F, ++N);
659 mBlocks = geom->MakeBox(no_Block, Iron, 4.8, 22, 1.95);
660 mBlocks->SetLineColor(30);
661 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(21.4, -21, 9.05, new TGeoRotation("r1", -7.5, 0, 0)));
662 sprintf(no_Block, "B12_GR%d_%d", F, ++N);
663 mBlocks = geom->MakeBox(no_Block, Iron, 4.8, 22, 0.05);
664 mBlocks->SetLineColor(18);
665 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoCombiTrans(21.4, -21, 7.05, new TGeoRotation("r1", -7.5, 0, 0)));
666
667 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
668 //////////////////////////////// Bridge-Building ///////////////////////////////
669 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
670 F = 1;
671 N = 0;
672 nF = 4;
673
674 sprintf(no_Block, "B2_F%d", 6);
675 mBlocks = geom->MakeBox(no_Block, Iron, 7, 17.5, 2);
676 mBlocks->SetLineColor(2);
677 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(12, -17.5, 41));
678
679 while (F++ <= nF) {
680 //////////////////////// Front
681 sprintf(no_Block, "B2_F%d_%d", F, ++N);
682 mBlocks = geom->MakeBox(no_Block, Iron, 0.8, 4, 4);
683 mBlocks->SetLineColor(2);
684 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(10, -4, -5 + (F * 8)));
685
686 sprintf(no_Block, "B2_F%d_%d", F, ++N);
687 mBlocks = geom->MakeBox(no_Block, Iron, 1.1, 3.5, 1);
688 mBlocks->SetLineColor(12);
689 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(11.9, -4, -2 + (F * 8)));
690 sprintf(no_Block, "B2_F%d_%d", F, ++N);
691 mBlocks = geom->MakeBox(no_Block, Iron, 1.1, 4.5, 0.2);
692 mBlocks->SetLineColor(18);
693 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(11.9, -4, -3.2 + (F * 8)));
694 sprintf(no_Block, "B2_F%d_%d", F, ++N);
695 mBlocks = geom->MakeBox(no_Block, Iron, 1.1, 4, 2.8);
696 mBlocks->SetLineColor(2);
697 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(11.9, -4, -6.2 + (F * 8)));
698
699 sprintf(no_Block, "B2_F%d_%d", F, ++N);
700 mBlocks = geom->MakeBox(no_Block, Iron, 0.7, 4, 4);
701 mBlocks->SetLineColor(2);
702 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(13.6, -4, -5 + (F * 8)));
703
704 sprintf(no_Block, "B2_F%d_%d", F, ++N);
705 mBlocks = geom->MakeBox(no_Block, Iron, 1.1, 3.5, 1);
706 mBlocks->SetLineColor(12);
707 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(15.4, -4, -2 + (F * 8)));
708 sprintf(no_Block, "B2_F%d_%d", F, ++N);
709 mBlocks = geom->MakeBox(no_Block, Iron, 1.1, 4.5, 0.2);
710 mBlocks->SetLineColor(18);
711 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(15.4, -4, -3.2 + (F * 8)));
712 sprintf(no_Block, "B2_F%d_%d", F, ++N);
713 mBlocks = geom->MakeBox(no_Block, Iron, 1.1, 4, 2.8);
714 mBlocks->SetLineColor(2);
715 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(15.4, -4, -6.2 + (F * 8)));
716
717 sprintf(no_Block, "B2_F%d_%d", F, ++N);
718 mBlocks = geom->MakeBox(no_Block, Iron, 0.7, 4, 4);
719 mBlocks->SetLineColor(2);
720 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(17.1, -4, -5 + (F * 8)));
721
722 //////////////////////////// Back
723 sprintf(no_Block, "B2_F%d_%d", F, ++N);
724 mBlocks = geom->MakeBox(no_Block, Iron, 1.3, 13.5, 1.5);
725 mBlocks->SetLineColor(2);
726 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(6.8, -21.5, -2.5 + (F * 8)));
727 sprintf(no_Block, "B2_F%d_%d", F, ++N);
728 mBlocks = geom->MakeBox(no_Block, Iron, 1.3, 14, 0.2);
729 mBlocks->SetLineColor(18);
730 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(6.8, -21.5, -4.2 + (F * 8)));
731 sprintf(no_Block, "B2_F%d_%d", F, ++N);
732 mBlocks = geom->MakeBox(no_Block, Iron, 1.3, 13.5, 2.3);
733 mBlocks->SetLineColor(2);
734 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(6.8, -21.5, -6.8 + (F * 8)));
735
736 sprintf(no_Block, "B2_F%d_%d", F, ++N);
737 mBlocks = geom->MakeBox(no_Block, Iron, 3.7, 13, 1.5);
738 mBlocks->SetLineColor(12);
739 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(11.8, -21.5, -2.5 + (F * 8)));
740 sprintf(no_Block, "B2_F%d_%d", F, ++N);
741 mBlocks = geom->MakeBox(no_Block, Iron, 3.7, 14, 0.2);
742 mBlocks->SetLineColor(18);
743 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(11.8, -21.5, -4.2 + (F * 8)));
744 sprintf(no_Block, "B2_F%d_%d", F, ++N);
745 mBlocks = geom->MakeBox(no_Block, Iron, 3.7, 13.5, 2.3);
746 mBlocks->SetLineColor(2);
747 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(11.8, -21.5, -6.8 + (F * 8)));
748 }
749
750 sprintf(no_Block, "B2_F%d_%d", 0, 1);
751 mBlocks = geom->MakeBox(no_Block, Iron, 5, 13.5, 6);
752 mBlocks->SetLineColor(30);
753 // Phy_Building->AddNodeOverlap(mBlocks,1,new TGeoTranslation(10,-21.5,-15));
754 sprintf(no_Block, "B2_F%d_%d", 0, 2);
755 mBlocks = geom->MakeBox(no_Block, Iron, 5, 13.5, 4);
756 mBlocks->SetLineColor(2);
757 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(10, -21.5, -5));
758 sprintf(no_Block, "B2_F%d_%d", 0, 3);
759 mBlocks = geom->MakeBox(no_Block, Iron, 5, 13.5, 4);
760 mBlocks->SetLineColor(12);
761 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(10, -21.5, 3));
762
763 /////////////////////////// RoofTop
764 sprintf(no_Block, "B2_F%d", ++N);
765 mBlocks = geom->MakeBox(no_Block, Iron, 7, 17.4, 0.1);
766 mBlocks->SetLineColor(18);
767 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(12, -17.5, 43.1));
768
769 sprintf(no_Block, "B2_F%d", ++N);
770 mBlocks = geom->MakeBox(no_Block, Iron, 4.5, 0.2, 0.5);
771 mBlocks->SetLineColor(18);
772 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(9.5, -34.7, 43.5));
773 sprintf(no_Block, "B2_F%d", ++N);
774 mBlocks = geom->MakeBox(no_Block, Iron, 4.5, 0.05, 0.5);
775 mBlocks->SetLineColor(2);
776 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(9.5, -34.95, 43.5));
777
778 sprintf(no_Block, "B2_F%d", ++N);
779 mBlocks = geom->MakeBox(no_Block, Iron, 4.75, 0.2, 0.5);
780 mBlocks->SetLineColor(18);
781 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(13.75, -0.3, 43.5));
782 sprintf(no_Block, "B2_F%d", ++N);
783 mBlocks = geom->MakeBox(no_Block, Iron, 4.55, 0.05, 0.5);
784 mBlocks->SetLineColor(2);
785 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(13.55, -0.05, 43.5));
786
787 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
788 //////////////////////////////// Building 3 ///////////////////////////////
789 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
790 F = 0;
791 N = 0;
792 nF = 4;
793 nW = 6;
794
795 sprintf(no_Block, "B3_F0%d", 7);
796 mBlocks = geom->MakeBox(no_Block, Iron, 3, 36, 2);
797 mBlocks->SetLineColor(2);
798 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -48, 49));
799
800 while (F++ < nF) {
801 i = 0;
802 N = 0;
803
804 sprintf(no_Block, "B3_F%d_%d", F, ++N);
805 mBlocks = geom->MakeBox(no_Block, Iron, 4, 36, 0.2);
806 mBlocks->SetLineColor(18);
807 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -48, 14.7 + (F * 8)));
808
809 while (i++ < nW) {
810 sprintf(no_Block, "B3_F%d_%d", F, ++N);
811 mBlocks = geom->MakeBox(no_Block, Iron, 2.5, 5, 1.8);
812 mBlocks->SetLineColor(12);
813 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -6 - (i * 12), 12.8 + (F * 8)));
814
815 sprintf(no_Block, "B3_F%d_%d", F, ++N);
816 mBlocks = geom->MakeBox(no_Block, Iron, 2.8, 1, 1.8);
817 mBlocks->SetLineColor(18);
818 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -12 - (i * 12), 12.8 + (F * 8)));
819 }
820
821 sprintf(no_Block, "B3_F%d_%d", F, ++N);
822 mBlocks = geom->MakeBox(no_Block, Iron, 3, 36, 2);
823 mBlocks->SetLineColor(2);
824 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -48, 9.2 + (F * 8)));
825 }
826
827 sprintf(no_Block, "B3_F0%d", 1);
828 mBlocks = geom->MakeBox(no_Block, Iron, 2.8, 36, 2);
829 mBlocks->SetLineColor(12);
830 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -48, 13));
831 sprintf(no_Block, "B3_F0%d", 2);
832 mBlocks = geom->MakeBox(no_Block, Iron, 2.8, 36, 2);
833 mBlocks->SetLineColor(30);
834 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -48, 9));
835
836 sprintf(no_Block, "B3_F0%d", 3);
837 mBlocks = geom->MakeBox(no_Block, Iron, 2.8, 36, 4);
838 mBlocks->SetLineColor(12);
839 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -48, 3));
840
841 sprintf(no_Block, "B3_F0%d", 4);
842 mBlocks = geom->MakeBox(no_Block, Iron, 2.8, 36, 4);
843 mBlocks->SetLineColor(2);
844 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -48, -5));
845
846 /* sprintf(no_Block, "B3_F0%d", 5);
847 mBlocks = geom->MakeBox(no_Block,Iron,2.8,36,6);
848 mBlocks->SetLineColor(30);
849 Phy_Building->AddNodeOverlap(mBlocks,1,new TGeoTranslation(2.4,-48,-15));
850 */
851 sprintf(no_Block, "B3_F0%d", 61);
852 mBlocks = geom->MakeBox(no_Block, Iron, 3, 8, 2);
853 mBlocks->SetLineColor(2);
854 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -88, 49));
855
856 sprintf(no_Block, "B3_F0%d", 62);
857 mBlocks = geom->MakeBox(no_Block, Iron, 0.5, 8, 24);
858 mBlocks->SetLineColor(2);
859 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(4.9, -88, 23));
860 sprintf(no_Block, "B3_F0%d", 63);
861 mBlocks = geom->MakeBox(no_Block, Iron, 2, 7, 24);
862 mBlocks->SetLineColor(12);
863 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -88, 23));
864 sprintf(no_Block, "B3_F0%d", 64);
865 mBlocks = geom->MakeBox(no_Block, Iron, 0.5, 8, 24);
866 mBlocks->SetLineColor(2);
867 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-0.1, -88, 23));
868
869 sprintf(no_Block, "B3_F0%d", 65);
870 mBlocks = geom->MakeBox(no_Block, Iron, 3, 8, 4);
871 mBlocks->SetLineColor(2);
872 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -88, -5));
873
874 /////////////////////////////// Left-Side
875 nF = 6;
876 nW = 6;
877
878 sprintf(no_Block, "B3_F2%d", 7);
879 mBlocks = geom->MakeBox(no_Block, Iron, 7, 40.5, 2);
880 mBlocks->SetLineColor(2);
881 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -43.5, 49));
882
883 for (F = 0; F < nF; F++) {
884 N = 0;
885 for (i = 0; i < nW; i++) {
886 sprintf(no_Block, "B3_F2%d_%d", F, ++N);
887 mBlocks = geom->MakeBox(no_Block, Iron, 6, 2.35, 2);
888 mBlocks->SetLineColor(12);
889 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -14.35 - (12 * i), 5 + (8 * F)));
890 sprintf(no_Block, "B3_F2%d_%d", F, ++N);
891 mBlocks = geom->MakeBox(no_Block, Iron, 6.5, 0.3, 2);
892 mBlocks->SetLineColor(18);
893 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -17 - (12 * i), 5 + (8 * F)));
894 sprintf(no_Block, "B3_F2%d_%d", F, ++N);
895 mBlocks = geom->MakeBox(no_Block, Iron, 6, 2.35, 2);
896 mBlocks->SetLineColor(12);
897 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -19.65 - (12 * i), 5 + (8 * F)));
898
899 sprintf(no_Block, "B3_F2%d_%d", F, ++N);
900 mBlocks = geom->MakeBox(no_Block, Iron, 7, 1, 2);
901 mBlocks->SetLineColor(2);
902 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -23 - (12 * i), 5 + (8 * F)));
903 }
904
905 sprintf(no_Block, "B3_F2%d_%d", F, ++N);
906 mBlocks = geom->MakeBox(no_Block, Iron, 6.8, 36, 0.3);
907 mBlocks->SetLineColor(18);
908 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -48, 3.3 + (8 * F)));
909
910 sprintf(no_Block, "B3_F2%d_%d", F, ++N);
911 mBlocks = geom->MakeBox(no_Block, Iron, 7, 36, 2);
912 mBlocks->SetLineColor(2);
913 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -48, 1 + (8 * F)));
914
915 for (int i = 0; i < 4; i++) {
916 sprintf(no_Block, "B3_F2%d_%d", F, ++N);
917 mBlocks = geom->MakeBox(no_Block, Iron, 7, 0.5, 1.4);
918 mBlocks->SetLineColor(2);
919 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -3.5, 5.6 + (8 * F)));
920
921 sprintf(no_Block, "B3_F2%d_%d", F, ++N);
922 mBlocks = geom->MakeBox(no_Block, Iron, 6, 0.7, 1.4);
923 mBlocks->SetLineColor(12);
924 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -4.7, 5.6 + (8 * F)));
925
926 sprintf(no_Block, "B3_F2%d_%d", F, ++N);
927 mBlocks = geom->MakeBox(no_Block, Iron, 7, 1.6, 1.4);
928 mBlocks->SetLineColor(2);
929 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -7, 5.6 + (8 * F)));
930
931 sprintf(no_Block, "B3_F2%d_%d", F, ++N);
932 mBlocks = geom->MakeBox(no_Block, Iron, 6, 0.7, 1.4);
933 mBlocks->SetLineColor(12);
934 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -9.3, 5.6 + (8 * F)));
935 }
936
937 sprintf(no_Block, "B3_F2%d_%d", F, ++N);
938 mBlocks = geom->MakeBox(no_Block, Iron, 7, 3.5, 2.6);
939 mBlocks->SetLineColor(2);
940 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -6.5, 1.6 + (8 * F)));
941 }
942
943 sprintf(no_Block, "B3_F2%d", 71);
944 mBlocks = geom->MakeBox(no_Block, Iron, 7, 40.5, 4);
945 mBlocks->SetLineColor(2);
946 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -43.5, -5));
947
948 sprintf(no_Block, "B3_F2%d", 72);
949 mBlocks = geom->MakeBox(no_Block, Iron, 7, 2, 30);
950 mBlocks->SetLineColor(2);
951 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -86, 21));
952
953 sprintf(no_Block, "B3_F2%d", 73);
954 mBlocks = geom->MakeBox(no_Block, Iron, 7, 1, 30);
955 mBlocks->SetLineColor(2);
956 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.4, -11, 21));
957
958 //////////////////////////////////// Rooftop
959 sprintf(no_Block, "B3_RT%d", N = 0);
960 mBlocks = geom->MakeBox(no_Block, Iron, 7, 42.25, 0.1);
961 mBlocks->SetLineColor(18);
962 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.15, -45.5, 51.1));
963 sprintf(no_Block, "B3_RT%d", ++N);
964 mBlocks = geom->MakeBox(no_Block, Iron, 2.75, 41.75, 0.1);
965 mBlocks->SetLineColor(18);
966 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -54, 51.1));
967
968 sprintf(no_Block, "B3_RT%d", ++N);
969 mBlocks = geom->MakeBox(no_Block, Iron, 0.24, 41.99, 0.5);
970 mBlocks->SetLineColor(18);
971 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(5.15, -53.99, 51.5));
972 sprintf(no_Block, "B3_RT%d", ++N);
973 mBlocks = geom->MakeBox(no_Block, Iron, 0.01, 42, 0.5);
974 mBlocks->SetLineColor(2);
975 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(5.4, -54, 51.5));
976
977 sprintf(no_Block, "B3_RT%d", ++N);
978 mBlocks = geom->MakeBox(no_Block, Iron, 0.24, 3.99, 0.5);
979 mBlocks->SetLineColor(18);
980 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-0.35, -92, 51.5));
981 sprintf(no_Block, "B3_RT%d", ++N);
982 mBlocks = geom->MakeBox(no_Block, Iron, 0.01, 4, 0.5);
983 mBlocks->SetLineColor(2);
984 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-0.6, -92, 51.5));
985
986 sprintf(no_Block, "B3_RT%d", ++N);
987 mBlocks = geom->MakeBox(no_Block, Iron, 2.99, 0.24, 0.5);
988 mBlocks->SetLineColor(18);
989 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -95.79, 51.5));
990 sprintf(no_Block, "B3_RT%d", ++N);
991 mBlocks = geom->MakeBox(no_Block, Iron, 3, 0.01, 0.5);
992 mBlocks->SetLineColor(2);
993 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(2.4, -96.04, 51.5));
994
995 sprintf(no_Block, "B3_RT%d", ++N);
996 mBlocks = geom->MakeBox(no_Block, Iron, 0.24, 42.49, 0.5);
997 mBlocks->SetLineColor(18);
998 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-14.14, -45.5, 51.5));
999 sprintf(no_Block, "B3_RT%d", ++N);
1000 mBlocks = geom->MakeBox(no_Block, Iron, 0.01, 42.5, 0.5);
1001 mBlocks->SetLineColor(2);
1002 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-14.39, -45.5, 51.5));
1003
1004 /////////////////////// Stair
1005 sprintf(no_Block, "B3_RT%d", ++N);
1006 mBlocks = geom->MakeBox(no_Block, Iron, 6.99, 0.24, 0.5);
1007 mBlocks->SetLineColor(18);
1008 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.15, -3.25, 51.5));
1009 sprintf(no_Block, "B3_RT%d", ++N);
1010 mBlocks = geom->MakeBox(no_Block, Iron, 7, 0.01, 0.5);
1011 mBlocks->SetLineColor(2);
1012 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.15, -3, 51.5));
1013
1014 sprintf(no_Block, "B3_RT%d", ++N);
1015 mBlocks = geom->MakeBox(no_Block, Iron, 7, 0.25, 0.5);
1016 mBlocks->SetLineColor(18);
1017 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.15, -87.74, 51.5));
1018 sprintf(no_Block, "B3_RT%d", ++N);
1019 mBlocks = geom->MakeBox(no_Block, Iron, 7, 0.01, 0.5);
1020 mBlocks->SetLineColor(2);
1021 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-7.15, -87.99, 51.5));
1022
1023 /////////////////////////////// Pillars
1024 N = 0;
1025 for (i = 0; i < 6; i++) {
1026 sprintf(no_Block, "B3_PF%d", ++N);
1027 mBlocks = geom->MakeBox(no_Block, Iron, 1.2, 1.5, 12);
1028 mBlocks->SetLineColor(2);
1029 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(4.6, -12 - (12 * i), 3));
1030 }
1031 sprintf(no_Block, "B3_PF%d", ++N);
1032 mBlocks = geom->MakeBox(no_Block, Iron, 1.5, 40, 2);
1033 mBlocks->SetLineColor(2);
1034 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(7, -56, -5));
1035
1036 ////////////////////////////// Stair
1037 sprintf(no_Block, "B3_ST%d", N = 0);
1038 mBlocks = geom->MakeBox(no_Block, Iron, 0.5, 7, 5);
1039 mBlocks->SetLineColor(18);
1040 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-6.5, -88, -2));
1041
1042 for (int i = 0; i < 5; i++) {
1043 sprintf(no_Block, "B3_ST%d", ++N);
1044 mBlocks = geom->MakeBox(no_Block, Iron, 3, 5, 0.5);
1045 mBlocks->SetLineColor(18);
1046 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-3, -86 - (0.7 * i), -2 - (1 * i)));
1047 }
1048
1049 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1050 //////////////////////////////// Mid-Building ///////////////////////////////
1051 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1052
1053 ////////////////////////////////////// Left-Side
1054
1055 for (int F = 0; F < 5; F++) {
1056 N = 0;
1057 sprintf(no_Block, "B4_LF%d_%d", F, ++N);
1058 mBlocks = geom->MakeBox(no_Block, Iron, 5.5, 12.5, 2.3);
1059 mBlocks->SetLineColor(2);
1060 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-3.5, -7.5, 9.6 + (8 * F)));
1061
1062 sprintf(no_Block, "B4_LF%d_%d", F, ++N);
1063 mBlocks = geom->MakeBox(no_Block, Iron, 5.5, 2, 1.7);
1064 mBlocks->SetLineColor(2);
1065 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-3.5, 3, 13.6 + (8 * F)));
1066
1067 sprintf(no_Block, "B4_LF%d_%d", F, ++N);
1068 mBlocks = geom->MakeBox(no_Block, Iron, 5, 10.5, 1.7);
1069 mBlocks->SetLineColor(12);
1070 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-3.5, -9.5, 13.6 + (8 * F)));
1071 }
1072
1073 sprintf(no_Block, "B4_LF%d_%d", 9, N = 0);
1074 mBlocks = geom->MakeBox(no_Block, Iron, 5.5, 12.5, 6);
1075 mBlocks->SetLineColor(2);
1076 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-3.5, -7.5, 53));
1077
1078 sprintf(no_Block, "B4_LF%d_%d", 9, ++N);
1079 mBlocks = geom->MakeBox(no_Block, Iron, 5.5, 2, 4.5);
1080 mBlocks->SetLineColor(2);
1081 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-3.5, 3, 3));
1082 sprintf(no_Block, "B4_LF%d_%d", 9, ++N);
1083 mBlocks = geom->MakeBox(no_Block, Iron, 5, 10.5, 4.5);
1084 mBlocks->SetLineColor(12);
1085 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-3.5, -9.5, 3));
1086
1087 sprintf(no_Block, "B4_LF%d_%d", 9, ++N);
1088 mBlocks = geom->MakeBox(no_Block, Iron, 5.5, 12.5, 5);
1089 mBlocks->SetLineColor(2);
1090 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-3.5, -7.5, -3));
1091
1092 ///////////////////////////////////// Right-Side
1093 sprintf(no_Block, "B4_RS%d", ++N);
1094 mBlocks = geom->MakeBox(no_Block, Iron, 4.25, 11, 24);
1095 mBlocks->SetLineColor(12);
1096 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(4.25, -9, 19));
1097 sprintf(no_Block, "B4_RS%d", ++N);
1098 mBlocks = geom->MakeBox(no_Block, Iron, 0.25, 4, 32);
1099 mBlocks->SetLineColor(2);
1100 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(8.75, 2, 27));
1101
1102 sprintf(no_Block, "B4_RS%d", ++N);
1103 mBlocks = geom->MakeBox(no_Block, Iron, 4.5, 2, 1.8);
1104 mBlocks->SetLineColor(2);
1105 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(4.5, 0, 44.8));
1106 sprintf(no_Block, "B4_RS%d", ++N);
1107 mBlocks = geom->MakeBox(no_Block, Iron, 5.5, 3.5, 5);
1108 mBlocks->SetLineColor(20);
1109 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-12.5, 0, -4));
1110 sprintf(no_Block, "B4_RS%d", ++N);
1111 mBlocks = geom->MakeBox(no_Block, Iron, 6, 2, 0.3);
1112 mBlocks->SetLineColor(18);
1113 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(4.5, -4, 46.3));
1114 sprintf(no_Block, "B4_RS%d", ++N);
1115 mBlocks = geom->MakeBox(no_Block, Iron, 4, 2, 1.5);
1116 mBlocks->SetLineColor(12);
1117 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(4.5, -4, 44.5));
1118 sprintf(no_Block, "B4_RS%d", ++N);
1119 mBlocks = geom->MakeBox(no_Block, Iron, 4.5, 7, 1.8);
1120 mBlocks->SetLineColor(2);
1121 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(4.5, -13, 44.8));
1122
1123 sprintf(no_Block, "B4_RS%d", ++N);
1124 mBlocks = geom->MakeBox(no_Block, Iron, 4.5, 11, 1.8);
1125 mBlocks->SetLineColor(2);
1126 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(4.5, -9, 48.4));
1127
1128 sprintf(no_Block, "B4_RS%d", ++N);
1129 mBlocks = geom->MakeBox(no_Block, Iron, 4.25, 1.5, 2);
1130 mBlocks->SetLineColor(12);
1131 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(4.5, -0, 52.2));
1132 sprintf(no_Block, "B4_RS%d", ++N);
1133 mBlocks = geom->MakeBox(no_Block, Iron, 4, 2, 2);
1134 mBlocks->SetLineColor(12);
1135 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(4.5, -4, 52.2));
1136 sprintf(no_Block, "B4_RS%d", ++N);
1137 mBlocks = geom->MakeBox(no_Block, Iron, 4.5, 7, 2);
1138 mBlocks->SetLineColor(2);
1139 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(4.5, -13, 52.2));
1140
1141 sprintf(no_Block, "B4_RS%d", ++N);
1142 mBlocks = geom->MakeBox(no_Block, Iron, 4.5, 11, 2.4);
1143 mBlocks->SetLineColor(2);
1144 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(4.5, -9, 56.6));
1145
1146 ///////////////////////////////// RoofTop
1147 sprintf(no_Block, "B4_RT%d", N = 0);
1148 mBlocks = geom->MakeBox(no_Block, Iron, 4.25, 10.9, 0.2);
1149 mBlocks->SetLineColor(18);
1150 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(4.5, -9, 59));
1151 sprintf(no_Block, "B4_RT%d", ++N);
1152 mBlocks = geom->MakeBox(no_Block, Iron, 5.25, 12.4, 0.2);
1153 mBlocks->SetLineColor(18);
1154 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-3.5, -7.5, 59));
1155
1156 sprintf(no_Block, "B4_RT%d", ++N);
1157 mBlocks = geom->MakeBox(no_Block, Iron, 0.24, 12.4, 0.5);
1158 mBlocks->SetLineColor(18);
1159 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-8.79, -7.5, 59.3));
1160 sprintf(no_Block, "B4_RT%d", ++N);
1161 mBlocks = geom->MakeBox(no_Block, Iron, 0.01, 12.4, 0.5);
1162 mBlocks->SetLineColor(2);
1163 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-9.06, -7.5, 59.3));
1164
1165 sprintf(no_Block, "B4_RT%d", ++N);
1166 mBlocks = geom->MakeBox(no_Block, Iron, 0.24, 13, 0.5);
1167 mBlocks->SetLineColor(18);
1168 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(8.75, -7, 59.3));
1169 sprintf(no_Block, "B4_RT%d", ++N);
1170 mBlocks = geom->MakeBox(no_Block, Iron, 0.01, 13, 0.5);
1171 mBlocks->SetLineColor(2);
1172 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(9, -7, 59.3));
1173
1174 sprintf(no_Block, "B4_RT%d", ++N);
1175 mBlocks = geom->MakeBox(no_Block, Iron, 8.75, 0.24, 0.5);
1176 mBlocks->SetLineColor(18);
1177 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, -19.75, 59.3));
1178 sprintf(no_Block, "B4_RT%d", ++N);
1179 mBlocks = geom->MakeBox(no_Block, Iron, 8.75, 0.01, 0.5);
1180 mBlocks->SetLineColor(2);
1181 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(0, -20.01, 59.3));
1182
1183 sprintf(no_Block, "B4_RT%d", ++N);
1184 mBlocks = geom->MakeBox(no_Block, Iron, 5.25, 0.24, 0.5);
1185 mBlocks->SetLineColor(18);
1186 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-3.5, 4.55, 59.3));
1187 sprintf(no_Block, "B4_RT%d", ++N);
1188 mBlocks = geom->MakeBox(no_Block, Iron, 5.5, 0.01, 0.5);
1189 mBlocks->SetLineColor(2);
1190 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(-3.75, 5.1, 59.3));
1191
1192 sprintf(no_Block, "B4_RT%d", ++N);
1193 mBlocks = geom->MakeBox(no_Block, Iron, 3.5, 0.24, 0.5);
1194 mBlocks->SetLineColor(18);
1195 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(5, 1.55, 59.3));
1196 sprintf(no_Block, "B4_RT%d", ++N);
1197 mBlocks = geom->MakeBox(no_Block, Iron, 3.5, 0.01, 0.5);
1198 mBlocks->SetLineColor(2);
1199 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(5, 2.1, 59.3));
1200
1201 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1202 //////////////////////////////// GROUND ///////////////////////////////
1203 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1204
1205 sprintf(no_Block, "GRD%d", ++N);
1206 mBlocks = geom->MakeBox(no_Block, Iron, 40, 90, 2);
1207 mBlocks->SetLineColor(30);
1208 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(5, -20, -9));
1209
1210 sprintf(no_Block, "GRD%d", ++N);
1211 mBlocks = geom->MakeBox(no_Block, Iron, 30, 30, 2);
1212 mBlocks->SetLineColor(41);
1213 Phy_Building->AddNodeOverlap(mBlocks, 1, new TGeoTranslation(5, 30, -5));
1214 geom->CloseGeometry();
1215
1216 ////////////////////////// Draw
1217 Phy_Building->SetVisibility(false);
1218 Phy_Building->Draw("ogl");
1219}
#define N
Class describing rotation + translation.
Definition TGeoMatrix.h:317
The manager class for any TGeo geometry.
Definition TGeoManager.h:44
void CloseGeometry(Option_t *option="d")
Closing geometry implies checking the geometry validity, fixing shapes with negative parameters (run-...
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 * MakeTrd1(const char *name, TGeoMedium *medium, Double_t dx1, Double_t dx2, Double_t dy, Double_t dz)
Make in one step a volume pointing to a TGeoTrd1 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.
#define F(x, y, z)