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