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