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