34 #include "DetectorConstruction.hh"
35 #include "DetectorMessenger.hh"
59 :AbsorberMaterial(0),GapMaterial(0),defaultMaterial(0),
60 solidWorld(0),logicWorld(0),physiWorld(0),
61 solidCalor(0),logicCalor(0),physiCalor(0),
62 solidLayer(0),logicLayer(0),physiLayer(0),
63 solidAbsorber(0),logicAbsorber(0),physiAbsorber(0),
64 solidGap (0),logicGap (0),physiGap (0),
68 AbsorberThickness = 10.*
mm;
72 ComputeCalorParameters();
86 {
delete detectorMessenger;}
92 return ConstructCalorimeter();
97 void DetectorConstruction::DefineMaterials()
106 G4int ncomponents, natoms;
150 new G4Material(
"Scintillator", density= 1.032*
g/
cm3, ncomponents=2);
223 defaultMaterial = Vacuum;
239 ComputeCalorParameters();
244 solidWorld =
new G4Box(
"World",
245 WorldSizeX/2,WorldSizeYZ/2,WorldSizeYZ/2);
262 solidCalor=0; logicCalor=0; physiCalor=0;
263 solidLayer=0; logicLayer=0; physiLayer=0;
265 if (CalorThickness > 0.)
266 { solidCalor =
new G4Box(
"Calorimeter",
267 CalorThickness/2,CalorSizeYZ/2,CalorSizeYZ/2);
284 solidLayer =
new G4Box(
"Layer",
285 LayerThickness/2,CalorSizeYZ/2,CalorSizeYZ/2);
310 solidAbsorber=0; logicAbsorber=0; physiAbsorber=0;
312 if (AbsorberThickness > 0.)
313 { solidAbsorber =
new G4Box(
"Absorber",
314 AbsorberThickness/2,CalorSizeYZ/2,CalorSizeYZ/2);
333 solidGap=0; logicGap=0; physiGap=0;
335 if (GapThickness > 0.)
336 { solidGap =
new G4Box(
"Gap",
337 GapThickness/2,CalorSizeYZ/2,CalorSizeYZ/2);
395 G4cout <<
"\n------------------------------------------------------------"
396 <<
"\n---> The calorimeter is " << NbOfLayers <<
" layers of: [ "
397 << AbsorberThickness/
mm <<
"mm of " << AbsorberMaterial->
GetName()
399 << GapThickness/
mm <<
"mm of " << GapMaterial->
GetName() <<
" ] "
400 <<
"\n------------------------------------------------------------\n";
409 if (pttoMaterial) AbsorberMaterial = pttoMaterial;
418 if (pttoMaterial) GapMaterial = pttoMaterial;
426 AbsorberThickness = val;
463 if(magField)
delete magField;