PlasmaMLPALLAS
Loading...
Searching...
No Matches
Public Member Functions | List of all members
PlasmaMLPALLASGeometryConstruction Class Referencefinal

Defines the detector geometry and magnetic fields for the PALLAS simulation. More...

#include <PlasmaMLPALLASGeometryConstruction.hh>

Inheritance diagram for PlasmaMLPALLASGeometryConstruction:
Inheritance graph
[legend]
Collaboration diagram for PlasmaMLPALLASGeometryConstruction:
Collaboration graph
[legend]

Public Member Functions

 PlasmaMLPALLASGeometryConstruction ()
 Default constructor.
 
 ~PlasmaMLPALLASGeometryConstruction () override
 Destructor.
 
Display Control
void SetStatusDisplayGeometry (const G4int statusdisplay)
 
void SetStatusDisplayCollimators (const G4int statusdisplay)
 
void SetStatusDisplayQuadrupoles (const G4int statusdisplay)
 
const int GetStatusDisplayGeometry () const
 
const int GetStatusDisplayCollimators () const
 
const int GetStatusDisplayQuadrupoles () const
 
Geometry Parameters
void SetQ1Length (const G4double QLength)
 
void SetQ2Length (const G4double QLength)
 
void SetQ3Length (const G4double QLength)
 
void SetQ4Length (const G4double QLength)
 
void SetSourceQ1Distance (const G4double distance)
 
void SetQ1Q2Distance (const G4double distance)
 
void SetQ2Q3Distance (const G4double distance)
 
void SetQ3Q4Distance (const G4double distance)
 
void SetSourceCollimatorsDistance (const G4double distance)
 
const float GetQ1Length () const
 
const float GetQ2Length () const
 
const float GetQ3Length () const
 
const float GetQ4Length () const
 
const float GetSourceQ1Distance () const
 
const float GetQ1Q2Distance () const
 
const float GetQ2Q3Distance () const
 
const float GetQ3Q4Distance () const
 
const float GetSourceCollimatorsDistance () const
 
Magnetic Field Parameters
void SetQ1Gradient (const G4double QGrad)
 
void SetQ2Gradient (const G4double QGrad)
 
void SetQ3Gradient (const G4double QGrad)
 
void SetQ4Gradient (const G4double QGrad)
 
void SetStatusMapBField (const G4int status)
 
void SetConstantDipoleBField (const G4double BField)
 
const float GetQ1Gradient () const
 
const float GetQ2Gradient () const
 
const float GetQ3Gradient () const
 
const float GetQ4Gradient () const
 
const int GetStatusMapBField () const
 
const float GetConstantDipoleBField () const
 

Geometry Construction

void SetLogicalVolumeColor (G4LogicalVolume *LogicalVolume, G4String color)
 Set color for a given logical volume.
 
void CreateWorldAndHolder ()
 Create world and base holder.
 
void ConstructQuadrupolesVolume ()
 Build quadrupole logical volumes.
 
void ConstructQuadrupoles ()
 Place quadrupoles into the geometry.
 
void ConstructCellulePart ()
 Construct the "Cellule" part of the setup.
 
void ConstructLIFPart ()
 Construct the LIF (Laser Induced Fluorescence) section.
 
void ConstructSection1Part ()
 Construct Section 1.
 
void ConstructSection2Part ()
 Construct Section 2.
 
void ConstructSection3Part ()
 Construct Section 3.
 
void ConstructSection4Part ()
 Construct Section 4.
 
void ConstructCollimators ()
 Construct all collimators.
 
void ConstructSection4DumpPart ()
 Construct dump section in Section 4.
 
void ConstructFullPALLASGeometry ()
 Build the full detailed PALLAS geometry.
 
void ConstructSimplifiedPALLASGeometry ()
 Build a simplified version of the PALLAS geometry.
 
void ConstructSDandField () override
 Construct sensitive detectors and magnetic fields.
 
G4VPhysicalVolume * Construct () override
 Construct method required by Geant4 kernel.
 
static void Print ()
 Print geometry parameters.
 

Detailed Description

Defines the detector geometry and magnetic fields for the PALLAS simulation.

Author
Arnaud HUBER huber.nosp@m.@lp2.nosp@m.ib.in.nosp@m.2p3..nosp@m.fr - Alexei SYTOV sytov.nosp@m.@inf.nosp@m.n.it
Date
2025

