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