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>
83 double point[4] = {0, 0, 0, 0};
210 std::stringstream message;
216 message <<
"Stepper in use: G4ExplicitEuler";
220 message <<
"Stepper in use: G4ImplicitEuler";
224 message <<
"Stepper in use: G4SimpleRunge";
228 message <<
"Stepper in use: G4SimpleHeum";
232 message <<
"Stepper in use: G4ClassicalRK4 (default)";
236 message <<
"Stepper in use: G4CashKarpRKF45";
240 message <<
"G4RKG3_Stepper is not currently working for Magnetic Field";
244 message <<
"G4HelixExplicitEuler is not valid for Magnetic Field";
248 message <<
"G4HelixImplicitEuler is not valid for Magnetic Field";
252 message <<
"G4HelixSimpleRunge is not valid for Magnetic Field";
260 std::cout <<
" ---------- G4TBMagneticFieldSetup::SetStepper() -----------" << std::endl;
261 std::cout <<
" " << message.str() << endl;
262 std::cout <<
" Minimum step size: " <<
fMinStep /
mm <<
" mm" << std::endl;
263 std::cout <<
" -----------------------------------------------------------" << std::endl;
268 cout <<
"no stepper set, edxiting now" << endl;
282 G4ThreeVector fieldVector(0.0, 0.0, fieldValue);
297 if (fieldVector != G4ThreeVector(0., 0., 0.))
300 fEMfield =
new G4UniformMagField(fieldVector);
306 fieldMgr->SetDetectorField(
fEMfield);
315 fieldMgr->SetDetectorField(
fEMfield);
325 return G4TransportationManager::GetTransportationManager()->GetFieldManager();