20#include <TVirtualMC.h>
21#include <TVirtualMCApplication.h>
25#include <G4SystemOfUnits.hh>
46 return G4String(
"Magnetic");
48 return G4String(
"ElectroMagnetic");
50 return G4String(
"Gravity");
54 "TG4FieldParameters",
"FieldTypeName:",
"Unknown field value.");
65 return G4String(
"MagUsualEqRhs");
67 return G4String(
"MagSpinEqRhs");
69 return G4String(
"EqMagElectric");
71 return G4String(
"EqEMFieldWithSpin");
73 return G4String(
"EqEMFieldWithEDM");
75 return G4String(
"UserDefinedEq");
79 "TG4FieldParameters",
"EquationTypeName:",
"Unknown equation value.");
90 return G4String(
"BogackiShampine23");
92 return G4String(
"BogackiShampine45");
94 return G4String(
"CashKarpRKF45");
96 return G4String(
"ClassicalRK4");
98 return G4String(
"DormandPrince745");
100 return G4String(
"DormandPrinceRK56");
102 return G4String(
"DormandPrinceRK78");
104 return G4String(
"ExplicitEuler");
106 return G4String(
"ImplicitEuler");
108 return G4String(
"SimpleHeum");
110 return G4String(
"SimpleRunge");
112 return G4String(
"ConstRK4");
114 return G4String(
"ExactHelixStepper");
116 return G4String(
"HelixExplicitEuler");
118 return G4String(
"HelixHeum");
120 return G4String(
"HelixImplicitEuler");
122 return G4String(
"HelixMixedStepper");
124 return G4String(
"HelixSimpleRunge");
126 return G4String(
"NystromRK4");
128 return G4String(
"RKG3_Stepper");
130 return G4String(
"TsitourasRK45");
132 return G4String(
"UserDefinedStepper");
134 return G4String(
"RK547FEq1");
136 return G4String(
"RK547FEq2");
138 return G4String(
"RK547FEq3");
142 "TG4FieldParameters",
"StepperTypeName:",
"Unknown stepper value.");
156 "TG4FieldParameters",
"GetFieldType:",
"Unknown field name.");
173 "TG4FieldParameters",
"GetEquationType:",
"Unknown equation name.");
208 "TG4FieldParameters",
"GetStepperType:",
"Unknown stepper name.");
219 fVolumeName(volumeName),
220 fStepMinimum(fgkDefaultStepMinimum),
221 fDeltaChord(fgkDefaultDeltaChord),
222 fDeltaOneStep(fgkDefaultDeltaOneStep),
223 fDeltaIntersection(fgkDefaultDeltaIntersection),
224 fMinimumEpsilonStep(fgkDefaultMinimumEpsilonStep),
225 fMaximumEpsilonStep(fgkDefaultMaximumEpsilonStep),
256 G4cout <<
"Magnetic field parameters: " << G4endl;
258 G4cout <<
" volume name = " <<
fVolumeName << G4endl;
265 <<
" isMonopole = " << std::boolalpha <<
fIsMonopole << G4endl
266 <<
" deltaChord = " <<
fDeltaChord <<
" mm" << G4endl
Definition of the TG4FieldParametersMessenger class.
Definition of the TG4FieldParameters class.
@ kRKG3Stepper
G4RKG3_Stepper.
@ kHelixSimpleRunge
G4HelixSimpleRunge.
@ kNystromRK4
G4NystromRK4.
@ kDormandPrince745
G4DormandPrince745.
@ kCashKarpRKF45
G4CashKarpRKF45.
@ kDormandPrinceRK78
G4DormandPrinceRK78.
@ kSimpleRunge
G4SimpleRunge.
@ kHelixImplicitEuler
G4HelixImplicitEuler.
@ kUserStepper
User defined stepper.
@ kSimpleHeum
G4SimpleHeum.
@ kHelixExplicitEuler
G4HelixExplicitEuler.
@ kDormandPrinceRK56
G4DormandPrinceRK56.
@ kTsitourasRK45
G4TsitourasRK45.
@ kImplicitEuler
G4ImplicitEuler.
@ kExactHelixStepper
G4ExactHelixStepper.
@ kHelixMixedStepper
G4HelixMixedStepper.
@ kBogackiShampine45
G4BogackiShampine45.
@ kExplicitEuler
G4ExplicitEuler.
@ kBogackiShampine23
G4BogackiShampine23.
@ kClassicalRK4
G4ClassicalRK4.
@ kUserEquation
User defined equation of motion.
FieldType
The available fields in Geant4.
@ kElectroMagnetic
electromagnetic field
@ kMagnetic
magnetic field
Definition of the TG4G3Units class.
Definition of the TG4Globals class and basic container types.
Messenger class that defines commands for TG4DetConstruction.
G4double fStepMinimum
Minimum step in G4ChordFinder.
G4String fVolumeName
The name of associated volume, if local field.
G4MagIntegratorStepper * fUserStepper
User defined integrator of particle's equation of motion.
static const G4double fgkDefaultDeltaChord
Default delta chord in G4ChordFinder.
static const G4double fgkDefaultMaximumEpsilonStep
Default maximum epsilon step in global field manager.
EquationType fEquation
Type of equation of motion of a particle in a field.
G4double fMaximumEpsilonStep
Maximum epsilon step in global field manager.
void SetUserEquationOfMotion(G4EquationOfMotion *equation)
G4EquationOfMotion * fUserEquation
User defined equation of motion.
G4double fDeltaChord
Delta chord in G4ChordFinder.
FieldType fField
Type of field.
static const G4double fgkDefaultDeltaIntersection
Delta intersection in global field manager.
static G4String EquationTypeName(EquationType equation)
G4double fMinimumEpsilonStep
Minimum epsilon step in global field manager.
void SetUserStepper(G4MagIntegratorStepper *stepper)
EquationType GetEquationType() const
Return the type of equation of motion of a particle in a field.
FieldType GetFieldType() const
Return the type of field.
G4double fDeltaOneStep
Delta one step in global field manager.
TG4FieldParameters(const G4String &volumeName="")
static const G4double fgkDefaultStepMinimum
Default minimum step in G4ChordFinder.
StepperType fStepper
Type of integrator of particle's equation of motion.
static G4String StepperTypeName(StepperType stepper)
TG4FieldParametersMessenger * fMessenger
Messenger for this class.
StepperType GetStepperType() const
Return the type of integrator of particle's equation of motion.
static const G4double fgkDefaultConstDistance
Default constant distance.
G4double fConstDistance
The distance within which the field is considered constant.
static G4String FieldTypeName(FieldType field)
void PrintParameters() const
static const G4double fgkDefaultDeltaOneStep
Default delta one step in global field manager.
static const G4double fgkDefaultMinimumEpsilonStep
Default minimum epsilon step in global field manager.
G4double fDeltaIntersection
Delta intersection in global field manager.
static void Exception(const TString &className, const TString &methodName, const TString &text)