]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STRUCT/AliDIPOv2.cxx
Default is no shunting.
[u/mrichter/AliRoot.git] / STRUCT / AliDIPOv2.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /*
17 $Log$
18 Revision 1.14  2000/12/21 16:37:23  morsch
19 Use Al for coil and cable material. The materials used before cause the dipole to
20 have hydrogene on the outer surface leading to unrealistic gamma rates due to
21 n-capture.
22
23 Revision 1.13  2000/10/02 21:28:15  fca
24 Removal of useless dependecies via forward declarations
25
26 Revision 1.12  2000/06/20 10:53:01  morsch
27 Volume placed outside mother volume (DDIP) corrected (Galina Chabratova)
28
29 Revision 1.11  2000/06/11 12:33:46  morsch
30 Coding rule violations corrected
31
32 Revision 1.10  2000/06/09 19:32:56  morsch
33 New detailed and corrected version from Galina Chabratova
34
35 Revision 1.9  2000/04/27 09:29:53  fca
36 Reverting to version 1.6.2
37
38 Revision 1.6.2.1  1999/12/03 16:38:51  fca
39 Correct overlap in magnet
40
41 Revision 1.6  1999/09/29 09:24:30  fca
42 Introduction of the Copyright and cvs Log
43
44 */
45
46 ///////////////////////////////////////////////////////////////////////////////
47 //                                                                           //
48 //  Magnetic Dipole version 1                                                //
49 //                                                                           //
50 //Begin_Html
51 /*
52 <img src="picts/AliDIPOv2Class.gif">
53 </pre>
54 <br clear=left>
55 <font size=+2 color=red>
56 <p>The responsible person for this module is
57 <a href="mailto:andreas.morsch@cern.ch">Andreas Morsch</a>.
58 </font>
59 <pre>
60 */
61 //End_Html
62 //                                                                           //
63 //                                                                           //
64
65 #include "AliDIPOv2.h"
66 #include "AliRun.h"
67 #include "AliMC.h"
68 #include "AliMagF.h"
69 #include "AliConst.h"
70  
71 ClassImp(AliDIPOv2)
72  
73 //_____________________________________________________________________________
74 AliDIPOv2::AliDIPOv2() 
75 {
76   //
77   // Last design of magnetic dipole version 2
78   //
79 }
80  
81 //_____________________________________________________________________________
82 AliDIPOv2::AliDIPOv2(const char *name, const char *title)
83   : AliDIPO(name,title)
84 {
85   //
86   // Standard constructor for the magnetic dipole version 2    
87    SetMarkerColor(7);
88    SetMarkerStyle(2);
89    SetMarkerSize(0.4);
90 }
91  
92 //_____________________________________________________________________________
93 void AliDIPOv2::CreateGeometry()
94 {
95   //
96   // Creation of the geometry of the magnetic DIPOLE version 2
97   //
98
99   //  AliMC* gMC = AliMC::GetMC();
100
101   Float_t cpar[5], tpar[15], ypar[12];
102   Float_t dz, dx, dy;
103   Int_t idrotm[1899];
104   Float_t accMax, the1, phi1, the2, phi2, the3, phi3;
105   
106   Int_t *idtmed = fIdtmed->GetArray()-1799;
107
108 //  const Int_t kCoil = 1813;
109 //  const Int_t kCable= 1811;
110
111   const Int_t kCoil = 1808;
112   const Int_t kCable= 1808;
113   
114   accMax = 9.;   // ANGLE POLAIRE MAXIMUM 
115
116   //       DIPOLE MAGNET 
117
118   tpar[0] = 0.; 
119   tpar[1] = 360.;
120   tpar[2] = 4.; 
121   //
122   tpar[3] = -250.55;
123   tpar[4] = 144.;
124   tpar[5] = 527.34; 
125   //
126   tpar[6] = -160.7;
127   tpar[7] = 144.;
128   tpar[8] = 527.34; 
129   //
130   tpar[9] = 150.8;
131   tpar[10] = 193.3;
132   tpar[11] = 527.34;
133   //
134   tpar[12] = 250.55;
135   tpar[13] = 193.3;
136   tpar[14] = 527.34;
137
138
139   gMC->Gsvolu("DDIP", "PCON", idtmed[1814], tpar, 15);  
140   //       COILS 
141   // air - m.f. 
142   cpar[0] = 207.;
143   cpar[1] = 274.;
144   cpar[2] = 37.65;
145   cpar[3] = 119.;
146   cpar[4] = 241. ; 
147   //   coil - high cuts
148   gMC->Gsvolu("DC1 ", "TUBS", idtmed[kCoil+40], cpar, 5);
149   cpar[3] = -61.;
150   cpar[4] = 61.;
151   gMC->Gsvolu("DC2 ", "TUBS", idtmed[kCoil+40], cpar, 5);
152
153   //  coil - low cuts cuts
154   cpar[0] = 207.;
155 //  cpar[1] = cpar[0] + 10.;
156   cpar[1] = 217;
157   cpar[3] = 119.;
158   cpar[4] = 241.;
159
160   gMC->Gsvolu("DC3 ", "TUBS", idtmed[kCoil], cpar, 5);
161   cpar[0] = 207.; 
162   cpar[1] = 217; 
163   cpar[3] = -61.;
164   cpar[4] = 61.;
165   gMC->Gsvolu("DC4 ", "TUBS", idtmed[kCoil], cpar, 5);
166
167   gMC->Gspos("DC3 ", 1, "DC1 ", 0., 0., 0., 0, "ONLY");
168   gMC->Gspos("DC4 ", 1, "DC2 ", 0., 0., 0., 0, "ONLY");
169
170 //  dz =  37.65 - 243.55
171   dz = -205.9-2.45;
172   dx = 5.;
173   gMC->Gspos("DC1 ", 1, "DDIP", dx, 0.,  dz, 0, "ONLY");
174   gMC->Gspos("DC1 ", 2, "DDIP", dx, 0., -dz, 0, "ONLY");
175   gMC->Gspos("DC2 ", 1, "DDIP", -dx, 0.,  dz, 0, "ONLY");
176   gMC->Gspos("DC2 ", 2, "DDIP", -dx, 0., -dz, 0, "ONLY");
177   the1 = 180.;
178   phi1 = 0.;
179   the2 = 90.;
180   phi2 = 151.;
181   the3 = 90.;
182   phi3 = 61.;
183   AliMatrix(idrotm[1800], the1, phi1, the2, phi2, the3, phi3);
184   phi2 = 29.;  //90-61
185   the3 = -90.;
186   phi3 = -61.;
187   AliMatrix(idrotm[1801], the1, phi1, the2, phi2, the3, phi3);
188   the1 = 0.;
189   phi1 = 0.;
190   the2 = 90.;
191   phi2 = 151.;
192   the3 = 90.;
193   phi3 = 61.;
194   AliMatrix(idrotm[1802], the1, phi1, the2, phi2, the3, phi3);
195   phi2 = 29.;
196   the3 = -90.;
197   phi3 = -61.;
198   AliMatrix(idrotm[1803], the1, phi1, the2, phi2, the3, phi3);
199
200   cpar[0] = 25.;
201   cpar[1] = 100.3; //25+75.3
202   cpar[2] = 33.5;
203   cpar[3] = 270.;
204   cpar[4] = 360.;
205 //*  coil high cuts
206   gMC->Gsvolu("DC11", "TUBS", idtmed[kCoil+40], cpar, 5);
207
208   dx = TMath::Sin(30.5*kDegrad) * -(207.+33.5)+5./TMath::Sin(30.5*kDegrad) ; 
209   dy = TMath::Cos(30.5*kDegrad) * -(207.+33.5);  
210   dz = cpar[1] - 243.55-2.45;
211   gMC->Gspos("DC11", 1, "DDIP",  dx, dy,  dz, idrotm[1800], "ONLY");
212   gMC->Gspos("DC11", 2, "DDIP",  dx, dy, -dz, idrotm[1802], "ONLY");
213   gMC->Gspos("DC11", 3, "DDIP", -dx, dy,  dz, idrotm[1801], "ONLY");
214   gMC->Gspos("DC11", 4, "DDIP", -dx, dy, -dz, idrotm[1803], "ONLY");
215
216
217
218 //* ... higher cuts
219   cpar[0] = 25.;
220   cpar[1] = 100.3; //25+75.3
221   cpar[2] = 33.5;
222   cpar[3] = 0.;
223   cpar[4] = 90.;
224 //*  coil high cuts
225   gMC->Gsvolu("DC12", "TUBS", idtmed[kCoil+40], cpar, 5);
226
227   dx = TMath::Sin(30.5*kDegrad) * -(207.+33.5)+5./TMath::Sin(30.5*kDegrad) ; 
228   dy = TMath::Cos(30.5*kDegrad) *(207.+33.5);  
229   dz = cpar[1] - 243.55-2.45;
230   gMC->Gspos("DC12", 1, "DDIP",  dx, dy,  dz, idrotm[1801], "ONLY");
231   gMC->Gspos("DC12", 2, "DDIP",  dx, dy, -dz, idrotm[1803], "ONLY");
232   gMC->Gspos("DC12", 3, "DDIP", -dx, dy,  dz, idrotm[1800], "ONLY");
233   gMC->Gspos("DC12", 4, "DDIP", -dx, dy, -dz, idrotm[1802], "ONLY");
234
235   the1 = 90.;
236   phi1 = 61.;
237   the2 = 90.;
238   phi2 = 151.;
239   the3 = 0.;
240   phi3 = 0.;
241   AliMatrix(idrotm[1804], the1, phi1, the2, phi2, the3, phi3);
242   the1 = 90.;
243   phi1 = -61.;
244   the2 = 90.;
245   phi2 = -151.;
246   AliMatrix(idrotm[1805], the1, phi1, the2, phi2, the3, phi3);
247   the1 = 90.;
248   phi1 = 119.; //180 -61
249   the2 = 90.;
250   phi2 = 209.; //270-61
251   AliMatrix(idrotm[1806], the1, phi1, the2, phi2, the3, phi3);
252   the1 = 90.;
253   phi1 = -119.;
254   the2 = 90.;
255   phi2 = -209.;
256   AliMatrix(idrotm[1807], the1, phi1, the2, phi2, the3, phi3); 
257
258 //*  coil - high cuts
259
260   tpar[0] = 37.65;
261   tpar[1] = 33.5;
262   tpar[2] = 145.5;
263   gMC->Gsvolu("DL1 ", "BOX ", idtmed[kCoil+40], tpar, 3);
264
265 // coil - low cuts
266
267   tpar[0] = 5.;
268   dx = 37.65  - 5.;  
269   gMC->Gsvolu("DL2 ", "BOX ", idtmed[kCoil], tpar, 3);
270   gMC->Gspos("DL2 ", 1, "DL1 ", dx, 0., 0., 0, "ONLY");
271
272   dx =-53.62;
273   dy =-241.26819;
274   dz = 0.0; 
275   gMC->Gspos("DL1 ", 1, "DDIP", dx,  dy, dz, idrotm[1804], "ONLY");
276   gMC->Gspos("DL1 ", 2, "DDIP", dx, -dy, dz, idrotm[1805], "ONLY");
277   gMC->Gspos("DL1 ", 3, "DDIP",-dx,  dy, dz, idrotm[1806], "ONLY");
278   gMC->Gspos("DL1 ", 4, "DDIP",-dx, -dy, dz, idrotm[1807], "ONLY");
279
280   // Contactor
281
282  //  high cuts
283
284   //Steel outer face planes
285
286   cpar[0] = 207.-18.6;
287   cpar[1] = 274.+18.6;
288   cpar[2] = 1.;
289   cpar[3] = -50.;
290   cpar[4] = 50.; 
291  
292   gMC->Gsvolu("DCO1", "TUBS", idtmed[1818], cpar, 5);
293   dx = -5.;
294   dz = 168.25-1.5-1.;
295   gMC->Gspos("DCO1", 1, "DDIP", dx, 0, dz, 0, "ONLY");
296   dz = 243.55+4.5+1.5+1.;
297   gMC->Gspos("DCO1", 2, "DDIP", dx, 0, dz, 0, "ONLY");
298   
299   // 9.06.2000
300
301   //  cpar[0] = 207.-18.6;
302   //  cpar[1] = 274.+18.6;
303   // cpar[2] = 1.;
304   cpar[3] = 180.-50.;
305   cpar[4] = 180.+50.; 
306  
307   gMC->Gsvolu("DCO2", "TUBS", idtmed[1818], cpar, 5);
308   dx = +5.;
309   dz = 168.25-1.5-1.;
310   gMC->Gspos("DCO2", 1, "DDIP", dx, 0, dz, 0, "ONLY");
311   dz = 243.55+4.5+1.5+1.;
312   gMC->Gspos("DCO2", 2, "DDIP", dx, 0, dz, 0, "ONLY");
313  
314
315
316   // Resin face planes
317
318   cpar[0] = 207.;
319   cpar[1] = 274.;
320   cpar[2] = .75;
321   cpar[3] = -50.;
322   cpar[4] = 50.; 
323  
324   gMC->Gsvolu("DCO3", "TUBS", idtmed[1812], cpar, 5);
325   dx = -5;
326   dz = 168.25-0.75;
327   gMC->Gspos("DCO3", 1, "DDIP", dx,  0, dz, 0, "ONLY");
328   dz = 243.55+4.5+0.75;
329   gMC->Gspos("DCO3", 2, "DDIP", dx,  0, dz, 0, "ONLY");
330
331   // 9.06.2000
332
333   cpar[3] = 180.-50.;
334   cpar[4] = 180.+50.; 
335   gMC->Gsvolu("DCO4", "TUBS", idtmed[1812], cpar, 5);
336   dx = +5;
337   dz = 168.25-0.75;
338   gMC->Gspos("DCO4", 1, "DDIP", dx,  0, dz, 0, "ONLY");
339   dz = 243.55+4.5+0.75;
340   gMC->Gspos("DCO4", 2, "DDIP", dx,  0, dz, 0, "ONLY");
341
342  
343   // G10 face plane
344
345   cpar[0] = 207.;
346   cpar[1] = 274.;
347   cpar[2] = 2.25;
348   cpar[3] = -50.;
349   cpar[4] = 50.; 
350  
351   gMC->Gsvolu("DCO5", "TUBS", idtmed[1810], cpar, 5);
352
353   dx = -5;
354   dz = 243.55+2.25;
355   gMC->Gspos("DCO5", 1, "DDIP", dx,  0, dz, 0, "ONLY");
356
357   // 9.06.2000
358
359   cpar[3] = 180.-50.;
360   cpar[4] = 180.+50.; 
361
362   gMC->Gsvolu("DCO6", "TUBS", idtmed[1810], cpar, 5);
363
364   dx = +5;
365    dz = 243.55+2.25;
366   gMC->Gspos("DCO6", 1, "DDIP", dx,  0, dz, 0, "ONLY");
367
368   //Steel supported planes
369
370   cpar[0] = 274.+1.5+2.;
371   cpar[1] = 274.+18.6;
372   cpar[2] = 1.;
373   cpar[3] = -50.;
374   cpar[4] = 50.;  
375  
376   gMC->Gsvolu("DCO7", "TUBS", idtmed[1818], cpar, 5);
377
378   dx = -5;
379   dz = 168.25+1.;
380   gMC->Gspos("DCO7", 1, "DDIP", dx, 0, dz, 0, "ONLY");
381
382   // 9.06.2000
383   cpar[0] = 274.+1.5+2.;
384   cpar[1] = 274.+18.6;
385   cpar[2] = 1.;
386   cpar[3] = 180.-50.;
387   cpar[4] = 180.+50.; 
388
389  
390   gMC->Gsvolu("DCO8", "TUBS", idtmed[1818], cpar, 5);
391
392   dx = +5;
393   dz = 168.25+1.;
394   gMC->Gspos("DCO8", 1, "DDIP", dx, 0, dz, 0, "ONLY");
395
396   //
397
398   cpar[0] = 207.- 18.6;
399   cpar[1] = 207.- 2.- 1.5;
400   cpar[2] = 1.;
401   cpar[3] = -50.;
402   cpar[4] = 50.; 
403
404   gMC->Gsvolu("DCO9", "TUBS", idtmed[1818], cpar, 5);
405
406   dx = -5;
407   dz = 168.25+1.;
408   gMC->Gspos("DCO9", 1, "DDIP", dx, 0, dz, 0, "ONLY");
409
410   // 9.06.2000
411
412   cpar[0] = 207.- 18.6;
413   cpar[1] = 207.- 2.- 1.5;
414   cpar[2] = 1.;
415   cpar[3] = 180.-50.;
416   cpar[4] = 180.+50.; 
417
418   gMC->Gsvolu("DCOA", "TUBS", idtmed[1818], cpar, 5);
419
420   dx = +5;
421   dz = 168.25+1.;
422   gMC->Gspos("DCOA", 1, "DDIP", dx, 0, dz, 0, "ONLY");
423
424
425   // Sides steel planes
426
427   cpar[0] = 207. - 1.5 -2.;
428   cpar[1] = 207. - 1.5 ;
429   cpar[2] = ((243.55+4.5+1.5)-168.25)/2;
430   cpar[3] = -50.;
431   cpar[4] = 50.; 
432  
433   gMC->Gsvolu("DCOB", "TUBS", idtmed[1818], cpar, 5);
434
435   cpar[0] = 274. + 1.5;
436   cpar[1] = 274. + 1.5 +2.;
437
438   gMC->Gsvolu("DCOC", "TUBS", idtmed[1818], cpar, 5);
439
440   dx=-5.;
441   dz = ((243.55+4.5+1.5)+168.25)/2;
442   gMC->Gspos("DCOB", 1, "DDIP", dx,  0, dz, 0, "ONLY");
443   gMC->Gspos("DCOC", 1, "DDIP", dx,  0, dz, 0, "ONLY");
444
445   // 9.06.2000
446
447   cpar[0] = 207. - 1.5 -2.;
448   cpar[1] = 207. - 1.5 ;
449   cpar[2] = ((243.55+4.5+1.5)-168.25)/2;
450   cpar[3] = 180.-50.;
451   cpar[4] = 180.+50.; 
452
453   gMC->Gsvolu("DCOD", "TUBS", idtmed[1818], cpar, 5);
454
455   cpar[0] = 274. + 1.5;
456   cpar[1] = 274. + 1.5 +2.;
457
458   gMC->Gsvolu("DCOE", "TUBS", idtmed[1818], cpar, 5);
459
460   dx=+5.;
461   dz = ((243.55+4.5+1.5)+168.25)/2;
462   gMC->Gspos("DCOD", 1, "DDIP", dx,  0, dz, 0, "ONLY");
463   gMC->Gspos("DCOE", 1, "DDIP", dx,  0, dz, 0, "ONLY");
464
465
466   // Top and bottom resin  planes
467
468   cpar[0] = 207. - 1.5 ;
469   cpar[1] = 207. ;
470   cpar[2] = ((243.55+4.5+1.5)-168.25)/2;
471   cpar[3] = -50.;
472   cpar[4] = 50.; 
473  
474   gMC->Gsvolu("DCOF", "TUBS", idtmed[1812], cpar, 5);
475
476   cpar[0] = 274.;
477   cpar[1] = 274. + 1.5;
478
479   gMC->Gsvolu("DCOG", "TUBS", idtmed[1812], cpar, 5);
480
481
482   dx=-5.;
483   dz = ((243.55+4.5+1.5)+168.25)/2;
484   gMC->Gspos("DCOF", 1, "DDIP", dx,  0, dz, 0, "ONLY");
485   gMC->Gspos("DCOG", 1, "DDIP", dx,  0, dz, 0, "ONLY");
486
487   // 9.06.2000
488   cpar[0] = 207. - 1.5 ;
489   cpar[1] = 207. ;
490   cpar[2] = ((243.55+4.5+1.5)-168.25)/2;
491
492   cpar[3] = 180.-50.;
493   cpar[4] = 180.+50.; 
494
495   gMC->Gsvolu("DCOH", "TUBS", idtmed[1812], cpar, 5);
496
497   cpar[0] = 274.;
498   cpar[1] = 274. + 1.5;
499
500   gMC->Gsvolu("DCOI", "TUBS", idtmed[1812], cpar, 5);
501
502
503   dx=+5.;
504   dz = ((243.55+4.5+1.5)+168.25)/2;
505   gMC->Gspos("DCOH", 1, "DDIP", dx,  0, dz, 0, "ONLY");
506   gMC->Gspos("DCOI", 1, "DDIP", dx,  0, dz, 0, "ONLY");
507
508
509   // Aluminum cabels
510
511   cpar[0] = 274. + 1.5  +2.;
512   cpar[1] = 274. + 1.5  +2. + 80.;
513   cpar[2] = 5.05/2;
514   cpar[3] = -24.;
515   cpar[4] = 24.; 
516  
517   gMC->Gsvolu("DCOJ", "TUBS", idtmed[kCable], cpar, 5);
518
519   //  dx = 274. + 1.5  +2. +40.;
520   //  dx = 5. + 1.5 +2. +40.;
521   //  dx = 5. + 1.5 +2.;
522   dx=-5.;
523   dz = 168.25 + 5.05 + 5.05/2;
524   gMC->Gspos("DCOJ", 1, "DDIP", dx,  0, dz, 0, "ONLY");
525
526   dz = 243.55 - 5.05/2;
527   gMC->Gspos("DCOJ", 2, "DDIP", dx,  0, dz, 0, "ONLY");
528
529   // 9.06.2000
530
531   cpar[3] = 180.-24.;
532   cpar[4] = 180.+24.; 
533
534    gMC->Gsvolu("DCOK", "TUBS", idtmed[kCable], cpar, 5);
535
536   //  dx = 274. + 1.5  +2. +40.;
537   //  dx = 5. + 1.5 +2. +40.;
538   //  dx = 5. + 1.5 +2.;
539   dx=+5.;
540   dz = 168.25 + 5.05 + 5.05/2;
541   gMC->Gspos("DCOK", 1, "DDIP", dx,  0, dz, 0, "ONLY");
542
543   dz = 243.55 - 5.05/2;
544   gMC->Gspos("DCOK", 2, "DDIP", dx,  0, dz, 0, "ONLY");
545
546  
547   //   YOKE 
548
549 // Top and bottom blocks
550   ypar[0] = 298.1 ; 
551   ypar[1] = 69.5;
552   ypar[2] = 155.75;
553
554 // iron- high cuts
555   gMC->Gsvolu("DY1 ", "BOX ", idtmed[1858], ypar, 3);
556   ypar[0] = 144.+10. ; 
557   ypar[1] = 193.3+10.;
558   ypar[2] = 5.;
559   ypar[3] = 155.75;
560   dy = -69.5 + 5.;
561 // iron- low cuts
562   gMC->Gsvolu("DY11", "TRD1", idtmed[1818], ypar, 4);
563   gMC->Gspos("DY11", 1, "DY1 ", 0.,  dy, 0., 0, "ONLY");
564
565   dy = 365.5;
566   dz = 4.95;
567   gMC->Gspos("DY1 ", 1, "DDIP", 0.,  dy, -dz, 0, "ONLY");
568
569   the1 = 270.;
570   phi1 = 0.;
571   the2 = 270.;
572   phi2 = 90.;
573   the3 = 0.;
574   phi3 = 0.;
575   AliMatrix(idrotm[1808], the1, phi1, the2, phi2, the3, phi3);
576   gMC->Gspos("DY1 ", 2, "DDIP", 0., -dy, -dz, idrotm[1808] , "ONLY");
577
578 // side walls
579   //  ypar[0] = 579./2. ; 
580   ypar[0] = 296. ; 
581   ypar[1] = 0.;
582   ypar[2] = 0.;
583   ypar[3] = 155.75;
584   ypar[4] = 47.9 ;
585   ypar[5] = 72.55;
586   ypar[6] = 4.3058039629 ;
587   // z+ 
588   ypar[7] = 155.75;
589   ypar[8] = 47.9 ;
590   ypar[9] = 72.55;
591   ypar[10] = 4.3058039629 ;
592
593 // iron - high cuts
594
595   gMC->Gsvolu("DY2 ", "TRAP", idtmed[1858], ypar,11);
596
597   ypar[4] = 47.9 -5.;
598   ypar[5] = 72.55 -5.;
599
600   ypar[8] = 47.9 -5.;
601   ypar[9] = 72.55 -5.;
602
603
604 // iron - low cuts
605
606   gMC->Gsvolu("DY22", "TRAP", idtmed[1818], ypar,11);
607
608   dy = 0.;
609   dx = -5.;
610
611   gMC->Gspos("DY22", 1, "DY2 ", dx,  dy, 0., 0, "ONLY");
612
613   the1 = 90.;
614   phi1 = 180.;
615   the2 = 180.;
616   phi2 = 180.;
617   the3 = 90.;
618   phi3 = 90.;
619   AliMatrix(idrotm[1809], the1, phi1, the2, phi2, the3, phi3);
620
621   the1 = 90.;
622   phi1 = 0.;
623   the2 = 180.;
624   phi2 = 0.;
625   the3 = 90. ;
626   phi3 = 90.;
627   AliMatrix(idrotm[1810], the1, phi1, the2, phi2, the3, phi3);
628
629   dx = 228.875;
630   dz = - 4.95;
631   gMC->Gspos("DY2 ", 1, "DDIP", dx, 0.0,  dz, idrotm[1809], "ONLY");
632   gMC->Gspos("DY2 ", 2, "DDIP", -dx, 0.0,  dz, idrotm[1810], "ONLY");
633
634   dz=975.;
635   gMC->Gspos("DDIP", 1, "ALIC", 0., 0., dz, 0, "MANY");
636
637   gMC->Gsatt("DDIP", "SEEN", 0);
638 //  gMC->Gsatt("DC21", "SEEN", 0);
639 //  gMC->Gsatt("DC22", "SEEN", 0);
640 //  gMC->Gsatt("DC3 ", "SEEN", 0);
641 //  gMC->Gsatt("DC4 ", "SEEN", 0);
642 }
643
644 //_____________________________________________________________________________
645 void AliDIPOv2::DrawModule()
646 {
647   //
648   // Draw a shaded view of the muon absorber
649   //
650
651   AliMC* gMC = AliMC::GetMC();
652   
653   // Set everything unseen
654   gMC->Gsatt("*", "seen", -1);
655   // 
656   // Set ALIC mother transparent
657   gMC->Gsatt("ALIC","SEEN",0);
658   //
659   // Set the volumes visible
660   gMC->Gsatt("DDIP","seen",0);
661   gMC->Gsatt("DC1 ","seen",1);
662   gMC->Gsatt("DC2 ","seen",1);
663   gMC->Gsatt("DC3 ","seen",1);
664   gMC->Gsatt("DC4 ","seen",1);
665   gMC->Gsatt("DC11","seen",1);
666   gMC->Gsatt("DC21","seen",1);
667   gMC->Gsatt("DC12","seen",1);
668   gMC->Gsatt("DC22","seen",1);
669   gMC->Gsatt("DL1 ","seen",1);
670   gMC->Gsatt("DL2 ","seen",1);
671   gMC->Gsatt("DY1 ","seen",1);
672   gMC->Gsatt("DY2 ","seen",1);
673   gMC->Gsatt("DYL ","seen",1);
674   gMC->Gsatt("DY3 ","seen",1);
675  // gMC->Gsatt("DY4 ","seen",1);
676  // gMC->Gsatt("DY5 ","seen",1);
677  // gMC->Gsatt("DY6 ","seen",1);
678 //  gMC->Gsatt("DY7 ","seen",1);
679   //
680   gMC->Gdopt("hide", "on");
681   gMC->Gdopt("shad", "on");
682   gMC->Gsatt("*", "fill", 7);
683   gMC->SetClipBox(".");
684   gMC->SetClipBox(".");
685   gMC->DefaultRange();
686   gMC->Gdraw("alic", 30, 30, 0, 17, 13.5, .019, .019);
687   gMC->Gdhead(1111, "Magnetic Dipole Version 2");
688   gMC->Gdman(16, 4, "MAN");
689 }
690
691 //_____________________________________________________________________________
692 void AliDIPOv2::CreateMaterials()
693 {
694   //
695   // Create Materials for Magnetic Dipole version 2
696   //
697   
698   Int_t isxfld   = gAlice->Field()->Integ();
699   Float_t sxmgmx = gAlice->Field()->Max();
700   
701   Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 };
702   Float_t zsteel[4] = { 26.,24.,28.,14. };
703   Float_t wsteel[4] = { .715,.18,.1,.005 };
704
705   Float_t acoil[3]  = { 26.98,1.01,16. };
706   Float_t zcoil[3]  = { 13.,1.,8. };
707   Float_t wcoil[3]  = { .66,.226,.114 };
708
709   Float_t aresi[3]  = { 1.01,12.011,16.};
710   Float_t zresi[3]  = { 1.,6.,8. };
711   Float_t wresi[3]  = { .0644,.7655,.1701 };
712
713   Float_t aG10[5] = { 1.01,12.011,16.,28.085 ,79.904 };
714   Float_t zG10[5] = { 1.,6.,8.,14.,35. };
715   Float_t wG10[5] = { .02089,.22338,.28493,.41342,.05738 };
716
717   Float_t aAlCon[2] = { 14.61, 26.98};
718   Float_t zAlCon[2] = { 7.3, 13.};
719   Float_t wAlCon[2] = { .0004,.9996};
720
721   
722   Float_t epsil, stmin, deemax, tmaxfd, stemax;
723   
724   // --- Define the various materials for GEANT --- 
725   //     Aluminum 
726   AliMaterial(9, "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 37.2);
727   AliMaterial(29, "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 37.2);
728   AliMaterial(49, "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 37.2);
729   
730   //     Iron 
731   AliMaterial(10, "IRON$     ", 55.85, 26., 7.87, 1.76, 17.1);
732   AliMaterial(30, "IRON$     ", 55.85, 26., 7.87, 1.76, 17.1);
733   AliMaterial(50, "IRON$     ", 55.85, 26., 7.87, 1.76, 17.1);
734   
735   //     Air 
736   AliMaterial(15, "AIR$      ", 14.61, 7.3, .001205, 30423.24, 67500);
737   AliMaterial(35, "AIR$      ", 14.61, 7.3, .001205, 30423.24, 67500);
738   AliMaterial(55, "AIR$      ", 14.61, 7.3, .001205, 30423.24, 67500);
739   
740   //     Vacuum 
741   AliMaterial(16, "VACUUM$ ", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
742   AliMaterial(36, "VACUUM$ ", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
743   AliMaterial(56, "VACUUM$ ", 1e-16, 1e-16, 1e-16, 1e16, 1e16);
744   
745   //     stainless Steel 
746   AliMixture(19, "STAINLESS STEEL$", asteel, zsteel, 7.88, 4, wsteel);
747   AliMixture(39, "STAINLESS STEEL$", asteel, zsteel, 7.88, 4, wsteel);
748   AliMixture(59, "STAINLESS STEEL$", asteel, zsteel, 7.88, 4, wsteel);
749   
750   //     Coil 
751   AliMixture(14, "Al$", acoil, zcoil, 2.122, 3, wcoil);
752   AliMixture(34, "Al$", acoil, zcoil, 2.122, 3, wcoil);
753   AliMixture(54, "Al$", acoil, zcoil, 2.122, 3, wcoil);
754
755   //RESIN
756   AliMixture(13, "RESIN$", aresi, zresi, 1.05, 3, wresi);
757   AliMixture(33, "RESIN$", aresi, zresi, 1.05, 3, wresi);
758   AliMixture(53, "RESIN$", aresi, zresi, 1.05, 3, wresi);  
759
760   //G10
761   AliMixture(11, "G10$", aG10, zG10, 1.7, 5, wG10);
762   AliMixture(31, "G10$", aG10, zG10, 1.7, 5, wG10);
763   AliMixture(51, "G10$", aG10, zG10, 1.7, 5, wG10); 
764  
765   //Aluminium Conductor
766   AliMixture(12, "AlCond$", aAlCon, zAlCon, 1.3506, 2, wAlCon);
767   AliMixture(32, "AlCond$", aAlCon, zAlCon, 1.3506, 2, wAlCon);
768   AliMixture(52, "AlCond$", aAlCon, zAlCon, 1.3506, 2, wAlCon);  
769
770   // **************** 
771   //     Defines tracking media parameters. 
772   //     Les valeurs sont commentees pour laisser le defaut 
773   //     a GEANT (version 3-21, page CONS200), f.m. 
774   epsil  = .001;  // Tracking precision, 
775   stemax = -1.;   // Maximum displacement for multiple scat 
776   tmaxfd = -20.;  // Maximum angle due to field deflection 
777   deemax = -.3;   // Maximum fractional energy loss, DLS 
778   stmin  = -.8;
779   // *************** 
780   
781   //    Aluminum 
782   AliMedium(9, "ALU_C0          ",  9, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
783   AliMedium(29, "ALU_C1          ", 29, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
784   AliMedium(49, "ALU_C2          ", 49, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
785   
786   //    Iron 
787   AliMedium(10, "FE_C0           ", 10, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
788   AliMedium(30, "FE_C1           ", 30, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
789   AliMedium(50, "FE_C2           ", 50, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
790   
791   //    Air 
792   AliMedium(15, "AIR_C0          ", 15, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
793   AliMedium(35, "AIR_C1          ", 35, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
794   AliMedium(55, "AIR_C2          ", 55, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
795   
796   //    Vacuum 
797   AliMedium(16, "VA_C0           ", 16, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
798   AliMedium(36, "VA_C1           ", 36, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
799   AliMedium(56, "VA_C2           ", 56, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
800   
801   //    Steel 
802   AliMedium(19, "ST_C0           ", 19, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
803   AliMedium(39, "ST_C1           ", 39, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
804   AliMedium(59, "ST_C3           ", 59, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
805   
806   //    Coil 
807   AliMedium(14, "Coil_C1         ", 14, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
808   AliMedium(34, "Coil_C2         ", 34, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
809   AliMedium(54, "Coil_C3         ", 54, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
810
811   //    Resin 
812   AliMedium(13, "RESIN_C0         ", 13, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
813   AliMedium(33, "RESIN_C1         ", 33, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
814   AliMedium(53, "RESIN_C2         ", 53, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
815
816   //    G10 
817   AliMedium(11, "G10_C0         ", 11, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
818   AliMedium(31, "G10_C1         ", 31, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
819   AliMedium(51, "G10_C2         ", 51, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
820
821   //Aluminium Contactor
822   AliMedium(12, "AlCond_C0         ", 12, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
823   AliMedium(32, "AlCond_C1         ", 32, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
824   AliMedium(52, "AlCond_C2         ", 52, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
825 }
826
827
828
829
830
831