61 fDetectorMessenger(0),
62 fSolidWorld(0), fLogicWorld(0), fPhysiWorld(0),
63 fSolidAbsorber(0), fLogicAbsorber(0), fPhysiAbsorber(0),
64 fSolidRadSlice(0), fLogicRadSlice(0), fPhysiRadSlice(0),
65 fSolidRadiator(0), fLogicRadiator(0), fPhysiRadiator(0),
66 fWorldMaterial(0), fAbsorberMaterial(0), fRadiatorMat(0),
68 fWorldSizeR( 22000.*
mm),
69 fWorldSizeZ( 44000.*
mm),
70 fAbsorberThickness( 1.*
mm),
71 fAbsorberRadius( 20000.*
mm),
72 fZAbsorber( 21990.*
mm),
75 fRadThickness( 100.*
mm),
112 G4double fractionmass, pressure, temperature;
139 density = 1.39*
g/
cm3;
153 density = 3.700*
mg/
cm3;
159 density = 1.7836*
mg/
cm3;
163 density = 1.25053*
mg/
cm3;
167 density = 1.4289*
mg/
cm3;
171 density = 1.2928*
mg/
cm3;
173 temperature = STP_Temperature;
174 pressure = 1.0e-8*STP_Pressure;
178 air->
AddMaterial( nitrogen, fractionmass = 0.7557 );
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;
207 Kr20CO2->
AddMaterial( CarbonDioxide, fractionmass = 0.11 );
269 0.5*radThick,0.0, twopi);
287 zModule = zRad + 0.5*radThick/1.02;
293 G4cout << zRadiator/
mm <<
" mm" <<
"\t";
328 G4cout <<
"\n The WORLD is made of "
330 G4cout <<
", the transverse size (R) of the world is "
332 G4cout <<
" The ABSORBER is made of "
336 G4cout <<
" Z position of the (middle of the) absorber "
350 for (
size_t j=0 ; j<theMaterialTable->size() ; j++)
351 { material = (*theMaterialTable)[j];
352 if (material->
GetName() == materialChoice)
370 for (
size_t j=0 ; j<theMaterialTable->size() ; j++)
371 { material = (*theMaterialTable)[j];
372 if(material->
GetName() == materialChoice)
G4FieldManager * GetLocalFieldManager()
void SetWorldMaterial(G4String)
void SetWorldSizeZ(G4double)
CLHEP::Hep3Vector G4ThreeVector
void PrintCalorParameters()
void AddMaterial(G4Material *material, G4double fraction)
void SetWorldSizeR(G4double)
void ComputeCalorParameters()
const G4String & GetName() const
static G4MaterialTable * GetMaterialTable()
std::vector< G4Material * > G4MaterialTable
virtual ~F03DetectorConstruction()
G4Cache< F03CalorimeterSD * > fCalorimeterSD
G4LogicalVolume * fLogicWorld
G4LogicalVolume * fLogicRadiator
void SetAbsorberZpos(G4double)
G4VPhysicalVolume * fPhysiRadSlice
void SetFieldManager(G4FieldManager *pFieldMgr, G4bool forceToAllDaughters)
G4Material * fRadiatorMat
Definition of the F03DetectorConstruction class.
static G4PhysicalVolumeStore * GetInstance()
G4VPhysicalVolume * ConstructCalorimeter()
virtual void ConstructSDandField()
void SetAbsorberRadius(G4double)
G4VPhysicalVolume * fPhysiAbsorber
G4GLOB_DLL std::ostream G4cout
void PhysicsHasBeenModified()
G4Cache< F03FieldSetup * > fEmFieldSetup
void SetAbsorberMaterial(G4String)
A class for setting up the Magnetic Field.
static G4LogicalVolumeStore * GetInstance()
static G4SolidStore * GetInstance()
G4VPhysicalVolume * fPhysiRadiator
static G4GeometryManager * GetInstance()
G4double fAbsorberThickness
Definition of the F03CalorimeterSD class.
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
F03DetectorMessenger * fDetectorMessenger
G4Material * fAbsorberMaterial
G4LogicalVolume * fLogicAbsorber
Definition of the F03DetectorMessenger class.
void OpenGeometry(G4VPhysicalVolume *vol=0)
virtual G4VPhysicalVolume * Construct()
void AddElement(G4Element *element, G4int nAtoms)
G4VPhysicalVolume * fPhysiWorld
G4Material * fWorldMaterial
G4LogicalVolume * fLogicRadSlice
F03DetectorConstruction()
void SetMaterial(G4Material *pMaterial)
Definition of the F03FieldSetup class.
void Put(const value_type &val) const
void SetAbsorberThickness(G4double)