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" |
31 | |
32 | ClassImp(AliMUONCommonGeometryBuilder) |
33 | |
34 | //______________________________________________________________________________//___________________________________________ |
35 | AliMUONCommonGeometryBuilder::AliMUONCommonGeometryBuilder(AliMUON* muon) |
36 | : AliMUONVGeometryBuilder("", 0), |
37 | fMUON(muon) |
38 | { |
39 | // Standars constructor |
40 | } |
41 | |
42 | //______________________________________________________________________________//___________________________________________ |
43 | AliMUONCommonGeometryBuilder::AliMUONCommonGeometryBuilder() |
44 | : AliMUONVGeometryBuilder(), |
45 | fMUON(0) |
46 | { |
47 | // Default constructor |
48 | } |
49 | |
50 | //______________________________________________________________________________ |
51 | AliMUONCommonGeometryBuilder::AliMUONCommonGeometryBuilder( |
52 | const AliMUONCommonGeometryBuilder& right) |
53 | : AliMUONVGeometryBuilder(right) |
54 | { |
55 | // copy constructor (not implemented) |
56 | |
57 | Fatal("AliMUONCommonGeometryBuilder", "Copy constructor not provided."); |
58 | } |
59 | |
60 | //______________________________________________________________________________ |
61 | AliMUONCommonGeometryBuilder::~AliMUONCommonGeometryBuilder() |
62 | { |
63 | // Destructor |
64 | } |
65 | |
66 | //______________________________________________________________________________ |
67 | AliMUONCommonGeometryBuilder& |
68 | AliMUONCommonGeometryBuilder::operator=(const AliMUONCommonGeometryBuilder& right) |
69 | { |
70 | // assignement operator (not implemented) |
71 | |
72 | // check assignement to self |
73 | if (this == &right) return *this; |
74 | |
75 | Fatal("operator =", "Assignement operator not provided."); |
76 | |
77 | return *this; |
78 | } |
79 | |
80 | // |
81 | // public functions |
82 | // |
83 | |
84 | //_____________________________________________________________________________ |
85 | void AliMUONCommonGeometryBuilder::CreateMaterials() |
86 | { |
87 | // Definition of common materials |
88 | // -- |
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 | |
127 | Int_t iSXFLD = gAlice->Field()->Integ(); |
128 | Float_t sXMGMX = gAlice->Field()->Max(); |
129 | // |
130 | // --- Define the various materials for GEANT --- |
131 | fMUON->AliMaterial(9, "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 37.2); |
132 | fMUON->AliMaterial(10, "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 37.2); |
133 | // Air |
134 | Float_t aAir[4]={12.0107,14.0067,15.9994,39.948}; |
135 | Float_t zAir[4]={6.,7.,8.,18.}; |
136 | Float_t wAir[4]={0.000124,0.755267,0.231781,0.012827}; |
137 | Float_t dAir = 1.20479E-3; |
138 | fMUON->AliMixture(15, "AIR$ ", aAir, zAir, dAir,4, wAir); |
139 | // fMUON->AliMaterial(15, "AIR$ ", 14.61, 7.3, .001205, 30423.24, 67500); |
140 | fMUON->AliMixture(19, "Bakelite$", abak, zbak, dbak, -3, wbak); |
141 | fMUON->AliMixture(20, "ArC4H10 GAS$", ag, zg, dg, 3, wg); |
142 | fMUON->AliMixture(21, "TRIG GAS$", atrig, ztrig, dtrig, -5, wtrig); |
143 | fMUON->AliMixture(22, "ArCO2 80%$", ag1, zg1, dg1, 3, wg1); |
144 | fMUON->AliMixture(23, "Ar-freon $", atr1, ztr1, dtr1, 4, wtr1); |
145 | fMUON->AliMixture(24, "ArCO2 GAS$", agas, zgas, dgas, 3, wgas); |
146 | |
147 | // materials for slat: |
148 | // Sensitive area: gas (already defined) |
149 | // PCB: copper |
150 | // insulating material: vetronite -> replacing by G10 Ch. Finck |
151 | // spacer: noryl Ch. Finck |
152 | // panel sandwich: carbon, nomex, carbon replacing rohacell by nomex Ch. Finck |
153 | |
154 | // G10: SiO2(60%) + C8H14O4(40%) |
155 | Float_t aglass[5] = {12.01, 28.09, 16., 1.01, 16.}; |
156 | Float_t zglass[5] = { 6., 14., 8., 1., 8.}; |
157 | Float_t wglass[5] = { 0.22, 0.28, 0.32, 0.03, 0.15}; |
158 | Float_t dglass = 1.7; |
159 | |
160 | // rohacell: C9 H13 N1 O2 |
161 | Float_t arohac[4] = {12.01, 1.01, 14.010, 16.}; |
162 | Float_t zrohac[4] = { 6., 1., 7., 8.}; |
163 | Float_t wrohac[4] = { 9., 13., 1., 2.}; |
164 | Float_t drohac = 0.03; |
165 | |
166 | // Nomex: C22 H10 N2 O5 |
167 | Float_t aNomex[4] = {12.01, 1.01, 14.010, 16.}; |
168 | Float_t zNomex[4] = { 6., 1., 7., 8.}; |
169 | Float_t wNomex[4] = { 22., 10., 2., 5.}; |
170 | Float_t dNomex = 0.024; //honey comb |
171 | Float_t dNomex2 = 1.43; //bulk material |
172 | |
173 | |
174 | // Noryl: C8 H8 O polyphenylene oxyde (di-methyl not sure) |
175 | Float_t aNoryl[3] = {12.01, 1.01, 16.}; |
176 | Float_t zNoryl[3] = { 6., 1., 8.}; |
177 | Float_t wNoryl[3] = { 8., 8., 1.}; |
178 | Float_t dNoryl = 1.06; |
179 | |
180 | fMUON->AliMaterial(31, "COPPER$", 63.54, 29., 8.96, 1.4, 0.); |
181 | fMUON->AliMixture( 32, "G10$", aglass, zglass, dglass, -5, wglass); |
182 | fMUON->AliMaterial(33, "Carbon$", 12.01, 6., 2.265, 18.8, 49.9); |
183 | fMUON->AliMixture( 34, "Rohacell$", arohac, zrohac, drohac, -4, wrohac); |
184 | fMUON->AliMixture( 35, "Nomex$", aNomex, zNomex, dNomex, -4, wNomex); |
185 | fMUON->AliMixture( 36, "Noryl$", aNoryl, zNoryl, dNoryl, -3, wNoryl); |
186 | fMUON->AliMixture( 37, "Nomex_bulk$",aNomex, zNomex, dNomex2, -4, wNomex); |
187 | |
188 | Float_t epsil = .001; // Tracking precision, |
189 | Float_t stemax = -1.; // Maximum displacement for multiple scat |
190 | Float_t tmaxfd = -20.; // Maximum angle due to field deflection |
191 | Float_t deemax = -.3; // Maximum fractional energy loss, DLS |
192 | Float_t stmin = -.8; |
193 | Float_t maxDestepAlu = fMUON->GetMaxDestepAlu(); |
194 | Float_t maxDestepGas = fMUON->GetMaxDestepGas(); |
195 | Float_t maxStepAlu = fMUON->GetMaxStepAlu(); |
196 | Float_t maxStepGas = fMUON->GetMaxStepGas(); |
197 | |
198 | // |
199 | // Air |
200 | fMUON->AliMedium(1, "AIR_CH_US ", 15, 1, iSXFLD, sXMGMX, tmaxfd, stemax, deemax, epsil, stmin); |
201 | |
202 | // |
203 | // Aluminum |
204 | fMUON->AliMedium(4, "ALU_CH_US ", 9, 0, iSXFLD, sXMGMX, tmaxfd, maxStepAlu, |
205 | maxDestepAlu, epsil, stmin); |
206 | fMUON->AliMedium(5, "ALU_CH_US ", 10, 0, iSXFLD, sXMGMX, tmaxfd, maxStepAlu, |
207 | maxDestepAlu, epsil, stmin); |
208 | // |
209 | // Ar-isoC4H10 gas |
210 | fMUON->AliMedium(6, "AR_CH_US ", 20, 1, iSXFLD, sXMGMX, tmaxfd, maxStepGas, |
211 | maxDestepGas, epsil, stmin); |
212 | // |
213 | // Ar-Isobuthane-Forane-SF6 gas |
214 | fMUON->AliMedium(7, "GAS_CH_TRIGGER ", 21, 1, iSXFLD, sXMGMX, tmaxfd, stemax, deemax, epsil, stmin); |
215 | |
216 | fMUON->AliMedium(8, "BAKE_CH_TRIGGER ", 19, 0, iSXFLD, sXMGMX, tmaxfd, maxStepAlu, |
217 | maxDestepAlu, epsil, stmin); |
218 | // |
219 | // slat medium |
220 | fMUON->AliMedium(9, "ARG_CO2 ", 22, 1, iSXFLD, sXMGMX, tmaxfd, maxStepGas, |
221 | maxDestepAlu, epsil, stmin); |
222 | // |
223 | // tracking media for slats: check the parameters!! |
224 | fMUON->AliMedium(11, "PCB_COPPER ", 31, 0, iSXFLD, sXMGMX, tmaxfd, |
225 | maxStepAlu, maxDestepAlu, epsil, stmin); |
226 | fMUON->AliMedium(12, "G10 ", 32, 0, iSXFLD, sXMGMX, tmaxfd, |
227 | maxStepAlu, maxDestepAlu, epsil, stmin); |
228 | fMUON->AliMedium(13, "CARBON ", 33, 0, iSXFLD, sXMGMX, tmaxfd, |
229 | maxStepAlu, maxDestepAlu, epsil, stmin); |
230 | fMUON->AliMedium(14, "Rohacell ", 34, 0, iSXFLD, sXMGMX, tmaxfd, |
231 | maxStepAlu, maxDestepAlu, epsil, stmin); |
232 | fMUON->AliMedium(15, "Nomex ", 35, 0, iSXFLD, sXMGMX, tmaxfd, |
233 | maxStepAlu, maxDestepAlu, epsil, stmin); |
234 | fMUON->AliMedium(16, "Noryl ", 36, 0, iSXFLD, sXMGMX, tmaxfd, |
235 | maxStepAlu, maxDestepAlu, epsil, stmin); |
236 | fMUON->AliMedium(17, "Nomex bulk ", 37, 0, iSXFLD, sXMGMX, tmaxfd, |
237 | maxStepAlu, maxDestepAlu, epsil, stmin); |
238 | } |
239 | |
240 | |