59 : fSolidWorld(0), fLogicWorld(0), fPhysiWorld(0),
60 fSolidAbsorber(0),fLogicAbsorber(0), fPhysiAbsorber(0),
61 fEmFieldSetup(0), fDetectorMessenger(0), fCalorimeterSD(0),
62 fAbsorberMaterial(0), fAbsorberThickness(0.), fAbsorberRadius(0.),
64 fZAbsorber(0.), fZStartAbs(0.), fZEndAbs(0.),
65 fWorldMaterial(0), fWorldSizeR(0.), fWorldSizeZ(0.)
72 fAbsorberThickness = 40.0*
mm;
74 fAbsorberRadius = 10.*
cm;
90 delete fDetectorMessenger;
91 delete fEmFieldSetup ;
98 return ConstructCalorimeter();
103 void F02DetectorConstruction::DefineMaterials()
111 G4double fractionmass, pressure, temperature;
138 density = 1.39*
g/
cm3;
152 density = 3.700*
mg/
cm3 ;
158 density = 1.7836*
mg/
cm3 ;
162 density = 1.25053*
mg/
cm3 ;
166 density = 1.4289*
mg/
cm3 ;
171 density = 1.2928*
mg/
cm3 ;
178 Air->
AddMaterial( Nitrogen, fractionmass = 0.7557 ) ;
179 Air->
AddMaterial( Oxygen, fractionmass = 0.2315 ) ;
184 density = 5.858*
mg/
cm3 ;
190 density = 1.842*
mg/
cm3;
197 density = 5.0818*
mg/
cm3 ;
200 Xe20CO2->
AddMaterial( CarbonDioxide, fractionmass = 0.078 ) ;
204 density = 3.601*
mg/
cm3 ;
208 Kr20CO2->
AddMaterial( CarbonDioxide, fractionmass = 0.11 ) ;
213 fAbsorberMaterial = Kr20CO2 ;
215 fWorldMaterial =
Air ;
224 ComputeCalorParameters();
239 fSolidWorld =
new G4Tubs(
"World",
240 0.,fWorldSizeR,fWorldSizeZ/2.,0.,
twopi);
255 if (fAbsorberThickness > 0.)
257 fSolidAbsorber =
new G4Tubs(
"Absorber",
258 0.,fAbsorberRadius,fAbsorberThickness/2.,0.,
twopi);
291 G4cout <<
"\n The WORLD is made of "
292 << fWorldSizeZ/
mm <<
"mm of " << fWorldMaterial->
GetName() ;
293 G4cout <<
", the transverse size (R) of the world is " << fWorldSizeR/
mm <<
" mm. " <<
G4endl;
294 G4cout <<
" The ABSORBER is made of "
295 << fAbsorberThickness/
mm <<
"mm of " << fAbsorberMaterial->
GetName() ;
296 G4cout <<
", the transverse size (R) is " << fAbsorberRadius/
mm <<
" mm. " <<
G4endl;
297 G4cout <<
" Z position of the (middle of the) absorber " << fZAbsorber/
mm <<
" mm." <<
G4endl;
310 for (
size_t J=0 ; J<theMaterialTable->size() ; J++)
311 { pttoMaterial = (*theMaterialTable)[J];
312 if(pttoMaterial->
GetName() == materialChoice)
314 fAbsorberMaterial = pttoMaterial;
329 for (
size_t J=0 ; J<theMaterialTable->size() ; J++)
330 { pttoMaterial = (*theMaterialTable)[J];
331 if(pttoMaterial->
GetName() == materialChoice)
333 fWorldMaterial = pttoMaterial;
344 fAbsorberThickness = val;
345 ComputeCalorParameters();
353 fAbsorberRadius = val;
354 ComputeCalorParameters();
363 ComputeCalorParameters();
372 ComputeCalorParameters();
380 ComputeCalorParameters();