AliRoot Core  v5-06-30 (35d6c57)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMUONCommonGeometryBuilder.cxx
Go to the documentation of this file.
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  * SigmaEffect_thetadegrees *
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 purpeateose. It is *
13  * provided "as is" without express or implied warranty. *
14  **************************************************************************/
15 
16 // $Id$
17 
18 //-----------------------------------------------------------------------------
19 // Class AliMUONCommonGeometryBuilder
20 // ----------------------------------
21 // Geometry construction common to all stations
22 // (material definition).
23 // separated from AliMUONGeometryBuilder
24 //-----------------------------------------------------------------------------
25 
26 
27 #include <TGeoGlobalMagField.h>
28 #include <TVirtualMC.h>
29 
31 #include "AliMUON.h"
32 #include "AliMagF.h"
33 #include "AliRun.h"
34 #include "AliLog.h"
35 
39 
40 //______________________________________________________________________________//___________________________________________
42  : AliMUONVGeometryBuilder(-1, 0),
43  fMUON(muon)
44 {
46 }
47 
48 //______________________________________________________________________________//___________________________________________
51  fMUON(0)
52 {
54 }
55 
56 //______________________________________________________________________________
58 {
60 }
61 
62 //
63 // public functions
64 //
65 
66 //_____________________________________________________________________________
68 {
70 
71  //
72  // Ar-CO2 gas (80%+20%)
73  Float_t ag1[3] = { 39.95,12.01,16. };
74  Float_t zg1[3] = { 18.,6.,8. };
75  Float_t wg1[3] = { .8,.0667,.13333 };
76  Float_t dg1 = .001821;
77  //
78  // Ar-buthane-freon gas -- trigger chambers
79  Float_t atr1[4] = { 39.95,12.01,1.01,19. };
80  Float_t ztr1[4] = { 18.,6.,1.,9. };
81  Float_t wtr1[4] = { .56,.1262857,.2857143,.028 };
82  Float_t dtr1 = .002599;
83  //
84  // Ar-CO2 gas
85  Float_t agas[3] = { 39.95,12.01,16. };
86  Float_t zgas[3] = { 18.,6.,8. };
87  Float_t wgas[3] = { .74,.086684,.173316 };
88  Float_t dgas = .0018327;
89  //
90  // Ar-Isobutane gas (80%+20%) -- tracking
91  Float_t ag[3] = { 39.95,12.01,1.01 };
92  Float_t zg[3] = { 18.,6.,1. };
93  Float_t wg[3] = { .8,.057,.143 };
94  Float_t dg = .0019596;
95  //
96  // Ar-Isobutane-Forane-SF6 gas (49%+7%+40%+4%) -- trigger
97  Float_t atrig[5] = { 39.95,12.01,1.01,19.,32.066 };
98  Float_t ztrig[5] = { 18.,6.,1.,9.,16. };
99  Float_t wtrig[5] = { .49,1.08,1.5,1.84,0.04 };
100  Float_t dtrig = .0031463;
101  //
102  // bakelite: C6 H6 O
103  Float_t abak[3] = {12.01 , 1.01 , 16.};
104  Float_t zbak[3] = {6. , 1. , 8.};
105  Float_t wbak[3] = {6. , 6. , 1.};
106  Float_t dbak = 1.4;
107 
108  Int_t iSXFLD = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->PrecInteg();
109  Float_t sXMGMX = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max();
110  //
111  // --- Define the various materials for GEANT ---
112  fMUON->AliMaterial(9, "ALUMINIUM0$", 26.98, 13., 2.7, 8.9, 37.2);
113  fMUON->AliMaterial(10, "ALUMINIUM1$", 26.98, 13., 2.7, 8.9, 37.2);
114  fMUON->AliMaterial(49, "Kapton$", 12.01,6,1.42,-28.6,999); // from DPG
115  fMUON->AliMaterial(42, "Copper$", 63.546,29.,8.96,-1.43,9.6);
116 
117  //fMUON->AliMaterial(43, "FR4$", 17.749, 8.875, 1.7, -19.4, 999.); // from DPG
118  Float_t aFR[4] = {16.0, 28.09, 12.011, 1.00794} ;
119  Float_t zFR[4] = {8.0, 14.0, 6.0, 1.0} ;
120  Float_t wFR[4] = {292.0, 68.0, 462.0, 736.0} ;
121  Float_t dFR = 1.8 ;
122  fMUON->AliMixture(43, "FR4$", aFR, zFR, dFR, -4, wFR);
123 
124  fMUON->AliMaterial(44, "FrameEpoxy",12.24,6.0,1.85,-19.14,999);// use 16.75cm
125 
126 
127  // Air
128  Float_t aAir[4]={12.0107,14.0067,15.9994,39.948};
129  Float_t zAir[4]={6.,7.,8.,18.};
130  Float_t wAir[4]={0.000124,0.755267,0.231781,0.012827};
131  Float_t dAir = 1.20479E-3;
132  fMUON->AliMixture(15, "AIR$ ", aAir, zAir, dAir,4, wAir);
133  // fMUON->AliMaterial(15, "AIR$ ", 14.61, 7.3, .001205, 30423.24, 67500);
134  fMUON->AliMixture(19, "Bakelite$", abak, zbak, dbak, -3, wbak);
135  fMUON->AliMixture(20, "ArC4H10 GAS$", ag, zg, dg, 3, wg);
136  fMUON->AliMixture(21, "TRIG GAS$", atrig, ztrig, dtrig, -5, wtrig);
137  fMUON->AliMixture(22, "ArCO2 80%$", ag1, zg1, dg1, 3, wg1);
138  fMUON->AliMixture(23, "Ar-freon $", atr1, ztr1, dtr1, 4, wtr1);
139  fMUON->AliMixture(24, "ArCO2 GAS$", agas, zgas, dgas, 3, wgas);
140 
141  // materials for slat:
142  // Sensitive area: gas (already defined)
143  // PCB: copper
144  // insulating material: vetronite -> replacing by G10 Ch. Finck
145  // spacer: noryl Ch. Finck
146  // panel sandwich: carbon, nomex, carbon replacing rohacell by nomex Ch. Finck
147 
148  // G10: SiO2(60%) + C8H14O4(40%)
149  Float_t aglass[5] = {12.01, 28.09, 16., 1.01, 16.};
150  Float_t zglass[5] = { 6., 14., 8., 1., 8.};
151  Float_t wglass[5] = { 0.22, 0.28, 0.32, 0.03, 0.15};
152  Float_t dglass = 1.7;
153 
154  // rohacell: C9 H13 N1 O2
155  Float_t arohac[4] = {12.01, 1.01, 14.010, 16.};
156  Float_t zrohac[4] = { 6., 1., 7., 8.};
157  Float_t wrohac[4] = { 9., 13., 1., 2.};
158  Float_t drohac = 0.03;
159 
160  // Nomex: C22 H10 N2 O5
161  Float_t aNomex[4] = {12.01, 1.01, 14.010, 16.};
162  Float_t zNomex[4] = { 6., 1., 7., 8.};
163  Float_t wNomex[4] = { 22., 10., 2., 5.};
164  Float_t dNomex = 0.024; //honey comb
165  Float_t dNomex2 = 1.43; //bulk material
166 
167 
168  // Noryl: C8 H8 O polyphenylene oxyde (di-methyl not sure)
169  Float_t aNoryl[3] = {12.01, 1.01, 16.};
170  Float_t zNoryl[3] = { 6., 1., 8.};
171  Float_t wNoryl[3] = { 8., 8., 1.};
172  Float_t dNoryl = 1.06;
173 
174  fMUON->AliMaterial(31, "COPPER$", 63.54, 29., 8.96, 1.4, 0.);
175  fMUON->AliMixture( 32, "G10$", aglass, zglass, dglass, -5, wglass);
176  fMUON->AliMaterial(33, "Carbon$", 12.01, 6., 2.265, 18.8, 49.9);
177  fMUON->AliMixture( 34, "Rohacell$", arohac, zrohac, drohac, -4, wrohac);
178  fMUON->AliMixture( 35, "Nomex$", aNomex, zNomex, dNomex, -4, wNomex);
179  fMUON->AliMixture( 36, "Noryl$", aNoryl, zNoryl, dNoryl, -3, wNoryl);
180  fMUON->AliMixture( 37, "Nomex_bulk$",aNomex, zNomex, dNomex2, -4, wNomex);
181 
182  Float_t epsil = .001; // Tracking precision,
183  Float_t stemax = -1.; // Maximum displacement for multiple scat
184  Float_t tmaxfd = -20.; // Maximum angle due to field deflection
185  Float_t deemax = -.3; // Maximum fractional energy loss, DLS
186  Float_t stmin = -.8;
187  Float_t maxDestepAlu = fMUON->GetMaxDestepAlu();
188  Float_t maxDestepGas = fMUON->GetMaxDestepGas();
189  Float_t maxStepAlu = fMUON->GetMaxStepAlu();
190  Float_t maxStepGas = fMUON->GetMaxStepGas();
191 
192  //
193  // Air
194  fMUON->AliMedium(1, "AIR_CH_US ", 15, 1, iSXFLD, sXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
195 
196  //
197  // Aluminum
198  fMUON->AliMedium(4, "ALU_CH_US0 ", 9, 0, iSXFLD, sXMGMX, tmaxfd, maxStepAlu,
199  maxDestepAlu, epsil, stmin);
200  fMUON->AliMedium(5, "ALU_CH_US1 ", 10, 0, iSXFLD, sXMGMX, tmaxfd, maxStepAlu,
201  maxDestepAlu, epsil, stmin);
202  //
203  // Ar-isoC4H10 gas
204  fMUON->AliMedium(6, "AR_CH_US ", 20, 1, iSXFLD, sXMGMX, tmaxfd, maxStepGas,
205  maxDestepGas, epsil, stmin);
206  //
207  // Ar-Isobuthane-Forane-SF6 gas
208  fMUON->AliMedium(7, "GAS_CH_TRIGGER ", 21, 1, iSXFLD, sXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
209 
210  fMUON->AliMedium(8, "BAKE_CH_TRIGGER ", 19, 0, iSXFLD, sXMGMX, tmaxfd, maxStepAlu,
211  maxDestepAlu, epsil, stmin);
212  //
213  // slat medium
214  fMUON->AliMedium(9, "ARG_CO2 ", 22, 1, iSXFLD, sXMGMX, tmaxfd, maxStepGas,
215  maxDestepAlu, epsil, stmin);
216  //
217  // tracking media for slats: check the parameters!!
218  fMUON->AliMedium(11, "PCB_COPPER ", 31, 0, iSXFLD, sXMGMX, tmaxfd,
219  maxStepAlu, maxDestepAlu, epsil, stmin);
220  fMUON->AliMedium(12, "G10 ", 32, 0, iSXFLD, sXMGMX, tmaxfd,
221  maxStepAlu, maxDestepAlu, epsil, stmin);
222  fMUON->AliMedium(13, "CARBON ", 33, 0, iSXFLD, sXMGMX, tmaxfd,
223  maxStepAlu, maxDestepAlu, epsil, stmin);
224  fMUON->AliMedium(14, "Rohacell ", 34, 0, iSXFLD, sXMGMX, tmaxfd,
225  maxStepAlu, maxDestepAlu, epsil, stmin);
226  fMUON->AliMedium(15, "Nomex ", 35, 0, iSXFLD, sXMGMX, tmaxfd,
227  maxStepAlu, maxDestepAlu, epsil, stmin);
228  fMUON->AliMedium(16, "Noryl ", 36, 0, iSXFLD, sXMGMX, tmaxfd,
229  maxStepAlu, maxDestepAlu, epsil, stmin);
230  fMUON->AliMedium(17, "Nomex bulk ", 37, 0, iSXFLD, sXMGMX, tmaxfd,
231  maxStepAlu, maxDestepAlu, epsil, stmin);
232 
233  // for station 2 only
234  // was med: 4 mat: 9
235  fMUON->AliMedium(22, "COPPER_II ", 42, 0, iSXFLD, sXMGMX,
236  tmaxfd, maxStepAlu, maxDestepAlu, epsil, stmin);
237  // was med: 10 mat: 30
238  fMUON->AliMedium(23, "FR4_CH ", 43, 0, iSXFLD, sXMGMX,
239  10.0, 0.01, 0.1, 0.003, 0.003);
240  fMUON->AliMedium(24, "FrameCH$", 44, 1, iSXFLD, sXMGMX,
241  10.0, 0.001, 0.001, 0.001, 0.001);
242  fMUON->AliMedium(29, "Kapton ", 49, 0, iSXFLD, sXMGMX,
243  10.0, 0.01, 1.0, 0.003, 0.003);
244  // was med: 18 mat: 34
245 }
246 
247 
AliMUON * fMUON
the MUON detector class
Abstract base class for geometry construction per module(s)
virtual Float_t GetMaxStepGas() const
Definition: AliMUON.cxx:387
Class to build common materials.
virtual Float_t GetMaxDestepGas() const
Definition: AliMUON.cxx:403
AliDetector class for MUON subsystem providing simulation data management.
Definition: AliMUON.h:37
ClassImp(TPCGenInfo)
Definition: AliTPCCmpNG.C:254
virtual Float_t GetMaxStepAlu() const
Definition: AliMUON.cxx:395
AliMUON * muon()
virtual Float_t GetMaxDestepAlu() const
Definition: AliMUON.cxx:411