34 #include "DetectorConstruction.hh"
35 #include "DetectorMessenger.hh"
60 fWorldMaterial(nullptr),fSolidWorld(nullptr),fLogicWorld(nullptr),
61 fPhysiWorld(nullptr),fSolidCalor(nullptr),fLogicCalor(nullptr),
62 fPhysiCalor(nullptr),fSolidLayer(nullptr),fLogicLayer(nullptr),
165 new G4Material(
"Polystyrene", density= 1.032*
g/
cm3, ncomponents=2);
170 new G4Material(
"Scintillator", density= 1.032*
g/
cm3, ncomponents=2);
213 SiNx-> AddElement(Si, 300);
214 SiNx-> AddElement(N, 310);
215 SiNx-> AddElement(H, 6);
272 temperature = 2.73*
kelvin;
276 density = 1.e-5*
g/
cm3;
277 pressure = 2.e-2*
bar;
280 new G4Material(
"Beam", density, ncomponents=1,
407 G4cout <<
"\n-------------------------------------------------------------"
408 <<
"\n ---> The calorimeter is " <<
fNbOfLayers <<
" layers of:";
413 G4cout <<
"\n-------------------------------------------------------------\n";
419 G4cout <<
"\n-------------------------------------------------------------\n";
446 {
G4cout <<
"\n --->warning from SetfNbOfLayers: "
447 << ival <<
" must be at least 1. Command refused" <<
G4endl;
460 {
G4cout <<
"\n ---> warning from SetfNbOfAbsor: "
461 << ival <<
" must be at least 1 and and most " <<
kMaxAbsor-1
462 <<
". Command refused" <<
G4endl;
476 {
G4cout <<
"\n --->warning from SetAbsorMaterial: absor number "
477 << ival <<
" out of range. Command refused" <<
G4endl;
499 {
G4cout <<
"\n --->warning from SetAbsorThickness: absor number "
500 << ival <<
" out of range. Command refused" <<
G4endl;
504 {
G4cout <<
"\n --->warning from SetAbsorThickness: thickness "
505 << val <<
" out of range. Command refused" <<
G4endl;
518 {
G4cout <<
"\n --->warning from SetfCalorSizeYZ: thickness "
519 << val <<
" out of range. Command refused" <<
G4endl;
static constexpr double kelvin
static G4RunManager * GetRunManager()
static constexpr double atmosphere
G4VPhysicalVolume * fPhysiLayer
CLHEP::Hep3Vector G4ThreeVector
std::vector< ExP01TrackerHit * > a
static constexpr double MeV
static constexpr double STP_Temperature
G4LogicalVolume * fLogicAbsor[kMaxAbsor]
static constexpr double mm
G4LogicalVolume * fLogicWorld
G4Material * fAbsorMaterial[kMaxAbsor]
static constexpr double perCent
G4Box * fSolidAbsor[kMaxAbsor]
void SetNbOfLayers(G4int)
G4VPhysicalVolume * Construct()
void SetMeanExcitationEnergy(G4double value)
G4VPhysicalVolume * fPhysiWorld
void SetBirksConstant(G4double value)
static constexpr double universe_mean_density
void ComputeCalorParameters()
G4LogicalVolume * fLogicCalor
G4LogicalVolume * fLogicLayer
const G4String & GetName() const
void AddIsotope(G4Isotope *isotope, G4double RelativeAbundance)
G4Element * FindOrBuildElement(G4int Z, G4bool isotopes=true)
void SetWorldMaterial(const G4String &materialName)
static constexpr double g
G4Material * ConstructNewGasMaterial(const G4String &name, const G4String &nameNist, G4double temp, G4double pres, G4bool isotopes=true)
virtual void ConstructSDandField()
G4double fAbsorThickness[kMaxAbsor]
static constexpr double mg
void SetCalorSizeYZ(G4double)
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
G4VPhysicalVolume * fPhysiAbsor[kMaxAbsor]
static constexpr double eV
void Put(const value_type &val) const
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
void SetAbsorThickness(G4int, G4double)
void PrintCalorParameters()
void SetChemicalFormula(const G4String &chF)
void AddElement(G4Element *element, G4int nAtoms)
G4IonisParamMat * GetIonisation() const
void SetAbsorMaterial(G4int, const G4String &)
void PhysicsHasBeenModified()
G4VPhysicalVolume * fPhysiCalor
G4Cache< G4GlobalMagFieldMessenger * > fFieldMessenger
G4GLOB_DLL std::ostream G4cout
static constexpr double cm
DetectorMessenger * fDetectorMessenger
void SetMaterial(G4Material *pMaterial)
G4Material * fWorldMaterial
static constexpr double mole
void AddMaterial(G4Material *material, G4double fraction)
static constexpr double bar
static constexpr double cm3
static G4NistManager * Instance()