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