Introducing Copyright include file
[u/mrichter/AliRoot.git] / STRUCT / AliSHIL.cxx
CommitLineData
fe4da5cc 1///////////////////////////////////////////////////////////////////////////////
2// //
3// Muon Shield Class //
4// This class contains a description of the muon shield //
5// //
6//Begin_Html
7/*
1439f98e 8<img src="picts/AliSHILClass.gif">
fe4da5cc 9*/
10//End_Html
11// //
12// //
13///////////////////////////////////////////////////////////////////////////////
14
15#include "AliSHIL.h"
fe4da5cc 16#include "AliRun.h"
fe4da5cc 17#include "AliConst.h"
18
19ClassImp(AliSHIL)
20
21//_____________________________________________________________________________
22AliSHIL::AliSHIL()
23{
24 //
25 // Default constructor for muon shield
26 //
27}
28
29//_____________________________________________________________________________
30AliSHIL::AliSHIL(const char *name, const char *title)
b8032157 31 : AliModule(name,title)
fe4da5cc 32{
33 //
34 // Standard constructor for muon shield
35 //
36 SetMarkerColor(7);
37 SetMarkerStyle(2);
38 SetMarkerSize(0.4);
39}
40
41//_____________________________________________________________________________
fe4da5cc 42void AliSHIL::CreateGeometry()
43{
44 //
45 // Build muon shield geometry
46 //
47 // Origin N.Van Eijndhoven
48 //
49 //Begin_Html
50 /*
1439f98e 51 <img src="picts/AliSHIL.gif">
fe4da5cc 52 */
53 //End_Html
54 //Begin_Html
55 /*
1439f98e 56 <img src="picts/AliSHILTree.gif">
fe4da5cc 57 */
58 //End_Html
59
60 Float_t r_pb, cpar[5], parm[12], tpar[3], zmag_out,
61 abs_c, abs_l, r_abs, pcpar[12];
62 Float_t dr, dz,
63 zs, theta_open;
64 Float_t cz1, cz2;
65 Float_t dzcoch1, dzcoch2, acc_min, dzs, zcone_e, zmag_in,
66 z_close, z_l3, shl1, shl4;
67
ad51aeb0 68 Int_t *idtmed = fIdtmed->GetArray()-1699;
fe4da5cc 69
70 //abs_d = 90.; // DEFINES DRIFT LENGTH
71 //z_nose = 102.;
72 //z_cone = 285.;
73 //theta1 = 24.; // 1. angle defining the front absorber
74 //theta2 = 5.; // 2. angle defining the front absorbe
75 //acc_max = 9.; // ANGLE POLAIRE MAXIMUM
76 acc_min = 2.; // ANGLE POLAIRE MINIMUM DE DETECTION
77 abs_l = 503.;
78 //d_steel = 1.; // THICKNESS OF STEEL SUPPORT
79 //d_poly = 7.5;
80 //d_pb = 2.5;
81 //abs_cc = 315.; // DEFINES LENGTH OF CARBON
82 abs_c = 358.;
83 //abs_s = 150.; // DEFINES W-SHIELD LENGTH
84 //abs_n = 80.; // START OF NOSE
85 r_abs = 4.;
86 r_pb = .1;
87 //epsilon = .01;
88 //theta_r = 3.;
89 //d_rear = 35.;
90 theta_open = .75;
91
92 z_l3 = 700.;
93 zmag_in = 725.;
94 zmag_out = 1225.;
95 //zfil_in = 1471.;
96 //zfil_out = 1591.;
97 //zcon_in = 1900.;
98 //zcon_out = 2e3;
99 zcone_e = 859.0875;
100 //spec_l = 1800.;
101 //zplug_in = 1780.;
102 //zplug_out = 1900.;
103
104 // Chamber position
105 // CZ1=515.5
106 cz1 = 511.;
107 cz2 = 686.;
108 //cz3 = 971.;
109 //cz4 = 1245.;
110 //cz5 = 1445.;
111 //cz6 = 1610.;
112 //cz7 = 1710.;
113
114
115 // the mother of all shields
116
117 parm[0] = 0.;
118 parm[1] = 360.;
119 parm[2] = 3.;
120 parm[3] = abs_l;
121 parm[4] = 0.;
122 parm[5] = abs_l * TMath::Tan(acc_min * kDegrad);
123 parm[6] = zcone_e;
124 parm[7] = 0.;
125 parm[8] = 30.;
126 parm[9] = 1900.;
127 parm[10] = 0.;
128 parm[11] = 30.;
cfce8870 129 gMC->Gsvolu("YMOT", "PCON", idtmed[1715], parm, 12);
fe4da5cc 130
131 // beam shield ouside absorber inside l3
132
133 shl1 = (z_l3 - abs_l) / 2.;
134 cpar[0] = shl1;
135 cpar[1] = 0.;
136 cpar[2] = abs_l * TMath::Tan(acc_min * kDegrad);
137 cpar[3] = 0.;
138 cpar[4] = z_l3 * TMath::Tan(acc_min * kDegrad);
cfce8870 139 gMC->Gsvolu("YMS1", "CONE", idtmed[1759], cpar, 5);
fe4da5cc 140
141 // OUTSIDE STEEL TUBE
142 // Pb/W
143 cpar[1] = cpar[2] - 4.;
144 cpar[3] = cpar[4] - 4.;
cfce8870 145 gMC->Gsvolu("YSH1", "CONE", idtmed[1718], cpar, 5);
146 gMC->Gspos("YSH1", 1, "YMS1", 0., 0., 0., 0, "ONLY");
fe4da5cc 147
148 // COCHES FOR CHAMBERS
149 dzcoch1 = cz1 + 4. - (abs_l + shl1);
150 dzcoch2 = cz2 + 4. - (abs_l + shl1);
151
152 // AIR
153 cpar[0] = 7.5;
154 dr = cpar[0] * 2. * TMath::Tan(acc_min * kDegrad);
155 cpar[2] = (cz1 + 4. - cpar[0]) * TMath::Tan(acc_min * kDegrad);
156 cpar[1] = cpar[2] - 3.;
157 cpar[3] = cpar[1] + dr;
158 cpar[4] = cpar[2] + dr;
cfce8870 159 gMC->Gsvolu("YAC1", "CONE", idtmed[1714], cpar, 5);
160 gMC->Gspos("YAC1", 1, "YMS1", 0., 0., dzcoch1, 0, "ONLY");
fe4da5cc 161 cpar[2] = (cz2 + 4. - cpar[0]) * TMath::Tan(acc_min * kDegrad);
162 cpar[1] = cpar[2] - 3.;
163 cpar[3] = cpar[1] + dr;
164 cpar[4] = cpar[2] + dr;
cfce8870 165 gMC->Gsvolu("YAC2", "CONE", idtmed[1714], cpar, 5);
166 gMC->Gspos("YAC2", 1, "YMS1", 0., 0., dzcoch2, 0, "ONLY");
fe4da5cc 167
168 // STEEL
169 cpar[0] = (cz1 + 4. + 20. - abs_l) / 2.;
170 dr = cpar[0] * 2. * TMath::Tan(acc_min * kDegrad);
171 // CPAR(3)=ABS_L*TAN(kDegrad*ACC_MIN)-3.
172 cpar[2] = abs_l * TMath::Tan(acc_min * kDegrad) - 4.;
173 cpar[1] = cpar[2] - 3.;
174 cpar[3] = cpar[1] + dr;
175 cpar[4] = cpar[2] + dr;
176 dzcoch1 = abs_l + cpar[0] - (abs_l + shl1);
cfce8870 177 gMC->Gsvolu("YSC1", "CONE", idtmed[1718], cpar, 5);
178 gMC->Gspos("YSC1", 1, "YMS1", 0., 0., dzcoch1, 0, "ONLY");
fe4da5cc 179
180 cpar[0] = 16.;
181 dr = cpar[0] * 2. * TMath::Tan(acc_min * kDegrad);
182 // CPAR(3)=(CZ2+4.-CPAR(1))*TAN(kDegrad*ACC_MIN)-3.
183 cpar[2] = (cz2 + 4. - cpar[0]) * TMath::Tan(acc_min * kDegrad) - 4.;
184 cpar[1] = cpar[2] - 3.;
185 cpar[3] = cpar[1] + dr;
186 cpar[4] = cpar[2] + dr;
cfce8870 187 gMC->Gsvolu("YSC2", "CONE", idtmed[1718], cpar, 5);
188 gMC->Gspos("YSC2", 1, "YMS1", -4., 0., dzcoch2, 0, "ONLY");
fe4da5cc 189
190 // ... beam pipe
191 cpar[0] = shl1;
192 cpar[1] = 0.;
193 cpar[2] = r_abs + (abs_l - abs_c) * TMath::Tan(theta_open * kDegrad);
194 cpar[3] = 0.;
195 cpar[4] = cpar[2] + shl1 * 2. * TMath::Tan(theta_open * kDegrad);
cfce8870 196 gMC->Gsvolu("YMB1", "CONE", idtmed[1755], cpar, 5);
fe4da5cc 197
198 cpar[0] = shl1;
199 cpar[2] += -.8;
200 cpar[1] = cpar[2] - .2;
201 cpar[4] += -.8;
202 cpar[3] = cpar[4] - .2;
cfce8870 203 gMC->Gsvolu("YBS1", "CONE", idtmed[1749], cpar, 5);
204 gMC->Gspos("YBS1", 1, "YMB1", 0., 0., 0., 0, "ONLY");
fe4da5cc 205
206
cfce8870 207 gMC->Gspos("YMB1", 1, "YMS1", 0., 0., 0., 0, "ONLY");
fe4da5cc 208 dz = shl1 + abs_l;
cfce8870 209 gMC->Gspos("YMS1", 1, "YMOT", 0., 0., dz, 0, "ONLY");
fe4da5cc 210
211 // BEAM SHIELD OUTSIDE L3
212
213 // L3->DIPOLE
214 cpar[0] = (zmag_in - z_l3) / 2.;
215 cpar[1] = 0.;
216 cpar[2] = z_l3 * TMath::Tan(acc_min * kDegrad);
217 cpar[3] = 0.;
218 cpar[4] = zmag_in * TMath::Tan(acc_min * kDegrad);
cfce8870 219 gMC->Gsvolu("YMS2", "CONE", idtmed[1759], cpar, 5);
fe4da5cc 220
221 // OUTSIDE STEEL TUBE
222
223 // Pb/W
224 cpar[1] = cpar[2] - 4.;
225 cpar[3] = cpar[4] - 4.;
cfce8870 226 gMC->Gsvolu("YSH2", "CONE", idtmed[1718], cpar, 5);
227 gMC->Gspos("YSH2", 1, "YMS2", 0., 0., 0., 0, "ONLY");
fe4da5cc 228
229 // ... beam pipe
230
231 zs = z_l3 - abs_c;
232 cpar[1] = 0.;
233 cpar[2] = r_abs + zs * TMath::Tan(theta_open * kDegrad);
234 cpar[3] = 0.;
235 cpar[4] = cpar[2] + cpar[0] * 2. * TMath::Tan(theta_open * kDegrad);
cfce8870 236 gMC->Gsvolu("YMB2", "CONE", idtmed[1755], cpar, 5);
fe4da5cc 237
238 cpar[2] += -.8;
239 cpar[1] = cpar[2] - .2;
240 cpar[4] += -.8;
241 cpar[3] = cpar[4] - .2;
cfce8870 242 gMC->Gsvolu("YBS2", "CONE", idtmed[1749], cpar, 5);
243 gMC->Gspos("YBS2", 1, "YMB2", 0., 0., 0., 0, "ONLY");
fe4da5cc 244
245
cfce8870 246 gMC->Gspos("YMB2", 1, "YMS2", 0., 0., 0., 0, "ONLY");
fe4da5cc 247 dz = cpar[0] + z_l3;
cfce8870 248 gMC->Gspos("YMS2", 1, "YMOT", 0., 0., dz, 0, "ONLY");
fe4da5cc 249 pcpar[0] = 0.;
250 pcpar[1] = 360.;
251 pcpar[2] = 3.;
252 pcpar[3] = 0.;
253 pcpar[4] = 0.;
254 pcpar[5] = zmag_in * TMath::Tan(acc_min * kDegrad);
255 pcpar[6] = zcone_e - zmag_in;
256 pcpar[7] = 0.;
257 pcpar[8] = 30.;
258 pcpar[9] = zmag_out - zmag_in;
259 pcpar[10] = 0.;
260 pcpar[11] = 30.;
cfce8870 261 gMC->Gsvolu("YMS3", "PCON", idtmed[1759], pcpar, 12);
fe4da5cc 262
263 // OUTSIDE STEEL TUBE
264
265 // Pb/W
266 pcpar[4] = pcpar[5] - 4.;
267 pcpar[7] = pcpar[8] - 4.;
268 pcpar[10] = pcpar[11] - 4.;
cfce8870 269 gMC->Gsvolu("YSH3", "PCON", idtmed[1718], pcpar, 12);
270 gMC->Gspos("YSH3", 1, "YMS3", 0., 0., 0., 0, "MANY");
fe4da5cc 271
272 // ... beam pipe up to closing cone
273
274 zs = zmag_in - abs_c;
275 z_close = 804.;
276
277 cpar[0] = (z_close - zmag_in) / 2.;
278 cpar[1] = 0.;
279 cpar[2] = r_abs + zs * TMath::Tan(theta_open * kDegrad);
280 cpar[3] = 0.;
281 cpar[4] = cpar[2] + cpar[0] * 2. * TMath::Tan(theta_open * kDegrad);
cfce8870 282 gMC->Gsvolu("YMB3", "CONE", idtmed[1755], cpar, 5);
fe4da5cc 283
284 cpar[2] += -.8;
285 cpar[1] = cpar[2] - .2;
286 cpar[4] += -.8;
287 cpar[3] = cpar[4] - .2;
cfce8870 288 gMC->Gsvolu("YBS3", "CONE", idtmed[1749], cpar, 5);
289 gMC->Gspos("YBS3", 1, "YMB3", 0., 0., 0., 0, "ONLY");
290 gMC->Gspos("YMB3", 1, "YMS3", 0., 0., cpar[0], 0, "ONLY");
fe4da5cc 291
292 // .closing cone
293
294 dzs = cpar[0] * 2.;
295 zs = z_close - abs_c;
296
297 cpar[0] = 25.;
298 cpar[1] = 0.;
299 cpar[2] = r_abs + zs * TMath::Tan(theta_open * kDegrad);
300 cpar[3] = 0.;
301 cpar[4] = r_abs;
cfce8870 302 gMC->Gsvolu("YMB5", "CONE", idtmed[1755], cpar, 5);
fe4da5cc 303
304 cpar[2] += -.8;
305 cpar[1] = cpar[2] - .2;
306 cpar[4] += -.8;
307 cpar[3] = cpar[4] - .2;
cfce8870 308 gMC->Gsvolu("YBS5", "CONE", idtmed[1749], cpar, 5);
309 gMC->Gspos("YBS5", 1, "YMB5", 0., 0., 0., 0, "ONLY");
fe4da5cc 310
311 dzs += cpar[0];
cfce8870 312 gMC->Gspos("YMB5", 1, "YMS3", 0., 0., dzs, 0, "ONLY");
fe4da5cc 313 dzs += cpar[0];
314
315 // OUTSIDE PB-TUBE
316
317 tpar[0] = 30. - r_pb - 4.;
318 tpar[1] = 30. - r_pb;
319 tpar[2] = (zmag_out - z_close - 50.) / 2.;
320 dzs += tpar[2];
cfce8870 321 gMC->Gsvolu("YNW1", "TUBE", idtmed[1752], tpar, 3);
322 gMC->Gspos("YNW1", 1, "YMS3", 0., 0., dzs, 0, "MANY");
fe4da5cc 323
324 // constant beam pipe up to end of magnet
325
326 tpar[0] = 0.;
327 tpar[1] = r_abs;
328 tpar[2] = (zmag_out - z_close - 50.) / 2.;
cfce8870 329 gMC->Gsvolu("YMB6", "TUBE", idtmed[1755], tpar, 3);
fe4da5cc 330
331 tpar[1] = r_abs - .8;
332 tpar[0] = tpar[1] - .2;
cfce8870 333 gMC->Gsvolu("YBS6", "TUBE", idtmed[1749], tpar, 3);
334 gMC->Gspos("YBS6", 1, "YMB6", 0., 0., 0., 0, "ONLY");
335 gMC->Gspos("YMB6", 1, "YMS3", 0., 0., dzs, 0, "ONLY");
fe4da5cc 336
337 dz = zmag_in;
cfce8870 338 gMC->Gspos("YMS3", 1, "YMOT", 0., 0., dz, 0, "ONLY");
fe4da5cc 339
340 // DIPOLE->
341
342 tpar[0] = 0.;
343 tpar[1] = 30.;
344 tpar[2] = (1900. - zmag_out) / 2.;
345 shl4 = tpar[2];
cfce8870 346 gMC->Gsvolu("YMS4", "TUBE", idtmed[1759], tpar, 3);
fe4da5cc 347 // CALL GSVOLU('YMS4','TUBE',IDTMED(1752),TPAR,3,IL3) ! W
348
349 // OUTSIDE STEEL TUBE
350
351 // Pb/W
352 tpar[0] = tpar[1] - 4.;
cfce8870 353 gMC->Gsvolu("YSH4", "TUBE", idtmed[1718], tpar, 3);
354 gMC->Gspos("YSH4", 1, "YMS4", 0., 0., 0., 0, "MANY");
fe4da5cc 355
356 // OUTSIDE PB-TUBE
357
358 tpar[0] = 30. - r_pb - 4.;
359 tpar[1] = 30. - r_pb;
cfce8870 360 gMC->Gsvolu("YNW2", "TUBE", idtmed[1752], tpar, 3);
361 gMC->Gspos("YNW2", 1, "YMS4", 0., 0., 0., 0, "MANY");
fe4da5cc 362
363 // ... beam pipe
364
365 tpar[0] = 0.;
366 tpar[1] = r_abs;
367 tpar[2] = shl4;
cfce8870 368 gMC->Gsvolu("YMB4", "TUBE", idtmed[1755], tpar, 3);
fe4da5cc 369
370 tpar[2] = shl4;
371 tpar[1] = r_abs - .8;
372 tpar[0] = tpar[1] - .2;
cfce8870 373 gMC->Gsvolu("YBS4", "TUBE", idtmed[1749], tpar, 3);
374 gMC->Gspos("YBS4", 1, "YMB4", 0., 0., 0., 0, "ONLY");
fe4da5cc 375
376
377 dz = zmag_out + shl4;
cfce8870 378 gMC->Gspos("YMB4", 1, "YMS4", 0., 0., 0., 0, "ONLY");
379 gMC->Gspos("YMS4", 1, "YMOT", 0., 0., dz, 0, "ONLY");
380 gMC->Gspos("YMOT", 1, "ALIC", 0., 0., 0., 0, "ONLY");
fe4da5cc 381}
382
383//_____________________________________________________________________________
384void AliSHIL::CreateMaterials()
385{
386 //
387 // Defines materials for the muon shield
388 //
389 // Origin N. Van Eijndhoven
390 //
391
392 Int_t ISXFLD = gAlice->Field()->Integ();
393 Float_t SXMGMX = gAlice->Field()->Max();
394
395 Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 };
396 Float_t zsteel[4] = { 26.,24.,28.,14. };
397 Float_t wsteel[4] = { .715,.18,.1,.005 };
398 Float_t apbw[2] = { 207.2,183.85 };
399 Float_t zpbw[2] = { 82.,74. };
400 Float_t wpbw[2] = { .5,.5 };
401
402 Float_t epsil, stmin, tmaxfd, deemax, stemax;
403
404 // STEEL
405
406
407 // LEAD/TUNGSTEN MIXTURE
408
409
410 // --- Define the various materials for GEANT ---
411 // Aluminum
412 AliMaterial(9, "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 37.2);
413 AliMaterial(29, "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 37.2);
414 AliMaterial(49, "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 37.2);
415
416 // Iron
417 AliMaterial(10, "IRON$ ", 55.85, 26., 7.87, 1.76, 17.1);
418 AliMaterial(30, "IRON$ ", 55.85, 26., 7.87, 1.76, 17.1);
419 AliMaterial(50, "IRON$ ", 55.85, 26., 7.87, 1.76, 17.1);
420
421 // Tungsten
422 AliMaterial(12, "TUNGSTEN$ ", 183.85, 74., 19.3, .35, 10.3);
423 AliMaterial(32, "TUNGSTEN$ ", 183.85, 74., 19.3, .35, 10.3);
424 AliMaterial(52, "TUNGSTEN$ ", 183.85, 74., 19.3, .35, 10.3);
425
426 // Lead
427 AliMaterial(13, "LEAD$ ", 207.19, 82., 11.35, .56, 18.5);
428 AliMaterial(33, "LEAD$ ", 207.19, 82., 11.35, .56, 18.5);
429 AliMaterial(53, "LEAD$ ", 207.19, 82., 11.35, .56, 18.5);
430
431 // Air
432 AliMaterial(15, "AIR$ ", 14.61, 7.3, .001205, 30423.24, 67500);
433 AliMaterial(35, "AIR$ ", 14.61, 7.3, .001205, 30423.24, 67500);
434 AliMaterial(55, "AIR$ ", 14.61, 7.3, .001205, 30423.24, 67500);
435
436 // Vacuum
437 AliMaterial(16, "VACUUM$ ", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
438 AliMaterial(36, "VACUUM$ ", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
439 AliMaterial(56, "VACUUM$ ", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
440
441 // stainless Steel
442 AliMixture(19, "STAINLESS STEEL$", asteel, zsteel, 7.88, 4, wsteel);
443 AliMixture(39, "STAINLESS STEEL$", asteel, zsteel, 7.88, 4, wsteel);
444 AliMixture(59, "STAINLESS STEEL$", asteel, zsteel, 7.88, 4, wsteel);
445
446 // Lead/Tungsten
447 AliMixture(20, "LEAD/TUNGSTEN$", apbw, zpbw, 15.325, 2, wpbw);
448 AliMixture(40, "LEAD/TUNGSTEN$", apbw, zpbw, 15.325, 2, wpbw);
449 AliMixture(60, "LEAD/TUNGSTEN$", apbw, zpbw, 15.325, 2, wpbw);
450
451 // ****************
452 // Defines tracking media parameters.
453 // Les valeurs sont commentees pour laisser le defaut
454 // a GEANT (version 3-21, page CONS200), f.m.
455 epsil = .001; // Tracking precision,
456 stemax = -1.; // Maximum displacement for multiple scat
457 tmaxfd = -20.; // Maximum angle due to field deflection
458 deemax = -.3; // Maximum fractional energy loss, DLS
459 stmin = -.8;
460 // ***************
461
462 // Aluminum
ad51aeb0 463 AliMedium(9, "ALU_C0 ", 9, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
464 AliMedium(29, "ALU_C1 ", 29, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
465 AliMedium(49, "ALU_C2 ", 49, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
fe4da5cc 466
467 // Iron
ad51aeb0 468 AliMedium(10, "FE_C0 ", 10, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
469 AliMedium(30, "FE_C1 ", 30, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
470 AliMedium(50, "FE_C2 ", 50, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
fe4da5cc 471
472 // Tungsten
ad51aeb0 473 AliMedium(12, "W_C0 ", 12, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
474 AliMedium(32, "W_C1 ", 32, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
475 AliMedium(52, "W_C2 ", 52, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
fe4da5cc 476
477 // Lead
ad51aeb0 478 AliMedium(13, "PB_C0 ", 13, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
479 AliMedium(33, "PB_C1 ", 33, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
480 AliMedium(53, "PB_C2 ", 53, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
fe4da5cc 481
482 // Air
ad51aeb0 483 AliMedium(15, "AIR_C0 ", 15, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
484 AliMedium(35, "AIR_C1 ", 35, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
485 AliMedium(55, "AIR_C2 ", 55, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
fe4da5cc 486
487 // Vacuum
ad51aeb0 488 AliMedium(16, "VA_C0 ", 16, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
489 AliMedium(36, "VA_C1 ", 36, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
490 AliMedium(56, "VA_C2 ", 56, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
fe4da5cc 491
492 // Steel
ad51aeb0 493 AliMedium(19, "ST_C0 ", 19, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
494 AliMedium(39, "ST_C1 ", 39, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
495 AliMedium(59, "ST_C3 ", 59, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
fe4da5cc 496
497 // Lead/Tungsten
ad51aeb0 498 AliMedium(20, "PB/W0 ", 20, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
499 AliMedium(40, "PB/W1 ", 40, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
500 AliMedium(60, "PB/W3 ", 60, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
fe4da5cc 501}
502
503//_____________________________________________________________________________
b8032157 504void AliSHIL::DrawModule ()
fe4da5cc 505{
506 //
507 // Draw a shaded view of the muon shield
508 //
509
fe4da5cc 510 // Set everything unseen
cfce8870 511 gMC->Gsatt("*", "seen", -1);
fe4da5cc 512 //
513 // Set ALIC mother transparent
cfce8870 514 gMC->Gsatt("ALIC","SEEN",0);
fe4da5cc 515 //
516 // Set the volumes visible
cfce8870 517 gMC->Gsatt("YMOT","seen",1);
518 gMC->Gsatt("YMS1","seen",1);
519 gMC->Gsatt("YSH1","seen",1);
520 gMC->Gsatt("YAC1","seen",1);
521 gMC->Gsatt("YAC2","seen",1);
522 gMC->Gsatt("YSC1","seen",1);
523 gMC->Gsatt("YSC2","seen",1);
524 gMC->Gsatt("YMB1","seen",1);
525 gMC->Gsatt("YBS1","seen",1);
526 gMC->Gsatt("YMS2","seen",1);
527 gMC->Gsatt("YSH2","seen",1);
528 gMC->Gsatt("YMB2","seen",1);
529 gMC->Gsatt("YBS2","seen",1);
530 gMC->Gsatt("YMS3","seen",1);
531 gMC->Gsatt("YSH3","seen",1);
532 gMC->Gsatt("YMB3","seen",1);
533 gMC->Gsatt("YBS3","seen",1);
534 gMC->Gsatt("YMB5","seen",1);
535 gMC->Gsatt("YBS5","seen",1);
536 gMC->Gsatt("YNW1","seen",1);
537 gMC->Gsatt("YMB6","seen",1);
538 gMC->Gsatt("YBS6","seen",1);
539 gMC->Gsatt("YMS4","seen",1);
540 gMC->Gsatt("YSH4","seen",1);
541 gMC->Gsatt("YNW2","seen",1);
542 gMC->Gsatt("YMB4","seen",1);
543 gMC->Gsatt("YBS4","seen",1);
fe4da5cc 544 //
cfce8870 545 gMC->Gdopt("hide", "on");
546 gMC->Gdopt("shad", "on");
547 gMC->Gsatt("*", "fill", 7);
548 gMC->SetClipBox(".");
549 gMC->SetClipBox("*", 0, 3000, -3000, 3000, -6000, 6000);
550 gMC->DefaultRange();
551 gMC->Gdraw("alic", 30, 30, 0, 26.5, 18, .03, .03);
552 gMC->Gdhead(1111, "Muon Shield");
553 gMC->Gdman(16, 6, "MAN");
fe4da5cc 554}
555
556//_____________________________________________________________________________
557void AliSHIL::Init()
558{
559 //
560 // Initialise the muon shield after it has been built
561 //
562 Int_t i;
563 //
564 printf("\n");
565 for(i=0;i<35;i++) printf("*");
566 printf(" SHIL_INIT ");
567 for(i=0;i<35;i++) printf("*");
568 printf("\n");
569 //
570 // Here the ABSO initialisation code (if any!)
571 for(i=0;i<80;i++) printf("*");
572 printf("\n");
573}
574
575