1#ifndef SIMG4COMPONENTS_G4CONSTANTMAGNETICFIELDTOOL_H
2#define SIMG4COMPONENTS_G4CONSTANTMAGNETICFIELDTOOL_H
5#include "GaudiKernel/AlgTool.h"
11#include "G4SystemOfUnits.hh"
15class G4MagIntegratorStepper;
47 virtual const G4MagneticField*
field()
const final;
51 G4MagIntegratorStepper*
stepper(
const std::string&, G4MagneticField*)
const;
57 Gaudi::Property<bool>
m_fieldOn{
this,
"FieldOn",
false,
"Switch to turn field off"};
60 Gaudi::Property<double>
m_minEps{
this,
"MinimumEpsilon", 0,
"Minimum epsilon (see G4 documentation)"};
63 Gaudi::Property<double>
m_maxEps{
this,
"MaximumEpsilon", 0,
"Maximum epsilon (see G4 documentation)"};
65 Gaudi::Property<double>
m_deltaChord{
this,
"DeltaChord", 0,
"Missing distance for the chord finder"};
68 Gaudi::Property<double>
m_deltaOneStep{
this,
"DeltaOneStep", 0,
"Delta(one-step)"};
70 Gaudi::Property<double>
m_maxStep{
this,
"MaximumStep", 1. * m,
"Maximum step length in field (see G4 documentation)"};
72 Gaudi::Property<double>
m_minStep{
this,
"MinimumStep", 0.01 * mm,
"Minimum step length in field (see G4 documentation)"};
74 Gaudi::Property<std::string>
m_integratorStepper{
this,
"IntegratorStepper",
"NystromRK4",
"Integrator stepper name"};
81 Gaudi::Property<double>
m_fieldComponentZ{
this,
"FieldComponentZ", -4 * tesla,
"Field Z component"};
83 Gaudi::Property<double>
m_fieldRadMax{
this,
"FieldRMax", 6 * m,
"Field max radius"};
85 Gaudi::Property<double>
m_fieldZMax{
this,
"FieldZMax", 20. * m,
"Field max Z"};
Constant magnetic field inside the cylinder.
Definition ConstantField.h:15
Conversion between units.
Definition ConstantField.h:14