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