#include "G4AtlasTools/G4FieldManagerToolBase.h"
|
ServiceHandle< IG4FieldSvc > | m_fieldSvc {this, "FieldSvc", "G4FieldSvc", "Service providing a G4MagneticField"} |
| Handle to the G4 field service. More...
|
|
Gaudi::Property< bool > | m_fieldOn {this, "FieldOn", true, "Toggles field on/off"} |
|
Gaudi::Property< std::string > | m_integratorStepper {this, "IntegratorStepper", "AtlasRK4", "Integrator stepper name"} |
| The type of stepper to use. More...
|
|
ToolHandle< IEquationOfMotionTool > | m_equationOfMotion {this, "EquationOfMotion", "", ""} |
| The type of equation of motion to use. More...
|
|
Tool base class for implementation/retrieval of a G4FieldManager
- Author
- Andrea Dell'Acqua
- Date
- 2015-11-17
Definition at line 33 of file G4FieldManagerToolBase.h.
◆ G4FieldManagerToolBase()
G4FieldManagerToolBase::G4FieldManagerToolBase |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~G4FieldManagerToolBase()
virtual G4FieldManagerToolBase::~G4FieldManagerToolBase |
( |
| ) |
|
|
inlinevirtual |
◆ getStepper()
G4MagIntegratorStepper * G4FieldManagerToolBase::getStepper |
( |
const std::string & |
stepperType, |
|
|
G4MagneticField * |
field |
|
) |
| const |
|
protected |
Common method to construct a stepper of requested type.
Definition at line 190 of file G4FieldManagerToolBase.cxx.
193 G4Mag_EqRhs* eqRhs(
nullptr);
197 ATH_MSG_INFO(
"Configuring alternative equation of motion using " <<
203 eqRhs =
new G4Mag_UsualEqRhs(
field);
210 if (
name==
"HelixImplicitEuler")
return new G4HelixImplicitEuler(eqRhs);
211 else if (
name==
"HelixSimpleRunge")
return new G4HelixSimpleRunge(eqRhs);
212 else if (
name==
"HelixExplicitEuler")
return new G4HelixExplicitEuler(eqRhs);
213 else if (
name==
"NystromRK4")
return new G4NystromRK4(eqRhs);
214 else if (
name==
"ClassicalRK4")
return new G4ClassicalRK4(eqRhs);
215 else if (
name==
"AtlasRK4")
return new G4AtlasRK4(eqRhs);
216 else if (
name==
"BogackiShampine23")
return new G4BogackiShampine23(eqRhs);
217 else if (
name==
"BogackiShampine45")
return new G4BogackiShampine45(eqRhs);
218 else if (
name==
"CashKarpRKF45")
return new G4CashKarpRKF45(eqRhs);
219 else if (
name==
"DoLoMcPriRK34")
return new G4DoLoMcPriRK34(eqRhs);
220 else if (
name==
"DormandPrince745")
return new G4DormandPrince745(eqRhs);
221 else if (
name==
"DormandPrinceRK56")
return new G4DormandPrinceRK56(eqRhs);
222 else if (
name==
"DormandPrinceRK78")
return new G4DormandPrinceRK78(eqRhs);
223 else if (
name==
"RK547FEq1")
return new G4RK547FEq1(eqRhs);
224 else if (
name==
"RK547FEq2")
return new G4RK547FEq2(eqRhs);
225 else if (
name==
"RK547FEq3")
return new G4RK547FEq3(eqRhs);
226 else if (
name==
"RKG3_Stepper")
return new G4RKG3_Stepper(eqRhs);
227 else if (
name==
"TsitourasRK45")
return new G4TsitourasRK45(eqRhs);
230 return new G4NystromRK4(eqRhs);
◆ initialize()
StatusCode G4FieldManagerToolBase::initialize |
( |
| ) |
|
|
overridevirtual |
◆ setFieldParameters()
StatusCode G4FieldManagerToolBase::setFieldParameters |
( |
G4FieldManager * |
fieldMgr | ) |
const |
|
protected |
Common method to apply configuredfield parameters.
Definition at line 238 of file G4FieldManagerToolBase.cxx.
247 auto minEps_actual =
m_minEps > 0 ?
m_minEps.value() : fieldMgr->GetMinimumEpsilonStep();
248 auto maxEps_actual =
m_maxEps > 0 ?
m_maxEps.value() : fieldMgr->GetMaximumEpsilonStep();
252 ATH_MSG_ERROR(
"setFieldParameters received NULL field mgr!");
253 return StatusCode::FAILURE;
255 return StatusCode::SUCCESS;
◆ m_deltaChord
Gaudi::Property<double> G4FieldManagerToolBase::m_deltaChord {this, "DeltaChord", -1.0, "Missing distance for the chord finder"} |
|
protected |
◆ m_deltaIntersection
Gaudi::Property<double> G4FieldManagerToolBase::m_deltaIntersection {this, "DeltaIntersection", -1.0, "Accuracy for boundary intersection"} |
|
protected |
◆ m_deltaOneStep
Gaudi::Property<double> G4FieldManagerToolBase::m_deltaOneStep {this, "DeltaOneStep", -1.0, "Delta(one-step)"} |
|
protected |
◆ m_equationOfMotion
ToolHandle<IEquationOfMotionTool> G4FieldManagerToolBase::m_equationOfMotion {this, "EquationOfMotion", "", ""} |
|
protected |
◆ m_fieldOn
Gaudi::Property<bool> G4FieldManagerToolBase::m_fieldOn {this, "FieldOn", true, "Toggles field on/off"} |
|
protected |
◆ m_fieldSvc
ServiceHandle<IG4FieldSvc> G4FieldManagerToolBase::m_fieldSvc {this, "FieldSvc", "G4FieldSvc", "Service providing a G4MagneticField"} |
|
protected |
◆ m_integratorStepper
Gaudi::Property<std::string> G4FieldManagerToolBase::m_integratorStepper {this, "IntegratorStepper", "AtlasRK4", "Integrator stepper name"} |
|
protected |
◆ m_maxEps
Gaudi::Property<double> G4FieldManagerToolBase::m_maxEps {this, "MaximumEpsilonStep", -1.0, "Maximum epsilon (see G4 documentation)"} |
|
protected |
◆ m_maxStep
Gaudi::Property<double> G4FieldManagerToolBase::m_maxStep {this, "MaximumStep", -1.0, "Maximum step length in field (see G4 documentation)"} |
|
protected |
◆ m_minEps
Gaudi::Property<double> G4FieldManagerToolBase::m_minEps {this, "MinimumEpsilonStep", -1.0, "Minimum epsilon (see G4 documentation)"} |
|
protected |
◆ m_minStep
Gaudi::Property<double> G4FieldManagerToolBase::m_minStep {this, "MinimumStep",1e-2, "Minimum step length in field (see G4 documentation)"} |
|
protected |
The documentation for this class was generated from the following files: