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