Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4FieldParameters.hh File Reference
#include "globals.hh"
#include <CLHEP/Units/SystemOfUnits.h>
#include "G4FieldParameters.icc"

Go to the source code of this file.

Classes

class  G4FieldParameters
 G4FieldParameters defines the type of equation of motion of a particle in a field and the integration method, as well as other accuracy parameters. The default values correspond to the defaults set in Geant4. More...

Namespaces

namespace  G4FieldDefaults
 G4FieldDefaults defines the magnetic field parameters defaults. The namespace defines the default values of the field paraments as constexpr so that they can be used also as the default values in the magnetic field classes constructors and other member functions.

Enumerations

enum  G4FieldType { kMagnetic , kElectroMagnetic , kGravity , kUserFieldType }
 G4FieldType defines the available fields in Geant4. More...
enum  G4EquationType {
  kEqMagnetic , kEqMagneticWithSpin , kEqElectroMagnetic , kEqEMfieldWithSpin ,
  kEqEMfieldWithEDM , kEqGravity , kEqMonopole , kEqReplate ,
  kUserEquation
}
 G4EquationType defines the types of equations of motion of a particle in a field in Geant4. More...
enum  G4StepperType {
  kCashKarpRKF45 , kClassicalRK4 , kBogackiShampine23 , kBogackiShampine45 ,
  kDoLoMcPriRK34 , kDormandPrince745 , kDormandPrinceRK56 , kDormandPrinceRK78 ,
  kExplicitEuler , kImplicitEuler , kSimpleHeum , kSimpleRunge ,
  kTsitourasRK45 , kConstRK4 , kExactHelixStepper , kHelixExplicitEuler ,
  kHelixHeum , kHelixImplicitEuler , kHelixMixedStepper , kHelixSimpleRunge ,
  kNystromRK4 , kRKG3Stepper , kUserStepper , kRK547FEq1 ,
  kRK547FEq2 , kRK547FEq3 , kTCashKarpRKF45 , kTDormandPrince45 ,
  kTMagErrorStepper , kQSStepper
}
 G4StepperType defines the available integrator of particle's equation of motion in Geant4. More...

Variables

constexpr G4double G4FieldDefaults::kMinimumStep = 0.01 * CLHEP::mm
 Default minimum step in G4ChordFinder.
constexpr G4double G4FieldDefaults::kDeltaChord = 0.25 * CLHEP::mm
 Default delta chord in G4ChordFinder.
constexpr G4double G4FieldDefaults::kDeltaOneStep = 0.01 * CLHEP::mm
 Default delta one step in global field manager.
constexpr G4double G4FieldDefaults::kDeltaIntersection = 0.001 * CLHEP::mm
 Delta intersection in global field manager.
constexpr G4double G4FieldDefaults::kMinimumEpsilonStep = 5.0e-5
 Default minimum epsilon step in global field manager.
constexpr G4double G4FieldDefaults::kMaximumEpsilonStep = 0.001
 Default maximum epsilon step in global field manager.

Enumeration Type Documentation

◆ G4EquationType

G4EquationType defines the types of equations of motion of a particle in a field in Geant4.

Enumerator
kEqMagnetic 

G4Mag_UsualEqRhs: the standard right-hand side for equation of motion.

kEqMagneticWithSpin 

G4Mag_SpinEqRhs: the equation of motion for a particle with spin in a pure magnetic field

kEqElectroMagnetic 

G4EqMagElectricField: Equation of motion in a combined electric and magnetic field

kEqEMfieldWithSpin 

G4EqEMFieldWithSpin: Equation of motion for a particle with spin in a combined electric and magnetic field

kEqEMfieldWithEDM 

G4EqEMFieldWithEDM: Equation of motion in a combined electric and magnetic field, with spin tracking for both MDM and EDM terms

kEqGravity 

G4EqGravityField: equation of motion in a gravity field (not build by G4FieldBuilder)

kEqMonopole 

G4MonopoleEq: the right-hand side of equation of motion for monopole in a combined electric and magnetic field (not build by G4FieldBuilder)

kEqReplate 

G4RepleteEofM: equation of motion in a combined field, including: magnetic, electric, gravity, and gradient B field, as well as spin tracking (not build by G4FieldBuilder)

