83 return DefineVolumes();
88 void B4dDetectorConstruction::DefineMaterials()
92 nistManager->FindOrBuildMaterial(
"G4_Pb");
114 G4int nofLayers = 10;
119 auto layerThickness = absoThickness + gapThickness;
120 auto calorThickness = nofLayers * layerThickness;
121 auto worldSizeXY = 1.2 * calorSizeXY;
122 auto worldSizeZ = 1.2 * calorThickness;
129 if ( ! defaultMaterial || ! absorberMaterial || ! gapMaterial ) {
131 msg <<
"Cannot retrieve materials already defined.";
132 G4Exception(
"B4DetectorConstruction::DefineVolumes()",
141 worldSizeXY/2, worldSizeXY/2, worldSizeZ/2);
164 =
new G4Box(
"Calorimeter",
165 calorSizeXY/2, calorSizeXY/2, calorThickness/2);
188 calorSizeXY/2, calorSizeXY/2, layerThickness/2);
209 calorSizeXY/2, calorSizeXY/2, absoThickness/2);
232 calorSizeXY/2, calorSizeXY/2, gapThickness/2);
255 <<
"------------------------------------------------------------" <<
G4endl
256 <<
"---> The calorimeter is " << nofLayers <<
" layers of: [ "
257 << absoThickness/
mm <<
"mm of " << absorberMaterial->GetName()
259 << gapThickness/
mm <<
"mm of " << gapMaterial->GetName() <<
" ] " <<
G4endl
260 <<
"------------------------------------------------------------" <<
G4endl;
268 simpleBoxVisAtt->SetVisibility(
true);
269 calorLV->SetVisAttributes(simpleBoxVisAtt);
293 absDetector->RegisterPrimitive(primitive);
298 absDetector->RegisterPrimitive(primitive);
308 gapDetector->RegisterPrimitive(primitive);
312 gapDetector->RegisterPrimitive(primitive);
void SetVerboseLevel(G4int verboseLevel)
virtual G4VPhysicalVolume * Construct()
virtual void ConstructSDandField()
static constexpr double mm
std::ostringstream G4ExceptionDescription
CLHEP::Hep3Vector G4ThreeVector
std::vector< ExP01TrackerHit * > a
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
int universe_mean_density
void SetVerboseLevel(G4int vl)
static G4MaterialTable * GetMaterialTable()
void SetFilter(G4VSDFilter *f)
static G4NistManager * Instance()
G4GLOB_DLL std::ostream G4cout
static constexpr double cm
Definition of the B4dDetectorConstruction class.
static constexpr double kelvin
static constexpr double cm3
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void AddNewDetector(G4VSensitiveDetector *aSD)
static G4SDManager * GetSDMpointer()
B4dDetectorConstruction()
virtual ~B4dDetectorConstruction()
static constexpr double mole
static const G4VisAttributes & GetInvisible()