]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STRUCT/AliSHIL.cxx
These functions now in minicernlib
[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="picts/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="picts/AliSHIL.gif">
52   */
53   //End_Html
54   //Begin_Html
55   /*
56     <img src="picts/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   Int_t *idtmed = fIdtmed->GetArray()-1699;
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.;
129   gMC->Gsvolu("YMOT", "PCON", idtmed[1715], parm, 12);
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);
139   gMC->Gsvolu("YMS1", "CONE", idtmed[1759], cpar, 5);
140   
141   //       OUTSIDE STEEL TUBE 
142   // Pb/W 
143   cpar[1] = cpar[2] - 4.;
144   cpar[3] = cpar[4] - 4.;
145   gMC->Gsvolu("YSH1", "CONE", idtmed[1718], cpar, 5);
146   gMC->Gspos("YSH1", 1, "YMS1", 0., 0., 0., 0, "ONLY");
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;
159   gMC->Gsvolu("YAC1", "CONE", idtmed[1714], cpar, 5);
160   gMC->Gspos("YAC1", 1, "YMS1", 0., 0., dzcoch1, 0, "ONLY");
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;
165   gMC->Gsvolu("YAC2", "CONE", idtmed[1714], cpar, 5);
166   gMC->Gspos("YAC2", 1, "YMS1", 0., 0., dzcoch2, 0, "ONLY");
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);
177   gMC->Gsvolu("YSC1", "CONE", idtmed[1718], cpar, 5);
178   gMC->Gspos("YSC1", 1, "YMS1", 0., 0., dzcoch1, 0, "ONLY");
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;
187   gMC->Gsvolu("YSC2", "CONE", idtmed[1718], cpar, 5);
188   gMC->Gspos("YSC2", 1, "YMS1", -4., 0., dzcoch2, 0, "ONLY");
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);
196   gMC->Gsvolu("YMB1", "CONE", idtmed[1755], cpar, 5);
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;
203   gMC->Gsvolu("YBS1", "CONE", idtmed[1749], cpar, 5);
204   gMC->Gspos("YBS1", 1, "YMB1", 0., 0., 0., 0, "ONLY");
205   
206   
207   gMC->Gspos("YMB1", 1, "YMS1", 0., 0., 0., 0, "ONLY");
208   dz = shl1 + abs_l;
209   gMC->Gspos("YMS1", 1, "YMOT", 0., 0., dz, 0, "ONLY");
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);
219   gMC->Gsvolu("YMS2", "CONE", idtmed[1759], cpar, 5);
220   
221   //       OUTSIDE STEEL TUBE 
222   
223   // Pb/W 
224   cpar[1] = cpar[2] - 4.;
225   cpar[3] = cpar[4] - 4.;
226   gMC->Gsvolu("YSH2", "CONE", idtmed[1718], cpar, 5);
227   gMC->Gspos("YSH2", 1, "YMS2", 0., 0., 0., 0, "ONLY");
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);
236   gMC->Gsvolu("YMB2", "CONE", idtmed[1755], cpar, 5);
237   
238   cpar[2] += -.8;
239   cpar[1]  = cpar[2] - .2;
240   cpar[4] += -.8;
241   cpar[3]  = cpar[4] - .2;
242   gMC->Gsvolu("YBS2", "CONE", idtmed[1749], cpar, 5);
243   gMC->Gspos("YBS2", 1, "YMB2", 0., 0., 0., 0, "ONLY");
244   
245   
246   gMC->Gspos("YMB2", 1, "YMS2", 0., 0., 0., 0, "ONLY");
247   dz = cpar[0] + z_l3;
248   gMC->Gspos("YMS2", 1, "YMOT", 0., 0., dz, 0, "ONLY");
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.;
261   gMC->Gsvolu("YMS3", "PCON", idtmed[1759], pcpar, 12);
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.;
269   gMC->Gsvolu("YSH3", "PCON", idtmed[1718], pcpar, 12);
270   gMC->Gspos("YSH3", 1, "YMS3", 0., 0., 0., 0, "MANY");
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);
282   gMC->Gsvolu("YMB3", "CONE", idtmed[1755], cpar, 5);
283   
284   cpar[2] += -.8;
285   cpar[1]  = cpar[2] - .2;
286   cpar[4] += -.8;
287   cpar[3]  = cpar[4] - .2;
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");
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;
302   gMC->Gsvolu("YMB5", "CONE", idtmed[1755], cpar, 5);
303   
304   cpar[2] += -.8;
305   cpar[1]  = cpar[2] - .2;
306   cpar[4] += -.8;
307   cpar[3]  = cpar[4] - .2;
308   gMC->Gsvolu("YBS5", "CONE", idtmed[1749], cpar, 5);
309   gMC->Gspos("YBS5", 1, "YMB5", 0., 0., 0., 0, "ONLY");
310   
311   dzs += cpar[0];
312   gMC->Gspos("YMB5", 1, "YMS3", 0., 0., dzs, 0, "ONLY");
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];
321   gMC->Gsvolu("YNW1", "TUBE", idtmed[1752], tpar, 3);
322   gMC->Gspos("YNW1", 1, "YMS3", 0., 0., dzs, 0, "MANY");
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.;
329   gMC->Gsvolu("YMB6", "TUBE", idtmed[1755], tpar, 3);
330   
331   tpar[1] = r_abs - .8;
332   tpar[0] = tpar[1] - .2;
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");
336   
337   dz = zmag_in;
338   gMC->Gspos("YMS3", 1, "YMOT", 0., 0., dz,  0, "ONLY");
339   
340   //       DIPOLE-> 
341   
342   tpar[0] = 0.;
343   tpar[1] = 30.;
344   tpar[2] = (1900. - zmag_out) / 2.;
345   shl4 = tpar[2];
346   gMC->Gsvolu("YMS4", "TUBE", idtmed[1759], tpar, 3);
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.;
353   gMC->Gsvolu("YSH4", "TUBE", idtmed[1718], tpar, 3);
354   gMC->Gspos("YSH4", 1, "YMS4", 0., 0., 0., 0, "MANY");
355   
356   //       OUTSIDE PB-TUBE 
357   
358   tpar[0] = 30. - r_pb - 4.;
359   tpar[1] = 30. - r_pb;
360   gMC->Gsvolu("YNW2", "TUBE", idtmed[1752], tpar, 3);
361   gMC->Gspos("YNW2", 1, "YMS4", 0., 0., 0., 0, "MANY");
362   
363   //       ... beam pipe 
364   
365   tpar[0] = 0.;
366   tpar[1] = r_abs;
367   tpar[2] = shl4;
368   gMC->Gsvolu("YMB4", "TUBE", idtmed[1755], tpar, 3);
369   
370   tpar[2] = shl4;
371   tpar[1] = r_abs - .8;
372   tpar[0] = tpar[1] - .2;
373   gMC->Gsvolu("YBS4", "TUBE", idtmed[1749], tpar, 3);
374   gMC->Gspos("YBS4", 1, "YMB4", 0., 0., 0., 0, "ONLY");
375   
376   
377   dz = zmag_out + shl4;
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");
381 }
382
383 //_____________________________________________________________________________
384 void 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 
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);
466   
467   //    Iron 
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);
471   
472   //    Tungsten 
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);
476   
477   //    Lead 
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);
481   
482   //    Air 
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);
486   
487   //    Vacuum 
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);
491   
492   //    Steel 
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);
496   
497   //    Lead/Tungsten 
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);
501 }
502
503 //_____________________________________________________________________________
504 void AliSHIL::DrawModule () 
505 {
506   //
507   // Draw a shaded view of the muon shield
508   //
509
510   // Set everything unseen
511   gMC->Gsatt("*", "seen", -1);
512   // 
513   // Set ALIC mother transparent
514   gMC->Gsatt("ALIC","SEEN",0);
515   //
516   // Set the volumes visible
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);
544   //
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");
554 }
555
556 //_____________________________________________________________________________
557 void 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