kUserEquation 

User defined equation of motion.

Definition at line 66 of file G4FieldParameters.hh.

67{
68 kEqMagnetic, ///< G4Mag_UsualEqRhs: the standard right-hand side for
69 ///< equation of motion.
70 kEqMagneticWithSpin,///< G4Mag_SpinEqRhs: the equation of motion for a particle
71 ///< with spin
72 ///< in a pure magnetic field
73 kEqElectroMagnetic, ///< G4EqMagElectricField: Equation of motion in a combined
74 ///< electric and magnetic field
75 kEqEMfieldWithSpin, ///< G4EqEMFieldWithSpin: Equation of motion for a
76 ///< particle with spin
77 ///< in a combined electric and magnetic field
78 kEqEMfieldWithEDM, ///< G4EqEMFieldWithEDM: Equation of motion in a combined
79 ///< electric and magnetic field, with spin tracking for
80 ///< both MDM and EDM terms
81 kEqGravity, ///< G4EqGravityField: equation of motion in a gravity field
82 /// (not build by G4FieldBuilder)
83 kEqMonopole, ///< G4MonopoleEq: the right-hand side of equation of motion for monopole
84 /// in a combined electric and magnetic field
85 /// (not build by G4FieldBuilder)
86 kEqReplate, ///< G4RepleteEofM: equation of motion in a combined field, including:
87 /// magnetic, electric, gravity, and gradient B field, as well as spin tracking
88 /// (not build by G4FieldBuilder)
89 kUserEquation ///< User defined equation of motion
90};
@ kEqMagneticWithSpin
@ kUserEquation
User defined equation of motion.
@ kEqEMfieldWithSpin
@ kEqMagnetic
@ kEqGravity
@ kEqReplate
@ kEqMonopole
@ kEqElectroMagnetic
@ kEqEMfieldWithEDM

◆ G4FieldType

G4FieldType defines the available fields in Geant4.

Enumerator
kMagnetic 

magnetic field

kElectroMagnetic 

electromagnetic field

kGravity 

gravity field

kUserFieldType 

User defined field type.

Definition at line 53 of file G4FieldParameters.hh.

54{
55 kMagnetic, ///< magnetic field
56 kElectroMagnetic, ///< electromagnetic field
57 kGravity, ///< gravity field
58 kUserFieldType ///< User defined field type
59};
@ kElectroMagnetic
electromagnetic field
@ kUserFieldType
User defined field type.
@ kGravity
gravity field
@ kMagnetic
magnetic field

◆ G4StepperType

G4StepperType defines the available integrator of particle's equation of motion in Geant4.

Enumerator
kCashKarpRKF45 

G4CashKarpRKF45.

kClassicalRK4 

G4ClassicalRK4.

kBogackiShampine23 

G4BogackiShampine23.

kBogackiShampine45 

G4BogackiShampine45.

kDoLoMcPriRK34 

G4DoLoMcPriRK34.

kDormandPrince745 

G4DormandPrince745.

kDormandPrinceRK56 

G4DormandPrinceRK56.

kDormandPrinceRK78 

G4DormandPrinceRK78.

kExplicitEuler 

G4ExplicitEuler.

kImplicitEuler 

G4ImplicitEuler.

kSimpleHeum 

G4SimpleHeum.

kSimpleRunge 

G4SimpleRunge.

kTsitourasRK45 

G4TsitourasRK45.

kConstRK4 

G4ConstRK4.

kExactHelixStepper 

G4ExactHelixStepper.

kHelixExplicitEuler 

G4HelixExplicitEuler.

kHelixHeum 

G4HelixHeum.

kHelixImplicitEuler 

G4HelixImplicitEuler.

kHelixMixedStepper 

G4HelixMixedStepper.

kHelixSimpleRunge 

G4HelixSimpleRunge.

kNystromRK4 

G4NystromRK4.

kRKG3Stepper 

G4RKG3_Stepper.

kUserStepper 

User defined stepper.

kRK547FEq1 

G4RK547FEq1.

kRK547FEq2 

G4RK547FEq2.

kRK547FEq3 

G4RK547FEq3.

kTCashKarpRKF45 

G4TCashKarpRKF45.

kTDormandPrince45 

