Defines the detector geometry and magnetic fields for the PALLAS simulation.
More...
#include <PlasmaMLPALLASGeometryConstruction.hh>
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
- Copyright
- PALLAS Project - GEANT4 Collaboration
This class is responsible for:
- Building the world and detector components.
- Setting visualization attributes.
- Defining quadrupoles, collimators, and experimental sections.
- Handling field configurations (quadrupole gradients, dipole fields).
- Providing user control over geometry display.
◆ 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 |
◆ 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
-
LogicalVolume | Pointer to the logical volume to colorize. |
Color | Name 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: