1#ifndef SIMG4COMPONENTS_G4MAGNETICFIELDTOOL_H
2#define SIMG4COMPONENTS_G4MAGNETICFIELDTOOL_H
5#include "GaudiKernel/AlgTool.h"
8#include "k4Interface/ISimG4MagneticFieldTool.h"
9#include "k4Interface/IGeoSvc.h"
12#include "G4SystemOfUnits.hh"
13#include "G4MagneticField.hh"
17class G4MagIntegratorStepper;
34 const std::string& name,
35 const IInterface* parent);
48 virtual const G4MagneticField*
field()
const final;
52 G4MagIntegratorStepper*
stepper(
const std::string&, G4MagneticField*)
const;
62 Gaudi::Property<bool>
m_fieldOn{
this,
"FieldOn",
false,
"Switch to turn field off"};
66 Gaudi::Property<double>
m_minEps{
this,
"MinimumEpsilon", 0,
"Minimum epsilon (see G4 documentation)"};
70 Gaudi::Property<double>
m_maxEps{
this,
"MaximumEpsilon", 0,
"Maximum epsilon (see G4 documentation)"};
73 Gaudi::Property<double>
m_deltaChord{
this,
"DeltaChord", 0,
"Missing distance for the chord finder"};
77 Gaudi::Property<double>
m_deltaOneStep{
this,
"DeltaOneStep", 0,
"Delta(one-step)"};
80 Gaudi::Property<double>
m_maxStep{
this,
"MaximumStep", 1. * m,
"Maximum step length in field (see G4 documentation)"};
83 Gaudi::Property<double>
m_minStep{
this,
"MinimumStep", 0.01 * mm,
"Minimum step length in field (see G4 documentation)"};
86 Gaudi::Property<std::string>
m_integratorStepper{
this,
"IntegratorStepper",
"NystromRK4",
"Integrator stepper name"};