33#include "Randomize.hh"
34#include "G4TransportationManager.hh"
36#include "G4ExplicitEuler.hh"
37#include "G4ImplicitEuler.hh"
38#include "G4SimpleRunge.hh"
39#include "G4SimpleHeum.hh"
40#include "G4ClassicalRK4.hh"
41#include "G4CashKarpRKF45.hh"
42#include "G4SystemOfUnits.hh"
55 : fDetectorConstruction(det)
99 G4TransportationManager::GetTransportationManager();
129 G4cout <<
"Accuracy Parameters:" <<
136 " EpsMax=" <<
fEpsMax << G4endl;
145 G4ThreeVector captureMgntCenter =
150 focusSolenoid -> SetHalf(
true);
156 G4ThreeVector transferMgntCenter =
159 auto simpleSolenoid =
162 simpleSolenoid->SetColor(
"1,0,1");
163 simpleSolenoid->SetColor(
"0,1,1");
164 simpleSolenoid->SetMaxStep(1.5*mm);
165 simpleSolenoid->SetMaxStep(2.5*mm);
169 FieldList::iterator i;
204 G4cout <<
"G4ExplicitEuler is called" << G4endl;
209 G4cout <<
"G4ImplicitEuler is called" << G4endl;
214 G4cout <<
"G4SimpleRunge is called" << G4endl;
219 G4cout <<
"G4SimpleHeum is called" << G4endl;
224 G4cout <<
"G4ClassicalRK4 (default) is called" << G4endl;
229 G4cout <<
"G4CashKarpRKF45 is called" << G4endl;
239 return G4TransportationManager::GetTransportationManager()
251 field[0] = field[1] = field[2] = field[3] = field[4] = field[5] = 0.0;
254 if(point[0] != point[0])
return;
259 for (
int i=0; i<
fNfp; ++i) {
274 FieldList::iterator i;
Definition of the F04FocusSolenoid class.
Definition of the F04GlobalField class.
std::vector< F04ElementField * > FieldList
Definition of the F04SimpleSolenoid class.
G4double GetCaptureMgntB2()
G4ThreeVector GetTransferMgntCenter()
G4LogicalVolume * GetCaptureMgnt()
G4ThreeVector GetCaptureMgntCenter()
G4double GetTransferMgntB()
G4double GetCaptureMgntB1()
G4LogicalVolume * GetTransferMgnt()
bool IsInBoundingBox(const G4double point[4]) const
IsInBoundingBox() returns true if the point is within the global bounding box - global coordinates.
virtual void AddFieldValue(const G4double point[4], G4double field[6]) const =0
AddFieldValue() will add the field value for this element to field[].
static G4ThreadLocal F04GlobalField * fObject
void ConstructField()
constructs all field tracking objects
~F04GlobalField() override
F04DetectorConstruction * fDetectorConstruction
G4FieldManager * fFieldManager
const F04ElementField ** fFp
G4ChordFinder * fChordFinder
G4PropagatorInField * fFieldPropagator
F04FieldMessenger * fFieldMessenger
void Clear()
Clear() removes all ElementField-s from the global object, and destroys them.
void GetFieldValue(const G4double *point, G4double *field) const override
GetFieldValue() returns the field value at a given point[].
G4EqEMFieldWithSpin * fEquation
F04GlobalField(F04DetectorConstruction *const)
void SetStepper()
Set the Stepper.
static F04GlobalField * GetObject()
G4double fDeltaIntersection
G4FieldManager * GetGlobalFieldManager()
Get the global field manager.
G4MagIntegratorStepper * fStepper