26#ifndef PAR04DETECTORCONSTRUCTION_H
27#define PAR04DETECTORCONSTRUCTION_H
29#include <CLHEP/Units/SystemOfUnits.h>
35#include "G4Material.hh"
36#include "G4SystemOfUnits.hh"
37#include "G4ThreeVector.hh"
38#include "G4VUserDetectorConstruction.hh"
void SetMeshSizeOfCells(G4ThreeVector aNb)
Set size of Mesh cells in cylindrical coordinates (r, phi, z)
G4double GetLength() const
Get length of the cylindrical detector (along z-axis)
void SetAbsorberSensitivity(const std::size_t aLayer, const G4bool aSensitivity)
Set sensitivity of the layer.
void SetLength(G4double aLength)
Set length radius of the cylindrical detector.
Par04DetectorMessenger * fDetectorMessenger
Messenger that allows to modify geometry.
virtual G4VPhysicalVolume * Construct() final
Par04DetectorConstruction()
G4double fDetectorInnerRadius
Inner radius of the cylindrical detector.
G4ThreeVector GetMeshSizeOfCells() const
Get size of Mesh cells in cylindrical coordinates (r, phi, z)
void SetMeshSizeOfCells(std::size_t aIndex, G4double aNb)
Set size of Mesh cells in cylindrical coordinates along one of the axis.
G4ThreeVector GetMeshNbOfCells() const
Get number of Mesh cells in cylindrical coordinates (r, phi, z)
void SetMeshNbOfCells(G4ThreeVector aNb)
Set number of Mesh cells in cylindrical coordinates (r, phi, z)
G4String GetAbsorberMaterial(const std::size_t aLayer) const
Get name of the material of the layer.
G4double GetAbsorberThickness(const std::size_t aLayer) const
Get thickness of the layer.
virtual ~Par04DetectorConstruction()
virtual void ConstructSDandField() final
G4ThreeVector fMeshSizeOfCells
Mesh size of cells (dr, dphi, dz).
std::array< G4bool, 2 > fAbsorberSensitivity
Sensitivity of the layers.
std::vector< G4LogicalVolume * > fLayerLogical
Logical volume(s) of the sensitive absorbers.
void SetAbsorberMaterial(const std::size_t aLayer, const G4String &aMaterial)
Set material of the layer (from NIST materials)
std::array< G4double, 2 > fAbsorberThickness
Thickness(es) of the layers.
void Print() const
Print detector information.
std::array< G4Material *, 2 > fAbsorberMaterial
Material(s) of the layers.
void SetInnerRadius(G4double aInnerRadius)
Set inner radius of the cylindrical detector.
G4int GetNbOfLayers() const
Get number of layers.
G4int fNbOfLayers
Number of layers = slices along z axis.
void SetNbOfLayers(G4int aNumber)
Set number of layers.
G4double GetInnerRadius() const
Get inner radius of the cylindrical detector.
G4ThreeVector fMeshNbOfCells
Mesh number of cells (Nr, Nphi, Nz)
G4double fDetectorLength
Length of the cylindrical detector (along z axis)
void SetAbsorberThickness(const std::size_t aLayer, const G4double aThickness)
Set thickness of the layer.
G4bool GetAbsorberSensitivity(const std::size_t aLayer) const
Get sensitivity of the layer.
void SetMeshNbOfCells(std::size_t aIndex, G4double aNb)
Set number of Mesh cells in cylindrical coordinates along one of the axis.