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 &center_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 &center_pos, G4Region *region)
G4Region *GetRegion(std::string name)

Private Members

std::vector<Volume> m_volumes
bool m_checkOverlaps
bool m_useMagneticField
bool m_cutOnPhi
int m_outputLevel

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

Warning

doxygenfile: Found multiple matches for file “LinkDef.h