k4SimGeant4
Loading...
Searching...
No Matches
SimG4MagneticFieldTool Class Reference

SimG4MagneticFieldTool.h. More...

#include <SimG4Components/src/SimG4MagneticFieldTool.h>

Inheritance diagram for SimG4MagneticFieldTool:
Collaboration diagram for SimG4MagneticFieldTool:

Public Member Functions

 SimG4MagneticFieldTool (const std::string &type, const std::string &name, const IInterface *parent)
 Standard constructor.
 
virtual ~SimG4MagneticFieldTool ()
 Destructor.
 
virtual StatusCode initialize () final
 Initialize method.
 
virtual StatusCode finalize () final
 Finalize method.
 
virtual const G4MagneticField * field () const final
 Get the magnetic field.
 
G4MagIntegratorStepper * stepper (const std::string &, G4MagneticField *) const
 Get the stepper.
 
- Public Member Functions inherited from ISimG4MagneticFieldTool
 DeclareInterfaceID (ISimG4MagneticFieldTool, 1, 0)
 

Private Attributes

ServiceHandle< IGeoSvc > m_geoSvc
 Pointer to the geometry service.
 
G4MagneticField * m_field = nullptr
 Pointer to the actual Geant4 magnetic field.
 
Gaudi::Property< bool > m_fieldOn {this, "FieldOn", false, "Switch to turn field off"}
 Switch to turn field on or off (default is off). Set with property FieldOn.
 
Gaudi::Property< double > m_minEps {this, "MinimumEpsilon", 0, "Minimum epsilon (see G4 documentation)"}
 Minimum epsilon (relative error of position / momentum, see G4 doc for more details).
 
Gaudi::Property< double > m_maxEps {this, "MaximumEpsilon", 0, "Maximum epsilon (see G4 documentation)"}
 Maximum epsilon (relative error of position / momentum, see G4 doc for more details).
 
Gaudi::Property< double > m_deltaChord {this, "DeltaChord", 0, "Missing distance for the chord finder"}
 This parameter governs accuracy of volume intersection, see G4 doc for more details. Set with property DeltaChord.
 
Gaudi::Property< double > m_deltaOneStep {this, "DeltaOneStep", 0, "Delta(one-step)"}
 This parameter is roughly the position error which is acceptable in an integration step, see G4 doc for details.
 
Gaudi::Property< double > m_maxStep {this, "MaximumStep", 1. * m, "Maximum step length in field (see G4 documentation)"}
 Upper limit of the step size, see G4 doc for more details. Set with property MaximumStep.
 
Gaudi::Property< double > m_minStep {this, "MinimumStep", 0.01 * mm, "Minimum step length in field (see G4 documentation)"}
 Lower limit of the step size, see G4 doc for more details. Set with property MinimumStep.
 
Gaudi::Property< std::string > m_integratorStepper {this, "IntegratorStepper", "NystromRK4", "Integrator stepper name"}
 Name of the integration stepper, defaults to NystromRK4.
 

Detailed Description

SimG4MagneticFieldTool.h.

Implementation of ISimG4MagneticFieldTool that propagates magnetic field defined in the DD4hep compact file.

Author
Juraj Smiesko
Date
2023-06-21

Constructor & Destructor Documentation

◆ SimG4MagneticFieldTool()

SimG4MagneticFieldTool::SimG4MagneticFieldTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Standard constructor.

◆ ~SimG4MagneticFieldTool()

SimG4MagneticFieldTool::~SimG4MagneticFieldTool ( )
virtual

Destructor.

Member Function Documentation

◆ field()

const G4MagneticField * SimG4MagneticFieldTool::field ( ) const
finalvirtual

Get the magnetic field.

Returns
pointer to G4MagneticField

Implements ISimG4MagneticFieldTool.

◆ finalize()

StatusCode SimG4MagneticFieldTool::finalize ( )
finalvirtual

Finalize method.

◆ initialize()

StatusCode SimG4MagneticFieldTool::initialize ( )
finalvirtual

Initialize method.

◆ stepper()

G4MagIntegratorStepper * SimG4MagneticFieldTool::stepper ( const std::string & name,
G4MagneticField * field ) const

Get the stepper.

Returns
pointer to G4MagIntegratorStepper (ownership is transferred to the caller)

Member Data Documentation

◆ m_deltaChord

Gaudi::Property<double> SimG4MagneticFieldTool::m_deltaChord {this, "DeltaChord", 0, "Missing distance for the chord finder"}
private

This parameter governs accuracy of volume intersection, see G4 doc for more details. Set with property DeltaChord.

◆ m_deltaOneStep

Gaudi::Property<double> SimG4MagneticFieldTool::m_deltaOneStep {this, "DeltaOneStep", 0, "Delta(one-step)"}
private

This parameter is roughly the position error which is acceptable in an integration step, see G4 doc for details.

Set with property DeltaOneStep

◆ m_field

G4MagneticField* SimG4MagneticFieldTool::m_field = nullptr
private

Pointer to the actual Geant4 magnetic field.

◆ m_fieldOn

Gaudi::Property<bool> SimG4MagneticFieldTool::m_fieldOn {this, "FieldOn", false, "Switch to turn field off"}
private

Switch to turn field on or off (default is off). Set with property FieldOn.

◆ m_geoSvc

ServiceHandle<IGeoSvc> SimG4MagneticFieldTool::m_geoSvc
private

Pointer to the geometry service.

◆ m_integratorStepper

Gaudi::Property<std::string> SimG4MagneticFieldTool::m_integratorStepper {this, "IntegratorStepper", "NystromRK4", "Integrator stepper name"}
private

Name of the integration stepper, defaults to NystromRK4.

◆ m_maxEps

Gaudi::Property<double> SimG4MagneticFieldTool::m_maxEps {this, "MaximumEpsilon", 0, "Maximum epsilon (see G4 documentation)"}
private

Maximum epsilon (relative error of position / momentum, see G4 doc for more details).

Set with property MaximumEpsilon

◆ m_maxStep

Gaudi::Property<double> SimG4MagneticFieldTool::m_maxStep {this, "MaximumStep", 1. * m, "Maximum step length in field (see G4 documentation)"}
private

Upper limit of the step size, see G4 doc for more details. Set with property MaximumStep.

◆ m_minEps

Gaudi::Property<double> SimG4MagneticFieldTool::m_minEps {this, "MinimumEpsilon", 0, "Minimum epsilon (see G4 documentation)"}
private

Minimum epsilon (relative error of position / momentum, see G4 doc for more details).

Set with property MinimumEpsilon

◆ m_minStep

Gaudi::Property<double> SimG4MagneticFieldTool::m_minStep {this, "MinimumStep", 0.01 * mm, "Minimum step length in field (see G4 documentation)"}
private

Lower limit of the step size, see G4 doc for more details. Set with property MinimumStep.


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