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