34 #include "DetectorConstruction.hh"
35 #include "DetectorMessenger.hh"
58 fAbsorMaterial(nullptr),
75 {
delete fDetectorMessenger;}
79 void DetectorConstruction::DefineMaterials()
104 0., fAbsorRadius, 0.,
twopi, 0.,
pi);
106 fSpheres.push_back(sAbsor);
112 fLVolumes.push_back(lAbsor);
124 fLayerThickness = fAbsorRadius/fNbOfLayers;
126 for (
G4int i=1; i<=fNbOfLayers; i++) {
128 sLayer =
new G4Sphere(
"Layer", (i-1)*fLayerThickness, i*fLayerThickness,
131 fSpheres.push_back(sLayer);
137 fLVolumes.push_back(lLayer);
161 G4cout <<
"\n---------------------------------------------------------\n";
162 G4cout <<
"---> The Absorber is a sphere of "
163 <<
G4BestUnit(fAbsorRadius,
"Length") <<
" radius of "
164 << fAbsorMaterial->
GetName() <<
" divided in " << fNbOfLayers
165 <<
" slices of " <<
G4BestUnit(fLayerThickness,
"Length")
166 <<
"\n \n" << fAbsorMaterial <<
G4endl;
167 G4cout <<
"\n---------------------------------------------------------\n";
176 G4double scale = value/fAbsorRadius;
177 for (
auto solid : fSpheres) {
179 solid->SetOuterRadius(solid->GetOuterRadius()*scale);
180 solid->SetInnerRadius(solid->GetInnerRadius()*scale);
182 solid->SetInnerRadius(solid->GetInnerRadius()*scale);
183 solid->SetOuterRadius(solid->GetOuterRadius()*scale);
187 fAbsorRadius =
value;
197 if (pttoMaterial && pttoMaterial != fAbsorMaterial) {
198 fAbsorMaterial = pttoMaterial;
203 for (
auto lv : fLVolumes) { lv->SetMaterial(fAbsorMaterial); }
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
CLHEP::Hep3Vector G4ThreeVector
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
const G4String & GetName() const
G4VPhysicalVolume * Construct()
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
static G4NistManager * Instance()
void SetNbOfLayers(G4int)
static constexpr double twopi
G4GLOB_DLL std::ostream G4cout
const XML_Char int const XML_Char * value
void PhysicsHasBeenModified()
static constexpr double cm
static G4RunManager * GetRunManager()
static constexpr double pi
void SetMaterial(G4String)