1 ///////////////////////////////////////////////////////////////////////////////
7 <img src="picts/AliMAGClass.gif">
10 <font size=+2 color=red>
11 <p>The responsible person for this module is
12 <a href="mailto:andreas.morsch@cern.ch">Andreas Morsch</a>.
18 ///////////////////////////////////////////////////////////////////////////////
25 //_____________________________________________________________________________
29 // Default constructor for L3 magnet
33 //_____________________________________________________________________________
34 AliMAG::AliMAG(const char *name, const char *title)
35 : AliModule(name,title)
38 // Standard constructor for L3 magnet
42 <img src="picts/aliMAG.gif">
51 //_____________________________________________________________________________
52 void AliMAG::CreateGeometry()
55 // Create geometry for L3 magnet
59 <img src="picts/mag.gif">
64 <img src="picts/tree_mag.gif">
68 AliMC* pMC = AliMC::GetMC();
70 Int_t *idtmed = fIdtmed->GetArray()-299;
76 // ANGLE POLAIRE MAXIMUM
90 pMC->Gsvolu("L3MO", "PGON", idtmed[334], par, 10);
91 pMC->Gspos("L3MO", 1, "ALIC", 0., -30., 0., 0, "ONLY");
99 pMC->Gsvolu("L3CO", "PGON", idtmed[328], par, 10);
100 pMC->Gspos("L3CO", 1, "L3MO", 0., 0., 0., 0, "ONLY");
106 pMC->Gsvolu("L3C1", "PGON", idtmed[308], par, 10);
107 pMC->Gspos("L3C1", 1, "L3MO", 0., 0., 0., 0, "ONLY");
115 pMC->Gsvolu("L3YO", "PGON", idtmed[329], par, 10);
116 pMC->Gspos("L3YO", 1, "L3MO", 0., 0., 0., 0, "ONLY");
118 // Define the return yoke of L3 (DOOR)
126 pMC->Gsvolu("L3DO", "PGON", idtmed[334], par, 10);
134 pMC->Gsvolu("L3FR", "PGON", idtmed[329], par, 10);
140 pMC->Gsvolu("L3IR", "PGON", idtmed[309], par, 10);
156 dpar[12] = dpar[6] + 50.;
157 pMC->Gsvolu("L3O1", "PGON", idtmed[314], dpar, 13);
164 pMC->Gsvolu("L3O2", "PGON", idtmed[314], par, 10);
166 // THE DOOR OPENING HAS TO BE PLACED WITH 'MANY' SINCE THE REGION
167 // WILL CONTAIN A MUON CHAMBER, BEAM PIPE AND BEAM SHIELD
168 // PLACED WITH 'ONLY'.
170 pMC->Gspos("L3O1", 1, "L3FR", 0., 30., 0., 0, "MANY");
171 pMC->Gspos("L3O2", 1, "L3IR", 0., 30., 0., 0, "MANY");
173 pMC->Gspos("L3FR", 1, "L3DO", 0., 0., 0., 0, "MANY");
174 pMC->Gspos("L3IR", 1, "L3DO", 0., 0., 0., 0, "MANY");
176 pMC->Gspos("L3DO", 1, "ALIC", 0., -30., 0., 0, "MANY");
177 AliMatrix(idrotm[300], 90., 0., 90., 90., 180., 0.);
178 pMC->Gspos("L3DO", 2, "ALIC", 0., -30., 0., idrotm[300], "MANY");
181 //_____________________________________________________________________________
182 void AliMAG::CreateMaterials()
185 // Create materials for L3 magnet
188 Int_t ISXFLD = gAlice->Field()->Integ();
189 Float_t SXMGMX = gAlice->Field()->Max();
191 Float_t epsil, stmin, deemax, tmaxfd, stemax;
192 // --- Define the various materials for GEANT ---
195 AliMaterial(9, "Al$", 26.98, 13., 2.7, 8.9, 37.2);
196 AliMaterial(29, "Al$", 26.98, 13., 2.7, 8.9, 37.2);
199 AliMaterial(10, "Fe$", 55.85, 26., 7.87, 1.76, 17.1);
200 AliMaterial(30, "Fe$", 55.85, 26., 7.87, 1.76, 17.1);
203 AliMaterial(15, "Air$", 14.61, 7.3, .001205, 30420., 67500);
204 AliMaterial(35, "Air$", 14.61, 7.3, .001205, 30420., 67500);
207 // Defines tracking media parameters.
208 // Les valeurs sont commentees pour laisser le defaut
209 // a GEANT (version 3-21, page CONS200), f.m.
210 epsil = .001; // Tracking precision,
211 stemax = -1.; // Maximum displacement for multiple scat
212 tmaxfd = -20.; // Maximum angle due to field deflection
213 deemax = -.3; // Maximum fractional energy loss, DLS
219 AliMedium(10, "FE_C0 ", 10, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
220 AliMedium(30, "FE_C1 ", 30, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
224 AliMedium(9, "ALU_C0 ", 9, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
225 AliMedium(29, "ALU_C1 ", 29, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
229 AliMedium(15, "AIR_C0 ", 15, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
230 AliMedium(35, "AIR_C1 ", 35, 0, ISXFLD, SXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
233 //_____________________________________________________________________________
234 void AliMAG::DrawModule()
237 // Draw a shaded view of the L3 magnet
241 //_____________________________________________________________________________
245 // Initialise L3 magnet after it has been built
249 for(i=0;i<35;i++) printf("*");
250 printf(" MAG_INIT ");
251 for(i=0;i<35;i++) printf("*");
254 // Here the MAG initialisation code (if any!)
255 for(i=0;i<80;i++) printf("*");