57 :AbsorberMaterial(0),GapMaterial(0),defaultMaterial(0),
58 solidWorld(0),logicWorld(0),physiWorld(0),
59 solidCalor(0),logicCalor(0),physiCalor(0),
60 solidLayer(0),logicLayer(0),physiLayer(0),
61 solidAbsorber(0),logicAbsorber(0),physiAbsorber(0),
62 solidGap (0),logicGap (0),physiGap (0),
66 AbsorberThickness = 10.*
mm;
70 ComputeCalorParameters();
84 {
delete detectorMessenger;}
90 return ConstructCalorimeter();
95 void ExN03DetectorConstruction::DefineMaterials()
104 G4int ncomponents, natoms;
148 new G4Material(
"Scintillator", density= 1.032*
g/
cm3, ncomponents=2);
213 defaultMaterial = Vacuum;
229 ComputeCalorParameters();
234 solidWorld =
new G4Box(
"World",
235 WorldSizeX/2,WorldSizeYZ/2,WorldSizeYZ/2);
252 solidCalor=0; logicCalor=0; physiCalor=0;
253 solidLayer=0; logicLayer=0; physiLayer=0;
255 if (CalorThickness > 0.)
256 { solidCalor =
new G4Box(
"Calorimeter",
257 CalorThickness/2,CalorSizeYZ/2,CalorSizeYZ/2);
274 solidLayer =
new G4Box(
"Layer",
275 LayerThickness/2,CalorSizeYZ/2,CalorSizeYZ/2);
300 solidAbsorber=0; logicAbsorber=0; physiAbsorber=0;
302 if (AbsorberThickness > 0.)
303 { solidAbsorber =
new G4Box(
"Absorber",
304 AbsorberThickness/2,CalorSizeYZ/2,CalorSizeYZ/2);
323 solidGap=0; logicGap=0; physiGap=0;
325 if (GapThickness > 0.)
326 { solidGap =
new G4Box(
"Gap",
327 GapThickness/2,CalorSizeYZ/2,CalorSizeYZ/2);
385 G4cout <<
"\n------------------------------------------------------------"
386 <<
"\n---> The calorimeter is " << NbOfLayers <<
" layers of: [ "
387 << AbsorberThickness/
mm <<
"mm of " << AbsorberMaterial->
GetName()
389 << GapThickness/
mm <<
"mm of " << GapMaterial->
GetName() <<
" ] "
390 <<
"\n------------------------------------------------------------\n";
399 if (pttoMaterial) AbsorberMaterial = pttoMaterial;
408 if (pttoMaterial) GapMaterial = pttoMaterial;
416 AbsorberThickness = val;
453 if(magField)
delete magField;
G4IonisParamMat * GetIonisation() const
G4VPhysicalVolume * Construct()
static constexpr double mm
static constexpr double mg
void SetAbsorberMaterial(G4String)
CLHEP::Hep3Vector G4ThreeVector
G4bool SetDetectorField(G4Field *detectorField)
ExN03DetectorConstruction()
void AddMaterial(G4Material *material, G4double fraction)
std::vector< ExP01TrackerHit * > a
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
int universe_mean_density
void SetMeanExcitationEnergy(G4double value)
static constexpr double perCent
const G4String & GetName() const
void SetCalorSizeYZ(G4double)
static G4MaterialTable * GetMaterialTable()
~ExN03DetectorConstruction()
virtual void DefineWorldVolume(G4VPhysicalVolume *worldVol, G4bool topologyIsChanged=true)
static G4PhysicalVolumeStore * GetInstance()
void SetAbsorberThickness(G4double)
void PrintCalorParameters()
G4GLOB_DLL std::ostream G4cout
void SetVisibility(G4bool=true)
static constexpr double cm
void AddIsotope(G4Isotope *isotope, G4double RelativeAbundance)
static G4LogicalVolumeStore * GetInstance()
static G4SolidStore * GetInstance()
static constexpr double eV
static G4GeometryManager * GetInstance()
static constexpr double kelvin
static constexpr double cm3
void SetGapThickness(G4double)
static G4TransportationManager * GetTransportationManager()
G4FieldManager * GetFieldManager() const
static G4RunManager * GetRunManager()
void SetNbOfLayers(G4int)
void SetMagField(G4double)
void OpenGeometry(G4VPhysicalVolume *vol=0)
void AddElement(G4Element *element, G4int nAtoms)
static constexpr double bar
void CreateChordFinder(G4MagneticField *detectorMagField)
static constexpr double atmosphere
static constexpr double mole
static const G4VisAttributes & GetInvisible()
void SetVisAttributes(const G4VisAttributes *pVA)
void SetGapMaterial(G4String)