This class is responsible for:

Constructor & Destructor Documentation

◆ PlasmaMLPALLASGeometryConstruction()

PlasmaMLPALLASGeometryConstruction::PlasmaMLPALLASGeometryConstruction ( )

Default constructor.

Constructor for PlasmaMLPALLASGeometryConstruction.

Initializes the base geometry and attaches the geometry messenger for interactive user control via macro commands.

◆ ~PlasmaMLPALLASGeometryConstruction()

PlasmaMLPALLASGeometryConstruction::~PlasmaMLPALLASGeometryConstruction ( )
overridedefault

Destructor.

Destructor for PlasmaMLPALLASGeometryConstruction.

Member Function Documentation

◆ Construct()

G4VPhysicalVolume * PlasmaMLPALLASGeometryConstruction::Construct ( )
override

Construct method required by Geant4 kernel.

Construct the full detector geometry for the simulation.

This method initializes and builds all the physical volumes required for the simulation. It cleans up any previously defined geometry, applies common rotation matrices, and constructs the detector components according to display flags.

Steps performed:

  • Clean existing geometry and volume stores to avoid duplication.
  • Define common rotation matrices used for detector components.
  • Create the world volume and geometry holder.
  • Construct quadrupoles volume.
  • Build either the full or simplified PALLAS geometry depending on configuration flags.
  • Optionally construct collimators and quadrupoles if enabled.
  • Return the fully initialized world volume.
Returns
Pointer to the top-level physical volume (PhysicalWorld) containing the entire detector setup.

Create the world and main holder volume

Construct quadrupoles container volume

Choose between full or simplified PALLAS geometry

Optionally construct collimators

Optionally construct quadrupoles

◆ ConstructCellulePart()

void PlasmaMLPALLASGeometryConstruction::ConstructCellulePart ( )

Construct the "Cellule" part of the setup.

Construct the cell assembly component.

Loads a GDML model representing two connected plasma cells and places it inside the holder volume.

◆ ConstructCollimators()

void PlasmaMLPALLASGeometryConstruction::ConstructCollimators ( )

Construct all collimators.

Construct the Collimators part.

Loads GDML models for section1 and places them inside the holder volume.

◆ ConstructFullPALLASGeometry()

void PlasmaMLPALLASGeometryConstruction::ConstructFullPALLASGeometry ( )

Build the full detailed PALLAS geometry.

Construct the FULL PALLAS Geometry (mostly for VISUALIZATION !!!).

Call of the previous construction function.

◆ ConstructLIFPart()

void PlasmaMLPALLASGeometryConstruction::ConstructLIFPart ( )

Construct the LIF (Laser Induced Fluorescence) section.

Construct the LIF (Laser-Induced Fluorescence) diagnostic components.

Loads GDML models for optical diagnostics (windows, cross, breadboards, etc.) and places them inside the holder volume.

◆ ConstructQuadrupoles()

void PlasmaMLPALLASGeometryConstruction::ConstructQuadrupoles ( )

Place quadrupoles into the geometry.

Construct realistic quadrupoles from GDML models.

Loads quadrupole geometries from GDML files (CAD models) and places them in the beamline.

◆ ConstructQuadrupolesVolume()

void PlasmaMLPALLASGeometryConstruction::ConstructQuadrupolesVolume ( )

Build quadrupole logical volumes.

Construct quadrupole volumes with simplified shapes.

Creates approximate quadrupole representations using parameterized boxes and places them in the beamline.

◆ ConstructSDandField()

void PlasmaMLPALLASGeometryConstruction::ConstructSDandField ( )
override

Construct sensitive detectors and magnetic fields.

Construct sensitive detectors and define the magnetic field for the geometry.

This method configures the magnetic field used in the simulation. It sets dipole and quadrupole field components, assigns quadrupole lengths and drift distances, and attaches the field manager to the geometry's logical volume hierarchy.

Steps performed:

  • Create and configure a custom magnetic field (PlasmaMLPALLASMagneticField).
  • Set dipole field and map field status.
  • Define quadrupole gradients, lengths, and drift distances.
  • Initialize the G4FieldManager and attach a chord finder with a Runge–Kutta 4th order stepper.
  • Apply the magnetic field manager to all daughter logical volumes.
