src
Contents of geometry/src
-
class DetectorConstruction_v1 : public G4VUserDetectorConstruction, public MsgService, public Gaugi::PropertyService
Defines the full detector geometry for the simulation.
This class implements the G4VUserDetectorConstruction interface to build the Lorenzetti detector (calorimeters) using Geant4 geometry primitives. It manages materials, logical volumes, and placements for both horizontal and vertical calorimeter plates.
Properties:
UseMagneticField: Toggle global magnetic field (2 Tesla).
CutOnPhi: Restrict the detector to a phi wedge (used for debugging/visualization).
Public Functions
-
DetectorConstruction_v1(std::string)
-
virtual ~DetectorConstruction_v1()
-
virtual G4VPhysicalVolume *Construct()
-
virtual void ConstructSDandField()
-
const G4VPhysicalVolume *GetAbsorberPV() const
-
const G4VPhysicalVolume *GetGapPV() const
-
void AddVolume(std::string region, int plates, std::string absorberMaterial, std::string gapMaterial, int nofLayers, double absoThickness, double gapThickness, double rMin, double rMax, double zSize, double x, double y, double z, double electronCut, double positronCut, double gammaCut, double photonCut)
Private Functions
-
void DefineMaterials()
-
G4VPhysicalVolume *DefineVolumes()
-
void CreateHorizontalPlates(G4LogicalVolume *worldLV, std::string name, G4Material *defaltMaterial, G4Material *absorberMaterial, G4Material *gapMaterial, int nofLayers, double absoThickness, double gapThickness, double calorRmin, double calorZ, const G4ThreeVector ¢er_pos, G4Region *region)
Constructs the horizontal plates of a calorimeter module (Barrel).
Creates a “sandwich” structure of absorber, gap, and absorber layers arranged radially (for cylindrical/barrel geometry).
- Parameters:
worldLV – Mother logical volume.
name – Unique name for the volume.
defaultMaterial – Envelope material (usually Vacuum).
absorberMaterial – Absorber material (e.g., Pb, Fe).
gapMaterial – Active material (e.g., LAr, Scintillator).
nofLayers – Number of repeating layers.
absoThickness – Thickness of the absorber plate.
gapThickness – Thickness of the active gap.
calorRmin – Inner radius.
calorZ – Total length in Z.
center_pos – Center position (displacement).
region – G4Region associated with this detector part.
-
void CreateVerticalPlates(G4LogicalVolume *worldLV, std::string name, G4Material *defaultMaterial, G4Material *absorberMaterial, G4Material *gapMaterial, int nofLayers, double absoThickness, double gapThickness, double calorRmin, double calorRmax, double calorZ, const G4ThreeVector ¢er_pos, G4Region *region)
-
G4Region *GetRegion(std::string name)
Private Static Attributes
- static G4ThreadLocal G4GlobalMagFieldMessenger * m_magFieldMessenger = nullptr
-
struct Volume
Public Members
-
std::string name
-
int plates
-
std::string absorberMaterial
-
std::string gapMaterial
-
int nofLayers
-
double absoThickness
-
double gapThickness
-
double rMin
-
double rMax
-
double zSize
-
double x
-
double y
-
double z
-
double electronCut
-
double positronCut
-
double gammaCut
-
double photonCut
-
std::string name
Warning
doxygenfile: Found multiple matches for file “LinkDef.h