4 #include "G4BogackiShampine45.hh"
5 #include "G4CashKarpRKF45.hh"
6 #include "G4TCashKarpRKF45.hh"
7 #include "G4ClassicalRK4.hh"
8 #include "G4TClassicalRK4.hh"
9 #include "G4DormandPrince745.hh"
10 #include "G4TDormandPrince45.hh"
11 #include "G4HelixExplicitEuler.hh"
12 #include "G4HelixHeum.hh"
13 #include "G4HelixImplicitEuler.hh"
14 #include "G4HelixSimpleRunge.hh"
15 #include "G4ImplicitEuler.hh"
16 #include "G4Mag_UsualEqRhs.hh"
17 #include "G4TMagFieldEquation.hh"
18 #include "G4NystromRK4.hh"
19 #include "G4SimpleHeum.hh"
20 #include "G4SimpleRunge.hh"
21 #include "G4TsitourasRK45.hh"
24 : G4MagIntegratorStepper(eq, 6), theEquation(eq), theDelta(del) {
39 if (ss ==
"G4ClassicalRK4")
41 else if (ss ==
"G4TClassicalRK4")
43 else if (ss ==
"G4NystromRK4")
45 else if (ss ==
"G4SimpleRunge")
47 else if (ss ==
"G4SimpleHeum")
49 else if (ss ==
"G4CashKarpRKF45")
51 else if (ss ==
"G4TCashKarpRKF45")
53 else if (ss ==
"G4DormandPrince745")
55 else if (ss ==
"G4TDormandPrince45")
57 else if (ss ==
"G4BogackiShampine45")
59 else if (ss ==
"G4TsitourasRK45")
61 else if (ss ==
"G4ImplicitEuler")
63 else if (ss ==
"G4HelixExplicitEuler")
65 else if (ss ==
"G4HelixImplicitEuler")
67 else if (ss ==
"G4HelixSimpleRunge")
69 else if (ss ==
"G4HelixHeum")
73 <<
" FieldStepper <" << ss <<
"> is not known, defaulting to G4ClassicalRK4 ";
76 edm::LogVerbatim(
"SimG4CoreMagneticField") <<
"### FieldStepper: <" << ss <<
">";
Log< level::Info, true > LogVerbatim
G4int IntegratorOrder() const override
G4double DistChord() const override
FieldStepper(G4Mag_UsualEqRhs *eq, double del, const std::string &name)
G4MagIntegratorStepper * theStepper
void selectStepper(const std::string &)
G4Mag_UsualEqRhs * theEquation
Log< level::Warning, false > LogWarning
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
void Stepper(const G4double y[], const G4double dydx[], G4double h, G4double yout[], G4double yerr[]) override