Note
The magnetic field configuration directly affects particle transport and beam optics in the Geant4 simulation.

Set constant dipole magnetic field

Enable or disable field map usage

Configure quadrupole gradients (Tesla = 0.001 * MV * ns / mm²)

Configure quadrupole lengths

Configure quadrupole drift distances

Create a chord finder with stepper precision of 1 µm

◆ ConstructSection1Part()

void PlasmaMLPALLASGeometryConstruction::ConstructSection1Part ( )

Construct Section 1.

Construct the Section1 part (ISO chamber between Q1 & Q2).

Loads GDML models for section1 and places them inside the holder volume.

!!!! Problem with ISO Chamber GDML file !!!!!

◆ ConstructSection2Part()

void PlasmaMLPALLASGeometryConstruction::ConstructSection2Part ( )

Construct Section 2.

Construct the Section2 part (ASMRemovalChamber, BreadboardRemovalChamber, ChassisReùovalChamber and ISOTubes).

Loads GDML models for section2 and places them inside the holder volume.

◆ ConstructSection3Part()

void PlasmaMLPALLASGeometryConstruction::ConstructSection3Part ( )

Construct Section 3.

Construct the Section3 part (ASMPoutre & YAGStation).

Loads GDML models for section3 and places them inside the holder volume.

◆ ConstructSection4DumpPart()

void PlasmaMLPALLASGeometryConstruction::ConstructSection4DumpPart ( )

Construct dump section in Section 4.

Construct the Section4Dump part (Shieldings, chassis & DiagsChamber).

Loads GDML models for section4 dump and places them inside the holder volume.

◆ ConstructSection4Part()

void PlasmaMLPALLASGeometryConstruction::ConstructSection4Part ( )

Construct Section 4.

Construct the Section4 part (DipoleChamber, Dipole & 2 YAGs).

Loads GDML models for section4 and places them inside the holder volume.

◆ ConstructSimplifiedPALLASGeometry()

void PlasmaMLPALLASGeometryConstruction::ConstructSimplifiedPALLASGeometry ( )

Build a simplified version of the PALLAS geometry.

Construct the Simplified PALLAS Geometry (mostly for PRODUCTION !!!).

Call only Section4 because other parts can induce stuck Track due to GDML files reconstruction from CAD files.

◆ CreateWorldAndHolder()

void PlasmaMLPALLASGeometryConstruction::CreateWorldAndHolder ( )

Create world and base holder.

Create the world and holder volumes.

Defines the simulation world as a large vacuum box and places a holder volume inside it for containing components.

◆ GetConstantDipoleBField()

const float PlasmaMLPALLASGeometryConstruction::GetConstantDipoleBField ( ) const
inline

◆ GetQ1Gradient()

const float PlasmaMLPALLASGeometryConstruction::GetQ1Gradient ( ) const
inline

◆ GetQ1Length()

const float PlasmaMLPALLASGeometryConstruction::GetQ1Length ( ) const
inline

◆ GetQ1Q2Distance()

const float PlasmaMLPALLASGeometryConstruction::GetQ1Q2Distance ( ) const
inline

◆ GetQ2Gradient()

const float PlasmaMLPALLASGeometryConstruction::GetQ2Gradient ( ) const
inline

◆ GetQ2Length()

const float PlasmaMLPALLASGeometryConstruction::GetQ2Length ( ) const
inline

◆ GetQ2Q3Distance()

const float PlasmaMLPALLASGeometryConstruction::GetQ2Q3Distance ( ) const
inline

◆ GetQ3Gradient()

const float PlasmaMLPALLASGeometryConstruction::GetQ3Gradient ( ) const
inline

◆ GetQ3Length()

const float PlasmaMLPALLASGeometryConstruction::GetQ3Length ( ) const
inline

◆ GetQ3Q4Distance()

const float PlasmaMLPALLASGeometryConstruction::GetQ3Q4Distance ( ) const
inline

◆ GetQ4Gradient()

const float PlasmaMLPALLASGeometryConstruction::GetQ4Gradient ( ) const
inline

◆ GetQ4Length()

const float PlasmaMLPALLASGeometryConstruction::GetQ4Length ( ) const
inline

◆ GetSourceCollimatorsDistance()

