38 #include <Geant4/G4CashKarpRKF45.hh>
39 #include <Geant4/G4ChordFinder.hh>
40 #include <Geant4/G4ClassicalRK4.hh>
41 #include <Geant4/G4ExplicitEuler.hh>
42 #include <Geant4/G4FieldManager.hh>
43 #include <Geant4/G4ImplicitEuler.hh>
44 #include <Geant4/G4MagIntegratorDriver.hh>
45 #include <Geant4/G4MagIntegratorStepper.hh>
46 #include <Geant4/G4Mag_UsualEqRhs.hh>
47 #include <Geant4/G4MagneticField.hh>
48 #include <Geant4/G4SimpleHeum.hh>
49 #include <Geant4/G4SimpleRunge.hh>
50 #include <Geant4/G4SystemOfUnits.hh>
51 #include <Geant4/G4ThreeVector.hh>
52 #include <Geant4/G4TransportationManager.hh>
53 #include <Geant4/G4Types.hh>
54 #include <Geant4/G4UniformMagField.hh>
77 double point[4] = {0, 0, 0, 0};
210 message <<
"Stepper in use: G4ExplicitEuler";
214 message <<
"Stepper in use: G4ImplicitEuler";
218 message <<
"Stepper in use: G4SimpleRunge";
222 message <<
"Stepper in use: G4SimpleHeum";
226 message <<
"Stepper in use: G4ClassicalRK4 (default)";
230 message <<
"Stepper in use: G4CashKarpRKF45";
234 message <<
"G4RKG3_Stepper is not currently working for Magnetic Field";
238 message <<
"G4HelixExplicitEuler is not valid for Magnetic Field";
242 message <<
"G4HelixImplicitEuler is not valid for Magnetic Field";
246 message <<
"G4HelixSimpleRunge is not valid for Magnetic Field";
254 std::cout <<
" ---------- G4TBMagneticFieldSetup::SetStepper() -----------" << std::endl;
255 std::cout <<
" " << message.str() << std::endl;
256 std::cout <<
" Minimum step size: " <<
fMinStep /
mm <<
" mm" << std::endl;
257 std::cout <<
" -----------------------------------------------------------" << std::endl;
262 std::cout <<
"no stepper set, edxiting now" << std::endl;
276 G4ThreeVector fieldVector(0.0, 0.0, fieldValue);
291 if (fieldVector != G4ThreeVector(0., 0., 0.))
294 fEMfield =
new G4UniformMagField(fieldVector);
300 fieldMgr->SetDetectorField(
fEMfield);
309 fieldMgr->SetDetectorField(
fEMfield);
319 return G4TransportationManager::GetTransportationManager()->GetFieldManager();