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