Forward kinematic ranges to entries only if not set by user.
[u/mrichter/AliRoot.git] / STRUCT / AliDIPOv2.cxx
CommitLineData
4c039060 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$
a37078b5 18Revision 1.14 2000/12/21 16:37:23 morsch
19Use Al for coil and cable material. The materials used before cause the dipole to
20have hydrogene on the outer surface leading to unrealistic gamma rates due to
21n-capture.
22
ee7389e1 23Revision 1.13 2000/10/02 21:28:15 fca
24Removal of useless dependecies via forward declarations
25
94de3818 26Revision 1.12 2000/06/20 10:53:01 morsch
27Volume placed outside mother volume (DDIP) corrected (Galina Chabratova)
28
e094dc1b 29Revision 1.11 2000/06/11 12:33:46 morsch
30Coding rule violations corrected
31
b43eb0dc 32Revision 1.10 2000/06/09 19:32:56 morsch
33New detailed and corrected version from Galina Chabratova
34
1b206195 35Revision 1.9 2000/04/27 09:29:53 fca
36Reverting to version 1.6.2
37
d811c12b 38Revision 1.6.2.1 1999/12/03 16:38:51 fca
39Correct overlap in magnet
9e8c9316 40
e821f75f 41Revision 1.6 1999/09/29 09:24:30 fca
42Introduction of the Copyright and cvs Log
43
4c039060 44*/
45
fe4da5cc 46///////////////////////////////////////////////////////////////////////////////
47// //
48// Magnetic Dipole version 1 //
49// //
50//Begin_Html
51/*
d811c12b 52<img src="picts/AliDIPOv2Class.gif">
fe4da5cc 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// //
fe4da5cc 64
65#include "AliDIPOv2.h"
66#include "AliRun.h"
94de3818 67#include "AliMC.h"
68#include "AliMagF.h"
fe4da5cc 69#include "AliConst.h"
70
71ClassImp(AliDIPOv2)
72
73//_____________________________________________________________________________
1b206195 74AliDIPOv2::AliDIPOv2()
fe4da5cc 75{
76 //
1b206195 77 // Last design of magnetic dipole version 2
fe4da5cc 78 //
79}
80
81//_____________________________________________________________________________
82AliDIPOv2::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//_____________________________________________________________________________
93void AliDIPOv2::CreateGeometry()
94{
95 //
96 // Creation of the geometry of the magnetic DIPOLE version 2
97 //
1b206195 98
99 // AliMC* gMC = AliMC::GetMC();
100
e094dc1b 101 Float_t cpar[5], tpar[15], ypar[12];
fe4da5cc 102 Float_t dz, dx, dy;
103 Int_t idrotm[1899];
b43eb0dc 104 Float_t accMax, the1, phi1, the2, phi2, the3, phi3;
d811c12b 105
1b206195 106 Int_t *idtmed = fIdtmed->GetArray()-1799;
107
ee7389e1 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
b43eb0dc 114 accMax = 9.; // ANGLE POLAIRE MAXIMUM
1b206195 115
fe4da5cc 116 // DIPOLE MAGNET
1b206195 117
e094dc1b 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
1b206195 138
e094dc1b 139 gMC->Gsvolu("DDIP", "PCON", idtmed[1814], tpar, 15);
fe4da5cc 140 // COILS
fe4da5cc 141 // air - m.f.
1b206195 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
ee7389e1 148 gMC->Gsvolu("DC1 ", "TUBS", idtmed[kCoil+40], cpar, 5);
1b206195 149 cpar[3] = -61.;
150 cpar[4] = 61.;
ee7389e1 151 gMC->Gsvolu("DC2 ", "TUBS", idtmed[kCoil+40], cpar, 5);
1b206195 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
ee7389e1 160 gMC->Gsvolu("DC3 ", "TUBS", idtmed[kCoil], cpar, 5);
1b206195 161 cpar[0] = 207.;
162 cpar[1] = 217;
163 cpar[3] = -61.;
164 cpar[4] = 61.;
ee7389e1 165 gMC->Gsvolu("DC4 ", "TUBS", idtmed[kCoil], cpar, 5);
1b206195 166
cfce8870 167 gMC->Gspos("DC3 ", 1, "DC1 ", 0., 0., 0., 0, "ONLY");
cfce8870 168 gMC->Gspos("DC4 ", 1, "DC2 ", 0., 0., 0., 0, "ONLY");
1b206195 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");
fe4da5cc 177 the1 = 180.;
178 phi1 = 0.;
179 the2 = 90.;
1b206195 180 phi2 = 151.;
fe4da5cc 181 the3 = 90.;
1b206195 182 phi3 = 61.;
fe4da5cc 183 AliMatrix(idrotm[1800], the1, phi1, the2, phi2, the3, phi3);
1b206195 184 phi2 = 29.; //90-61
fe4da5cc 185 the3 = -90.;
1b206195 186 phi3 = -61.;
fe4da5cc 187 AliMatrix(idrotm[1801], the1, phi1, the2, phi2, the3, phi3);
188 the1 = 0.;
189 phi1 = 0.;
190 the2 = 90.;
1b206195 191 phi2 = 151.;
fe4da5cc 192 the3 = 90.;
1b206195 193 phi3 = 61.;
fe4da5cc 194 AliMatrix(idrotm[1802], the1, phi1, the2, phi2, the3, phi3);
1b206195 195 phi2 = 29.;
fe4da5cc 196 the3 = -90.;
1b206195 197 phi3 = -61.;
fe4da5cc 198 AliMatrix(idrotm[1803], the1, phi1, the2, phi2, the3, phi3);
1b206195 199
fe4da5cc 200 cpar[0] = 25.;
1b206195 201 cpar[1] = 100.3; //25+75.3
202 cpar[2] = 33.5;
fe4da5cc 203 cpar[3] = 270.;
204 cpar[4] = 360.;
1b206195 205//* coil high cuts
ee7389e1 206 gMC->Gsvolu("DC11", "TUBS", idtmed[kCoil+40], cpar, 5);
1b206195 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;
cfce8870 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");
1b206195 215
216
217
218//* ... higher cuts
fe4da5cc 219 cpar[0] = 25.;
1b206195 220 cpar[1] = 100.3; //25+75.3
221 cpar[2] = 33.5;
fe4da5cc 222 cpar[3] = 0.;
223 cpar[4] = 90.;
1b206195 224//* coil high cuts
ee7389e1 225 gMC->Gsvolu("DC12", "TUBS", idtmed[kCoil+40], cpar, 5);
1b206195 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;
cfce8870 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");
1b206195 234
fe4da5cc 235 the1 = 90.;
1b206195 236 phi1 = 61.;
fe4da5cc 237 the2 = 90.;
1b206195 238 phi2 = 151.;
fe4da5cc 239 the3 = 0.;
240 phi3 = 0.;
241 AliMatrix(idrotm[1804], the1, phi1, the2, phi2, the3, phi3);
242 the1 = 90.;
1b206195 243 phi1 = -61.;
fe4da5cc 244 the2 = 90.;
1b206195 245 phi2 = -151.;
fe4da5cc 246 AliMatrix(idrotm[1805], the1, phi1, the2, phi2, the3, phi3);
1b206195 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;
ee7389e1 263 gMC->Gsvolu("DL1 ", "BOX ", idtmed[kCoil+40], tpar, 3);
1b206195 264
265// coil - low cuts
266
267 tpar[0] = 5.;
268 dx = 37.65 - 5.;
ee7389e1 269 gMC->Gsvolu("DL2 ", "BOX ", idtmed[kCoil], tpar, 3);
1b206195 270 gMC->Gspos("DL2 ", 1, "DL1 ", dx, 0., 0., 0, "ONLY");
271
272 dx =-53.62;
273 dy =-241.26819;
274 dz = 0.0;
cfce8870 275 gMC->Gspos("DL1 ", 1, "DDIP", dx, dy, dz, idrotm[1804], "ONLY");
276 gMC->Gspos("DL1 ", 2, "DDIP", dx, -dy, dz, idrotm[1805], "ONLY");
1b206195 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");
d811c12b 298
1b206195 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
ee7389e1 517 gMC->Gsvolu("DCOJ", "TUBS", idtmed[kCable], cpar, 5);
1b206195 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
ee7389e1 534 gMC->Gsvolu("DCOK", "TUBS", idtmed[kCable], cpar, 5);
1b206195 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
fe4da5cc 547 // YOKE
1b206195 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.;
fe4da5cc 558 ypar[2] = 5.;
1b206195 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.;
fe4da5cc 570 phi1 = 0.;
1b206195 571 the2 = 270.;
fe4da5cc 572 phi2 = 90.;
1b206195 573 the3 = 0.;
fe4da5cc 574 phi3 = 0.;
1b206195 575 AliMatrix(idrotm[1808], the1, phi1, the2, phi2, the3, phi3);
ee7389e1 576 gMC->Gspos("DY1 ", 2, "DDIP", 0., -dy, -dz, idrotm[1808] , "ONLY");
1b206195 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.;
fe4da5cc 622 phi1 = 0.;
1b206195 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.;
a37078b5 635 gMC->Gspos("DDIP", 1, "ALIC", 0., 0., dz, 0, "MANY");
1b206195 636
cfce8870 637 gMC->Gsatt("DDIP", "SEEN", 0);
1b206195 638// gMC->Gsatt("DC21", "SEEN", 0);
639// gMC->Gsatt("DC22", "SEEN", 0);
640// gMC->Gsatt("DC3 ", "SEEN", 0);
641// gMC->Gsatt("DC4 ", "SEEN", 0);
fe4da5cc 642}
643
644//_____________________________________________________________________________
b8032157 645void AliDIPOv2::DrawModule()
fe4da5cc 646{
647 //
648 // Draw a shaded view of the muon absorber
649 //
650
1b206195 651 AliMC* gMC = AliMC::GetMC();
652
fe4da5cc 653 // Set everything unseen
cfce8870 654 gMC->Gsatt("*", "seen", -1);
fe4da5cc 655 //
656 // Set ALIC mother transparent
cfce8870 657 gMC->Gsatt("ALIC","SEEN",0);
fe4da5cc 658 //
659 // Set the volumes visible
cfce8870 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);
1b206195 675 // gMC->Gsatt("DY4 ","seen",1);
676 // gMC->Gsatt("DY5 ","seen",1);
677 // gMC->Gsatt("DY6 ","seen",1);
678// gMC->Gsatt("DY7 ","seen",1);
fe4da5cc 679 //
cfce8870 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");
fe4da5cc 689}
690
691//_____________________________________________________________________________
692void AliDIPOv2::CreateMaterials()
693{
694 //
695 // Create Materials for Magnetic Dipole version 2
696 //
697
b43eb0dc 698 Int_t isxfld = gAlice->Field()->Integ();
699 Float_t sxmgmx = gAlice->Field()->Max();
fe4da5cc 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 };
1b206195 704
fe4da5cc 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 };
1b206195 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
fe4da5cc 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);
1b206195 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
fe4da5cc 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
b43eb0dc 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);
fe4da5cc 785
786 // Iron
b43eb0dc 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);
fe4da5cc 790
791 // Air
b43eb0dc 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);
fe4da5cc 795
796 // Vacuum
b43eb0dc 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);
fe4da5cc 800
801 // Steel
b43eb0dc 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);
fe4da5cc 805
806 // Coil
b43eb0dc 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);
1b206195 810
811 // Resin
b43eb0dc 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);
1b206195 815
816 // G10
b43eb0dc 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);
1b206195 820
821 //Aluminium Contactor
b43eb0dc 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);
fe4da5cc 825}
826
1b206195 827
828
829
830
831