37 #include "DetectorConstruction.hh"
38 #include "DetectorMessenger.hh"
60 :fAbsorberMaterial(0),fGapMaterial(0),fDefaultMaterial(0),
61 fSolidWorld(0),fLogicWorld(0),fPhysiWorld(0),
62 fSolidCalor(0),fLogicCalor(0),fPhysiCalor(0),
63 fSolidLayer(0),fLogicLayer(0),fPhysiLayer(0),
64 fSolidAbsorber(0),fLogicAbsorber(0),fPhysiAbsorber(0),
65 fSolidGap (0),fLogicGap (0),fPhysiGap (0)
68 fAbsorberThickness = 10.*
mm;
69 fGapThickness = 5.*
mm;
71 fCalorSizeYZ = 10.*
cm;
72 ComputeCalorParameters();
86 {
delete fDetectorMessenger;}
92 return ConstructCalorimeter();
97 void DetectorConstruction::DefineMaterials()
124 ComputeCalorParameters();
129 fSolidWorld =
new G4Box(
"World",
130 fWorldSizeX/2,fWorldSizeYZ/2,fWorldSizeYZ/2);
147 fSolidCalor=0; fLogicCalor=0; fPhysiCalor=0;
148 fSolidLayer=0; fLogicLayer=0; fPhysiLayer=0;
150 if (fCalorThickness > 0.)
151 { fSolidCalor =
new G4Box(
"Calorimeter",
152 fCalorThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2);
169 fSolidLayer =
new G4Box(
"Layer",
170 fLayerThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2);
195 fSolidAbsorber=0; fLogicAbsorber=0; fPhysiAbsorber=0;
197 if (fAbsorberThickness > 0.)
198 { fSolidAbsorber =
new G4Box(
"Absorber",
199 fAbsorberThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2);
218 fSolidGap=0; fLogicGap=0; fPhysiGap=0;
220 if (fGapThickness > 0.)
221 { fSolidGap =
new G4Box(
"Gap",
222 fGapThickness/2,fCalorSizeYZ/2,fCalorSizeYZ/2);
258 G4cout <<
"\n------------------------------------------------------------"
259 <<
"\n---> The calorimeter is " << fNbOfLayers <<
" layers of: [ "
260 << fAbsorberThickness/
mm <<
"mm of " << fAbsorberMaterial->
GetName()
262 << fGapThickness/
mm <<
"mm of " << fGapMaterial->
GetName() <<
" ] "
263 <<
"\n------------------------------------------------------------\n";
273 if (pttoMaterial) fAbsorberMaterial = pttoMaterial;
283 if (pttoMaterial) fGapMaterial = pttoMaterial;
291 fAbsorberThickness = val;