Kalman filter vertex in Psi2s task
[u/mrichter/AliRoot.git] / STRUCT / AliMAG.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
eeacf08b 16/* $Id$ */
4c039060 17
fe4da5cc 18///////////////////////////////////////////////////////////////////////////////
19// //
20// L3 Magnet //
21// //
22//Begin_Html
23/*
1439f98e 24<img src="picts/AliMAGClass.gif">
fe4da5cc 25</pre>
26<br clear=left>
27<font size=+2 color=red>
28<p>The responsible person for this module is
29<a href="mailto:andreas.morsch@cern.ch">Andreas Morsch</a>.
30</font>
31<pre>
208c5bb6 32
fe4da5cc 33*/
34//End_Html
35// //
36///////////////////////////////////////////////////////////////////////////////
37
f7a1cc68 38#include <TGeoCompositeShape.h>
39#include <TGeoGlobalMagField.h>
40#include <TGeoManager.h>
73d5f5aa 41#include <TGeoMatrix.h>
f7a1cc68 42#include <TGeoMedium.h>
73d5f5aa 43#include <TGeoPgon.h>
f7a1cc68 44#include <TGeoVolume.h>
6b27f3a6 45#include <TGeoXtru.h>
f7a1cc68 46#include <TVirtualMC.h>
88cb7938 47
fe4da5cc 48#include "AliMAG.h"
94de3818 49#include "AliMagF.h"
88cb7938 50#include "AliRun.h"
fe4da5cc 51
52ClassImp(AliMAG)
53
54//_____________________________________________________________________________
55AliMAG::AliMAG()
56{
57 //
58 // Default constructor for L3 magnet
59 //
60}
61
62//_____________________________________________________________________________
63AliMAG::AliMAG(const char *name, const char *title)
b8032157 64 : AliModule(name,title)
fe4da5cc 65{
66 //
67 // Standard constructor for L3 magnet
68 //
69 //Begin_Html
70 /*
1439f98e 71 <img src="picts/aliMAG.gif">
fe4da5cc 72 */
73 //End_Html
74
e939a978 75 //PH SetMarkerColor(7);
76 //PH SetMarkerStyle(2);
77 //PH SetMarkerSize(0.4);
fe4da5cc 78}
79
80//_____________________________________________________________________________
fe4da5cc 81void AliMAG::CreateGeometry()
82{
83 //
84 // Create geometry for L3 magnet
85 //
86 //Begin_Html
87 /*
1439f98e 88 <img src="picts/mag.gif">
fe4da5cc 89 */
90 //End_Html
208c5bb6 91
fe4da5cc 92 //Begin_Html
93 /*
1439f98e 94 <img src="picts/tree_mag.gif">
208c5bb6 95 <br> Dimensions taken from drawing: ALIL3___00010
fe4da5cc 96 //End_Html
208c5bb6 97 */
98// Octagon
99 const Int_t kNSides = 8;
100 const Float_t kStartAngle = 22.5; // deg
101 const Float_t kFullAngle = 360.0; // deg
102// Mother volume
dd3dfe60 103 const Float_t kRBMotherInner = 600.00; // cm
208c5bb6 104 const Float_t kRBMotherOuter = 790.50; // cm
105 const Float_t kLBMother = 706.00; // cm
106// Yoke
107 const Float_t kRYokeInner = 703.50; // cm
108 const Float_t kRYokeOuter = 790.50; // cm
109 const Float_t kLYoke = 620.00; // cm
110// Coil
111 const Float_t kRCoilInner = 593.00; // cm
112 const Float_t kRCoilOuter = 682.00; // cm
2cadb10d 113 const Float_t kLCoil = 588.00; // cm
114// Cooling
115 const Float_t kRCoolingOuter = 1.70; // cm
116 const Float_t kRCoolingInner = 1.00; // cm
208c5bb6 117// Thermal Shield
118 const Float_t kRThermalShieldInner = 566.00; // cm
119 const Float_t kRThermalShieldOuter = 571.00; // cm
120// Crown
dd3dfe60 121 const Float_t kRCrownInner = 600.00; // cm
208c5bb6 122 const Float_t kRCrownOuter = 785.50; // cm
123 const Float_t kLCrown1 = 605.00; // cm
124 const Float_t kLCrown2 = 620.00; // cm
125 const Float_t kLCrown3 = 706.00; // cm
126// Door
dd3dfe60 127 const Float_t kRDoorOuter = 600.00; // cm
6b27f3a6 128 const Float_t kRPlugInner = 183.50; // cm
208c5bb6 129 const Float_t kLDoor1 = 615.50; // cm
130 const Float_t kLDoor2 = 714.60; // cm
6b27f3a6 131//
132 const Float_t kDegRad = TMath::Pi()/180.;
208c5bb6 133
134
73d5f5aa 135 //
136 // Top volume
137 TGeoVolume* top = gGeoManager->GetVolume("ALIC");
138 // Media
2cadb10d 139 TGeoMedium* medAir = gGeoManager->GetMedium("MAG_AIR_C1");
140 TGeoMedium* medAlu = gGeoManager->GetMedium("MAG_ALU_C1");
141 TGeoMedium* medAluI = gGeoManager->GetMedium("MAG_ALU_C0");
6b27f3a6 142 TGeoMedium* medSteel = gGeoManager->GetMedium("MAG_ST_C1");
2cadb10d 143 TGeoMedium* medWater = gGeoManager->GetMedium("MAG_WATER");
73d5f5aa 144 //
145 // Offset between LHC and LEP axis
146 Float_t os = -30.;
147
148 //
208c5bb6 149 // Define Barrel Mother
73d5f5aa 150 //
208c5bb6 151 TGeoPgon* shBMother = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 2);
152 shBMother->DefineSection(0, -kLBMother, kRBMotherInner, kRBMotherOuter);
153 shBMother->DefineSection(1, kLBMother, kRBMotherInner, kRBMotherOuter);
154 //
dd3dfe60 155 TGeoVolumeAssembly* voBMother = new TGeoVolumeAssembly("L3BM");
208c5bb6 156 //
157 // Define Thermal Shield
158 //
2cadb10d 159 // Only one layer
160 // This can be improved: replace by (protection - shield - insulation) !
161 //
208c5bb6 162 TGeoPgon* shThermSh = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 2);
163 shThermSh->DefineSection(0, -kLCoil, kRThermalShieldInner, kRThermalShieldOuter);
164 shThermSh->DefineSection(1, kLCoil, kRThermalShieldInner, kRThermalShieldOuter);
73d5f5aa 165 //
208c5bb6 166 TGeoVolume* voThermSh = new TGeoVolume("L3TS", shThermSh, medAluI);
167 voBMother->AddNode(voThermSh, 1, new TGeoTranslation(0., 0., 0.));
73d5f5aa 168 //
2cadb10d 169 // Define Coils and cooling circuits
73d5f5aa 170 //
2cadb10d 171 TGeoPgon* shCoilMother = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 2);
172 shCoilMother->DefineSection(0, -kLCoil, kRCoilInner - 2. * kRCoolingOuter, kRCoilOuter + 2. * kRCoolingOuter);
173 shCoilMother->DefineSection(1, kLCoil, kRCoilInner - 2. * kRCoolingOuter, kRCoilOuter + 2. * kRCoolingOuter);
174 //
175 // Coils
176 TGeoVolume* voCoilMother = new TGeoVolume("L3CM", shCoilMother, medAir);
177 voBMother->AddNode(voCoilMother, 1, new TGeoTranslation(0., 0., 0.));
178 // Devide into the 168 turns
179 TGeoVolume* voCoilTurn = voCoilMother->Divide("L3CD", 3, 168, 0., 0.);
208c5bb6 180 TGeoPgon* shCoils = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 2);
2cadb10d 181 shCoils->DefineSection(0, -3., kRCoilInner, kRCoilOuter);
182 shCoils->DefineSection(1, 3., kRCoilInner, kRCoilOuter);
73d5f5aa 183 //
184 TGeoVolume* voCoils = new TGeoVolume("L3C0", shCoils, medAlu);
2cadb10d 185 voCoilTurn->AddNode(voCoils, 1, new TGeoTranslation(0., 0., 0.));
186 //
187 // Hexagonal Cooling circuits
188 //
189 const Float_t kRCC = kRCoolingOuter;
190 const Float_t kRCW = kRCoolingInner;
191 const Float_t kRCL = kRCC * TMath::Tan(30. / 180. * TMath::Pi());
192 const Float_t kRWL = kRCW * TMath::Tan(30. / 180. * TMath::Pi());
193 // Outer Circuits
194 //
195 // Pipe
196 TGeoPgon* shCoolingPipeO = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 4);
197 shCoolingPipeO->DefineSection(0, -kRCC, kRCoilOuter + kRCC, kRCoilOuter + kRCC + 0.01);
198 shCoolingPipeO->DefineSection(1, -kRCL, kRCoilOuter, kRCoilOuter + 2. * kRCC);
199 shCoolingPipeO->DefineSection(2, kRCL, kRCoilOuter, kRCoilOuter + 2. * kRCC);
200 shCoolingPipeO->DefineSection(3, kRCC, kRCoilOuter + kRCC, kRCoilOuter + kRCC + 0.01);
201 //
202 TGeoVolume* voCoolingPipeO = new TGeoVolume("L3CCO", shCoolingPipeO, medAlu);
203 voCoilTurn->AddNode(voCoolingPipeO, 1, new TGeoTranslation(0., 0., 0.));
204 //
205 TGeoPgon* shCoolingWaterO = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 4);
206 shCoolingWaterO->DefineSection(0, -kRCW, kRCoilOuter + kRCC, kRCoilOuter + kRCC + 0.01);
207 shCoolingWaterO->DefineSection(1, -kRWL, kRCoilOuter + (kRCC - kRCW), kRCoilOuter + kRCC + kRCW);
208 shCoolingWaterO->DefineSection(2, kRWL, kRCoilOuter + (kRCC - kRCW), kRCoilOuter + kRCC + kRCW);
209 shCoolingWaterO->DefineSection(3, kRCW, kRCoilOuter + kRCC, kRCoilOuter + kRCC + 0.01);
210 //
211 TGeoVolume* voCoolingWaterO = new TGeoVolume("L3CWO", shCoolingWaterO, medWater);
212 voCoolingPipeO->AddNode(voCoolingWaterO, 1, new TGeoTranslation(0., 0., 0.));
213
214 // Inner Circuits
215 //
216 // Pipe
217 TGeoPgon* shCoolingPipeI = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 4);
218 shCoolingPipeI->DefineSection(0, -kRCC, kRCoilInner - kRCC, kRCoilInner - kRCC + 0.01);
219 shCoolingPipeI->DefineSection(1, -kRCL, kRCoilInner - 2. * kRCC, kRCoilInner);
220 shCoolingPipeI->DefineSection(2, kRCL, kRCoilInner - 2. * kRCC, kRCoilInner);
221 shCoolingPipeI->DefineSection(3, kRCC, kRCoilInner - kRCC, kRCoilInner - kRCC + 0.01);
222 //
223 TGeoVolume* voCoolingPipeI = new TGeoVolume("L3CCI", shCoolingPipeI, medAlu);
224 voCoilTurn->AddNode(voCoolingPipeI, 1, new TGeoTranslation(0., 0., 0.));
225 //
226 TGeoPgon* shCoolingWaterI = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 4);
227 shCoolingWaterI->DefineSection(0, -kRCW, kRCoilInner - kRCC, kRCoilInner - kRCC + 0.01);
228 shCoolingWaterI->DefineSection(1, -kRWL, kRCoilInner - kRCC - kRCW, kRCoilInner - (kRCC - kRCW));
229 shCoolingWaterI->DefineSection(2, kRWL, kRCoilInner - kRCC - kRCW, kRCoilInner - (kRCC - kRCW));
230 shCoolingWaterI->DefineSection(3, kRCW, kRCoilInner - kRCC, kRCoilInner - kRCC + 0.01);
231 //
232 TGeoVolume* voCoolingWaterI = new TGeoVolume("L3CWI", shCoolingWaterI, medWater);
233 voCoolingPipeI->AddNode(voCoolingWaterI, 1, new TGeoTranslation(0., 0., 0.));
234
73d5f5aa 235 //
208c5bb6 236 // Define Yoke
73d5f5aa 237 //
208c5bb6 238 TGeoPgon* shYoke = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 2);
239 shYoke->DefineSection(0, -kLYoke, kRYokeInner, kRYokeOuter);
240 shYoke->DefineSection(1, +kLYoke, kRYokeInner, kRYokeOuter);
73d5f5aa 241 //
6b27f3a6 242 TGeoVolume* voYoke = new TGeoVolume("L3YO", shYoke, medSteel);
208c5bb6 243 voBMother->AddNode(voYoke, 1, new TGeoTranslation(0., 0., 0.));
a00df67b 244
73d5f5aa 245 //
208c5bb6 246 // Define Crown
247 //
248 TGeoPgon* shCrown = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 4);
249 shCrown->DefineSection(0, kLCrown1, kRCrownInner, kRYokeInner);
250 shCrown->DefineSection(1, kLCrown2, kRCrownInner, kRYokeInner);
251 shCrown->DefineSection(2, kLCrown2, kRCrownInner, kRCrownOuter);
252 shCrown->DefineSection(3, kLCrown3, kRCrownInner, kRCrownOuter);
253 //
6b27f3a6 254 TGeoVolume* voCrown = new TGeoVolume("L3CR", shCrown, medSteel);
255
73d5f5aa 256 //
6b27f3a6 257 // Door including "Plug"
73d5f5aa 258 //
6b27f3a6 259 Float_t slo = 2. * kRDoorOuter * TMath::Tan(22.5 * kDegRad);
260 Float_t sli = 2. * kRPlugInner * TMath::Tan(22.5 * kDegRad);
261 Double_t xpol1[12], xpol2[12], ypol1[12], ypol2[12];
262
263 xpol1[ 0] = 2. ; ypol1[ 0] = kRDoorOuter;
264 xpol1[ 1] = slo/2. ; ypol1[ 1] = kRDoorOuter;
265 xpol1[ 2] = kRDoorOuter; ypol1[ 2] = slo/2.;
266 xpol1[ 3] = kRDoorOuter; ypol1[ 3] = -slo/2.;
267 xpol1[ 4] = slo/2. ; ypol1[ 4] = -kRDoorOuter;
268 xpol1[ 5] = 2. ; ypol1[ 5] = -kRDoorOuter;
269 xpol1[ 6] = 2. ; ypol1[ 6] = -kRPlugInner - os;
270 xpol1[ 7] = sli/2. ; ypol1[ 7] = -kRPlugInner - os;
271 xpol1[ 8] = kRPlugInner; ypol1[ 8] = -sli/2. - os;
272 xpol1[ 9] = kRPlugInner; ypol1[ 9] = sli/2. - os;
273 xpol1[10] = sli/2. ; ypol1[10] = kRPlugInner - os;
274 xpol1[11] = 2. ; ypol1[11] = kRPlugInner - os;
275
276 TGeoXtru* shL3DoorR = new TGeoXtru(2);
277 shL3DoorR->DefinePolygon(12, xpol1, ypol1);
278 shL3DoorR->DefineSection(0, kLDoor1);
279 shL3DoorR->DefineSection(1, kLDoor2);
280 TGeoVolume* voL3DoorR = new TGeoVolume("L3DoorR", shL3DoorR, medSteel);
281
282 for (Int_t i = 0; i < 12; i++) {
283 xpol2[i] = - xpol1[11 - i];
284 ypol2[i] = ypol1[11 - i];
285 }
286
287 TGeoXtru* shL3DoorL = new TGeoXtru(2);
288 shL3DoorL->DefinePolygon(12, xpol2, ypol2);
289 shL3DoorL->DefineSection(0, kLDoor1);
290 shL3DoorL->DefineSection(1, kLDoor2);
291 TGeoVolume* voL3DoorL = new TGeoVolume("L3DoorL", shL3DoorL, medSteel);
292 //
293 // Plug support plate
294 //
295 Float_t ro = kRPlugInner + 50.;
296 slo = 2. * ro * TMath::Tan(22.5 * kDegRad);
297
298 xpol1[ 0] = 2. ; ypol1[ 0] = ro - os;
299 xpol1[ 1] = slo/2. ; ypol1[ 1] = ro - os;
300 xpol1[ 2] = ro ; ypol1[ 2] = slo/2. - os;
301 xpol1[ 3] = ro ; ypol1[ 3] = -slo/2.- os;
302 xpol1[ 4] = slo/2. ; ypol1[ 4] = -ro - os;
303 xpol1[ 5] = 2. ; ypol1[ 5] = -ro - os;
304
305 for (Int_t i = 0; i < 12; i++) {
306 xpol2[i] = - xpol1[11 - i];
307 ypol2[i] = ypol1[11 - i];
308 }
309
310
311 TGeoXtru* shL3PlugSPR = new TGeoXtru(2);
312 shL3PlugSPR->DefinePolygon(12, xpol1, ypol1);
313 shL3PlugSPR->DefineSection(0, kLDoor1-10.);
314 shL3PlugSPR->DefineSection(1, kLDoor1);
315 TGeoVolume* voL3PlugSPR = new TGeoVolume("L3PlugSPR", shL3PlugSPR, medSteel);
316
317 TGeoXtru* shL3PlugSPL = new TGeoXtru(2);
318 shL3PlugSPL->DefinePolygon(12, xpol2, ypol2);
319 shL3PlugSPL->DefineSection(0, kLDoor1-10.);
320 shL3PlugSPL->DefineSection(1, kLDoor1);
321 TGeoVolume* voL3PlugSPL = new TGeoVolume("L3PlugSPL", shL3PlugSPL, medSteel);
322
323
208c5bb6 324 // Position crown and door
73d5f5aa 325 TGeoRotation* rotxz = new TGeoRotation("rotxz", 90., 0., 90., 90., 180., 0.);
208c5bb6 326
327 TGeoVolumeAssembly *l3 = new TGeoVolumeAssembly("L3MO");
328 voBMother->AddNode(voCrown, 1, new TGeoTranslation(0., 0., 0.));
329 voBMother->AddNode(voCrown, 2, new TGeoCombiTrans(0., 0., 0., rotxz));
330 l3->AddNode(voBMother, 1, new TGeoTranslation(0.,0.,0.));
6b27f3a6 331 l3->AddNode(voL3DoorR, 1, new TGeoTranslation(0., 0., 0.));
332 l3->AddNode(voL3DoorR, 2, new TGeoCombiTrans(0., 0., 0., rotxz));
333 l3->AddNode(voL3DoorL, 1, new TGeoTranslation(0., 0., 0.));
334 l3->AddNode(voL3DoorL, 2, new TGeoCombiTrans(0., 0., 0., rotxz));
335 l3->AddNode(voL3PlugSPR, 1, new TGeoTranslation(0., 0., 0.));
336 l3->AddNode(voL3PlugSPR, 2, new TGeoCombiTrans(0., 0., 0., rotxz));
337 l3->AddNode(voL3PlugSPL, 1, new TGeoTranslation(0., 0., 0.));
338 l3->AddNode(voL3PlugSPL, 2, new TGeoCombiTrans(0., 0., 0., rotxz));
73d5f5aa 339 top->AddNode(l3, 1, new TGeoTranslation(0., os, 0.));
fe4da5cc 340}
341
342//_____________________________________________________________________________
343void AliMAG::CreateMaterials()
344{
345 //
346 // Create materials for L3 magnet
347 //
348
f7a1cc68 349 Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ();
350 Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max();
fe4da5cc 351 Float_t epsil, stmin, deemax, tmaxfd, stemax;
002b3738 352
353
fe4da5cc 354 // --- Define the various materials for GEANT ---
6b27f3a6 355 // Steel
356 Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 };
357 Float_t zsteel[4] = { 26.,24.,28.,14. };
358 Float_t wsteel[4] = { .715,.18,.1,.005 };
002b3738 359 Float_t aAir[4]={12.0107,14.0067,15.9994,39.948};
360 Float_t zAir[4]={6.,7.,8.,18.};
361 Float_t wAir[4]={0.000124,0.755267,0.231781,0.012827};
362 Float_t dAir = 1.20479E-3;
2cadb10d 363 Float_t aWater[2]={1.00794,15.9994};
364 Float_t zWater[2]={1.,8.};
365 Float_t wWater[2]={0.111894,0.888106};
366
002b3738 367
fe4da5cc 368 // Aluminum
4a9de4af 369 AliMaterial(9, "Al0$", 26.98, 13., 2.7, 8.9, 37.2);
370 AliMaterial(29, "Al1$", 26.98, 13., 2.7, 8.9, 37.2);
fe4da5cc 371
6b27f3a6 372 // Stainless Steel
373 AliMixture(19, "STAINLESS STEEL1", asteel, zsteel, 7.88, 4, wsteel);
374 AliMixture(39, "STAINLESS STEEL2", asteel, zsteel, 7.88, 4, wsteel);
375 AliMixture(59, "STAINLESS STEEL3", asteel, zsteel, 7.88, 4, wsteel);
fe4da5cc 376 // Iron
4a9de4af 377 AliMaterial(10, "Fe0$", 55.85, 26., 7.87, 1.76, 17.1);
378 AliMaterial(30, "Fe1$", 55.85, 26., 7.87, 1.76, 17.1);
fe4da5cc 379
380 // Air
4a9de4af 381 AliMixture(15, "AIR0$ ", aAir, zAir, dAir, 4, wAir);
382 AliMixture(35, "AIR1$ ", aAir, zAir, dAir, 4, wAir);
2cadb10d 383 // Water
384 AliMixture(16, "WATER", aWater, zWater, 1., 2, wWater);
385
fe4da5cc 386
387 // ****************
388 // Defines tracking media parameters.
389 // Les valeurs sont commentees pour laisser le defaut
390 // a GEANT (version 3-21, page CONS200), f.m.
391 epsil = .001; // Tracking precision,
392 stemax = -1.; // Maximum displacement for multiple scat
393 tmaxfd = -20.; // Maximum angle due to field deflection
394 deemax = -.3; // Maximum fractional energy loss, DLS
395 stmin = -.8;
396 // ***************
397
398 // IRON
399
b43eb0dc 400 AliMedium(10, "FE_C0 ", 10, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
401 AliMedium(30, "FE_C1 ", 30, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
fe4da5cc 402
403 // ALUMINUM
404
b43eb0dc 405 AliMedium(9, "ALU_C0 ", 9, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
406 AliMedium(29, "ALU_C1 ", 29, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
fe4da5cc 407
408 // AIR
409
b43eb0dc 410 AliMedium(15, "AIR_C0 ", 15, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
411 AliMedium(35, "AIR_C1 ", 35, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
6b27f3a6 412 // Steel
413 AliMedium(19, "ST_C0 ", 19, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
414 AliMedium(39, "ST_C1 ", 39, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
415 AliMedium(59, "ST_C3 ", 59, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
2cadb10d 416 // WATER
417 AliMedium(16, "WATER ", 16, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
fe4da5cc 418}
419
420//_____________________________________________________________________________
fe4da5cc 421void AliMAG::Init()
422{
423 //
424 // Initialise L3 magnet after it has been built
425 Int_t i;
426 //
4951e003 427 if(AliLog::GetGlobalDebugLevel()>0) {
9e1a0ddb 428 printf("\n%s: ",ClassName());
429 for(i=0;i<35;i++) printf("*");
430 printf(" MAG_INIT ");
431 for(i=0;i<35;i++) printf("*");
432 printf("\n%s: ",ClassName());
433 //
434 // Here the MAG initialisation code (if any!)
435 for(i=0;i<80;i++) printf("*");
436 printf("\n");
437 }
fe4da5cc 438}
439