G4TDormandPrince45.

kTMagErrorStepper 

G4TMagErrorStepper.

kQSStepper 

G4QSStepper.

Definition at line 97 of file G4FieldParameters.hh.

98{
99 // steppers with equation of motion of generic type (G4EquationOfMotion)
100 kCashKarpRKF45, ///< G4CashKarpRKF45
101 kClassicalRK4, ///< G4ClassicalRK4
102 kBogackiShampine23, ///< G4BogackiShampine23
103 kBogackiShampine45, ///< G4BogackiShampine45
104 kDoLoMcPriRK34, ///< G4DoLoMcPriRK34
105 kDormandPrince745, ///< G4DormandPrince745
106 kDormandPrinceRK56, ///< G4DormandPrinceRK56
107 kDormandPrinceRK78, ///< G4DormandPrinceRK78
108 kExplicitEuler, ///< G4ExplicitEuler
109 kImplicitEuler, ///< G4ImplicitEuler
110 kSimpleHeum, ///< G4SimpleHeum
111 kSimpleRunge, ///< G4SimpleRunge
112 kTsitourasRK45, ///< G4TsitourasRK45
113
114 // steppers with equation of motion of G4Mag_UsualEqRhs type
115 kConstRK4, ///< G4ConstRK4
116 kExactHelixStepper, ///< G4ExactHelixStepper
117 kHelixExplicitEuler, ///< G4HelixExplicitEuler
118 kHelixHeum, ///< G4HelixHeum
119 kHelixImplicitEuler, ///< G4HelixImplicitEuler
120 kHelixMixedStepper, ///< G4HelixMixedStepper
121 kHelixSimpleRunge, ///< G4HelixSimpleRunge
122 kNystromRK4, ///< G4NystromRK4
123 kRKG3Stepper, ///< G4RKG3_Stepper
124 kUserStepper, ///< User defined stepper
125
126 // FSAL steppers
127 kRK547FEq1, ///< G4RK547FEq1
128 kRK547FEq2, ///< G4RK547FEq2
129 kRK547FEq3, ///< G4RK547FEq3
130
131 // Templated steppers (not build by G4FieldBuilder)
132 kTCashKarpRKF45, ///< G4TCashKarpRKF45
133 kTDormandPrince45, ///< G4TDormandPrince45
134 kTMagErrorStepper, ///< G4TMagErrorStepper
135 kQSStepper ///< G4QSStepper
136};
@ kRKG3Stepper
G4RKG3_Stepper.
@ kRK547FEq2
G4RK547FEq2.
@ kHelixSimpleRunge
G4HelixSimpleRunge.
@ kNystromRK4
G4NystromRK4.
@ kDormandPrince745
G4DormandPrince745.
@ kCashKarpRKF45
G4CashKarpRKF45.
@ kDormandPrinceRK78
G4DormandPrinceRK78.
@ kQSStepper
G4QSStepper.
@ kSimpleRunge
G4SimpleRunge.
@ kHelixImplicitEuler
G4HelixImplicitEuler.
@ kConstRK4
G4ConstRK4.
@ kUserStepper
User defined stepper.
@ kDoLoMcPriRK34
G4DoLoMcPriRK34.
@ kSimpleHeum
G4SimpleHeum.
@ kHelixHeum
G4HelixHeum.
@ kHelixExplicitEuler
G4HelixExplicitEuler.
@ kDormandPrinceRK56
G4DormandPrinceRK56.
@ kTDormandPrince45
G4TDormandPrince45.
@ kTsitourasRK45
G4TsitourasRK45.
@ kImplicitEuler
G4ImplicitEuler.
@ kExactHelixStepper
G4ExactHelixStepper.
@ kHelixMixedStepper
G4HelixMixedStepper.
@ kBogackiShampine45
G4BogackiShampine45.
@ kExplicitEuler
G4ExplicitEuler.
@ kTCashKarpRKF45
G4TCashKarpRKF45.
@ kRK547FEq1
G4RK547FEq1.
@ kRK547FEq3
G4RK547FEq3.
@ kBogackiShampine23
G4BogackiShampine23.
@ kClassicalRK4
G4ClassicalRK4.
@ kTMagErrorStepper
G4TMagErrorStepper.