const float PlasmaMLPALLASGeometryConstruction::GetSourceCollimatorsDistance ( ) const
inline

◆ GetSourceQ1Distance()

const float PlasmaMLPALLASGeometryConstruction::GetSourceQ1Distance ( ) const
inline

◆ GetStatusDisplayCollimators()

const int PlasmaMLPALLASGeometryConstruction::GetStatusDisplayCollimators ( ) const
inline

◆ GetStatusDisplayGeometry()

const int PlasmaMLPALLASGeometryConstruction::GetStatusDisplayGeometry ( ) const
inline

◆ GetStatusDisplayQuadrupoles()

const int PlasmaMLPALLASGeometryConstruction::GetStatusDisplayQuadrupoles ( ) const
inline

◆ GetStatusMapBField()

const int PlasmaMLPALLASGeometryConstruction::GetStatusMapBField ( ) const
inline

◆ Print()

void PlasmaMLPALLASGeometryConstruction::Print ( )
static

Print geometry parameters.

Print a summary of the current geometry setup.

◆ SetConstantDipoleBField()

void PlasmaMLPALLASGeometryConstruction::SetConstantDipoleBField ( const G4double  BField)
inline

◆ SetLogicalVolumeColor()

void PlasmaMLPALLASGeometryConstruction::SetLogicalVolumeColor ( G4LogicalVolume *  LogicalVolume,
G4String  Color 
)

Set color for a given logical volume.

Assign a visualization color to a logical volume.

Predefined colors can be applied to logical volumes for debugging or visualization.

Parameters
LogicalVolumePointer to the logical volume to colorize.
ColorName of the color (e.g. "red", "green", "gray").

◆ SetQ1Gradient()

void PlasmaMLPALLASGeometryConstruction::SetQ1Gradient ( const G4double  QGrad)
inline

◆ SetQ1Length()

void PlasmaMLPALLASGeometryConstruction::SetQ1Length ( const G4double  QLength)
inline

◆ SetQ1Q2Distance()

void PlasmaMLPALLASGeometryConstruction::SetQ1Q2Distance ( const G4double  distance)
inline

◆ SetQ2Gradient()

void PlasmaMLPALLASGeometryConstruction::SetQ2Gradient ( const G4double  QGrad)
inline

◆ SetQ2Length()

void PlasmaMLPALLASGeometryConstruction::SetQ2Length ( const G4double  QLength)
inline

◆ SetQ2Q3Distance()

void PlasmaMLPALLASGeometryConstruction::SetQ2Q3Distance ( const G4double  distance)
inline

◆ SetQ3Gradient()

void PlasmaMLPALLASGeometryConstruction::SetQ3Gradient ( const G4double  QGrad)
inline

◆ SetQ3Length()

void PlasmaMLPALLASGeometryConstruction::SetQ3Length ( const G4double  QLength)
inline

◆ SetQ3Q4Distance()

void PlasmaMLPALLASGeometryConstruction::SetQ3Q4Distance ( const G4double  distance)
inline

◆ SetQ4Gradient()

void PlasmaMLPALLASGeometryConstruction::SetQ4Gradient ( const G4double  QGrad)
inline

◆ SetQ4Length()

void PlasmaMLPALLASGeometryConstruction::SetQ4Length ( const G4double  QLength)
inline

◆ SetSourceCollimatorsDistance()

void PlasmaMLPALLASGeometryConstruction::SetSourceCollimatorsDistance ( const G4double  distance)
inline

◆ SetSourceQ1Distance()

void PlasmaMLPALLASGeometryConstruction::SetSourceQ1Distance ( const G4double  distance)
inline

◆ SetStatusDisplayCollimators()

void PlasmaMLPALLASGeometryConstruction::SetStatusDisplayCollimators ( const G4int  statusdisplay)
inline

◆ SetStatusDisplayGeometry()

void PlasmaMLPALLASGeometryConstruction::SetStatusDisplayGeometry ( const G4int  statusdisplay)
inline

◆ SetStatusDisplayQuadrupoles()

void PlasmaMLPALLASGeometryConstruction::SetStatusDisplayQuadrupoles ( const G4int  statusdisplay)
inline

◆ SetStatusMapBField()

void PlasmaMLPALLASGeometryConstruction::SetStatusMapBField ( const G4int  status)
inline

The documentation for this class was generated from the following files: