26#include <TVirtualMC.h>
28#include "Ex03DetectorConstructionOld.h"
45 fAbsorberThickness(0.),
47 fDefaultMaterial(
"Galactic"),
48 fAbsorberMaterial(
"Lead"),
49 fGapMaterial(
"liquidArgon")
54 fAbsorberThickness = 1.;
59 ComputeCalorParameters();
98 Double_t fieldm = 10.;
99 Double_t epsil = .001;
100 Double_t stemax = -0.01;
101 Double_t tmaxfd = -20.;
102 Double_t deemax = -.3;
103 Double_t stmin = -.8;
128 gMC->Material(imat, name.Data(), a, z, density, radl, absl, ubuf, 0);
130 gMC->Medium(mediumId, name.Data(), imat, 0, ifield, fieldm, tmaxfd, stemax,
131 deemax, epsil, stmin, ubuf, 0);
133 name =
"liquidArgon";
139 gMC->Material(imat, name.Data(), a, z, density, radl, absl, ubuf, 0);
140 gMC->Medium(mediumId, name.Data(), imat, 0, ifield, fieldm, tmaxfd, stemax,
141 deemax, epsil, stmin, ubuf, 0);
149 gMC->Material(imat, name.Data(), a, z, density, radl, absl, ubuf, 0);
150 gMC->Medium(mediumId, name.Data(), imat, 0, ifield, fieldm, tmaxfd, stemax,
151 deemax, epsil, stmin, ubuf, 0);
158 Double_t aw2[2] = { 1.01, 16.00 };
159 Double_t zw2[2] = { 1.0, 8.0 };
160 Double_t ww2[2] = { 2., 1. };
162 gMC->Mixture(imat, name.Data(), aw2, zw2, density, -2, ww2);
163 gMC->Medium(mediumId, name.Data(), imat, 0, ifield, fieldm, tmaxfd, stemax,
164 deemax, epsil, stmin, ubuf, 0);
166 name =
"Scintillator";
167 Double_t as2[2] = { 1.01, 12.01 };
168 Double_t zs2[2] = { 1.0, 6.0 };
169 Double_t ws2[2] = { 10., 9. };
171 gMC->Mixture(imat, name.Data(), as2, zs2, density, -2, ws2);
172 gMC->Medium(mediumId, name.Data(), imat, 0, ifield, fieldm, tmaxfd, stemax,
173 deemax, epsil, stmin, ubuf, 0);
176 Double_t am2[3] = { 12.01, 1.01, 16.00 };
177 Double_t zm2[3] = { 6.0, 1.0, 8.0 };
178 Double_t wm2[3] = { 10., 8., 4. };
180 gMC->Mixture(imat, name.Data(), am2, zm2, density, -3, wm2);
181 gMC->Medium(mediumId, name.Data(), imat, 0, ifield, fieldm, tmaxfd, stemax,
182 deemax, epsil, stmin, ubuf, 0);
185 Double_t aq2[2] = { 28.09, 16.00 };
186 Double_t zq2[2] = { 14.0, 8.0 };
187 Double_t wq2[2] = { 1., 2. };
189 gMC->Mixture(imat, name.Data(), aq2, zq2, density, -2, wq2);
190 gMC->Medium(mediumId, name.Data(), imat, 0, ifield, fieldm, tmaxfd, stemax,
191 deemax, epsil, stmin, ubuf, 0);
198 Double_t aa2[2] = { 14.01, 16.00 };
199 Double_t za2[2] = { 7.0, 8.0 };
200 Double_t wa2[2] = { 0.7, 0.3 };
202 gMC->Mixture(imat, name.Data(), aa2, za2, density, 2, wa2);
203 gMC->Medium(mediumId, name.Data(), imat, 0, ifield, fieldm, tmaxfd, stemax,
204 deemax, epsil, stmin, ubuf, 0);
250 gMC->Material(imat, name.Data(), a, z, density, radl, absl, ubuf, 0);
251 gMC->Medium(mediumId, name.Data(), imat, 0, ifield, fieldm, tmaxfd, stemax,
252 deemax, epsil, stmin, ubuf, 0);
271 gMC->Gsvolu(
"WRLD",
"BOX", gMC->MediumId(
fDefaultMaterial.Data()), world, 3);
282 gMC->Gsvolu(
"CALO",
"BOX", gMC->MediumId(
fDefaultMaterial.Data()), calo, 3);
287 gMC->Gspos(
"CALO", 1,
"WRLD", posX, posY, posZ, 0,
"ONLY");
306 gMC->Gspos(
"LAYE", 1,
"CELL", posX, posY, posZ, 0,
"ONLY");
325 gMC->Gspos(
"ABSO", 1,
"LAYE", posX, posY, posZ, 0,
"ONLY");
338 gMC->Gsvolu(
"GAPX",
"BOX", gMC->MediumId(
fGapMaterial.Data()), gap, 3);
343 gMC->Gspos(
"GAPX", 1,
"LAYE", posX, posY, posZ, 0,
"ONLY");
365 cout <<
"\n------------------------------------------------------------"
366 <<
"\n---> The calorimeter is " <<
fNbOfLayers <<
" layers of: [ "
369 <<
"\n------------------------------------------------------------\n";
383 const TString& materialName)
393 const TString& materialName)
The old detector construction (via VMC functions)
void PrintCalorParameters()
Int_t fNbOfLayers
The number of calorimeter layers.
virtual ~Ex03DetectorConstructionOld()
void SetGapThickness(Double_t value)
TString fGapMaterial
The gap material name.
void ConstructMaterials()
Double_t fWorldSizeYZ
The world size y,z component.
void SetAbsorberThickness(Double_t value)
Double_t fCalorSizeYZ
The calorimeter size y,z component.
void SetCalorSizeYZ(Double_t value)
TString fDefaultMaterial
The default material name.
Ex03DetectorConstructionOld()
void SetNbOfLayers(Int_t value)
void SetGapMaterial(const TString &materialName)
TString fAbsorberMaterial
The absorber material name.
void ComputeCalorParameters()
void SetAbsorberMaterial(const TString &materialName)
Double_t fWorldSizeX
The world size x component.
Double_t fAbsorberThickness
The absorber thickness.
Double_t fCalorThickness
The calorimeter thickness.
void SetDefaultMaterial(const TString &materialName)
Double_t fLayerThickness
The calorimeter layer thickness.
Double_t fGapThickness
The gap thickness.