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