34#ifndef G4BFIELD_INTEGRATION_DRIVER_HH
35#define G4BFIELD_INTEGRATION_DRIVER_HH
47 std::unique_ptr<G4VIntegrationDriver> smallStepDriver,
48 std::unique_ptr<G4VIntegrationDriver> largeStepDriver);
112 fSmallStepDriver->SetVerboseLevel(level);
113 fLargeStepDriver->SetVerboseLevel(level);
123 fSmallStepDriver->OnComputeStep();
124 fLargeStepDriver->OnComputeStep();
129 fSmallStepDriver->OnStartTracking();
130 fLargeStepDriver->OnStartTracking();
135 os <<
"Small Step Driver Info: " << std::endl;
136 fSmallStepDriver->StreamInfo(os);
137 os <<
"Large Step Driver Info: " << std::endl;
138 fLargeStepDriver->StreamInfo(os);
151 std::unique_ptr<G4VIntegrationDriver> fSmallStepDriver;
152 std::unique_ptr<G4VIntegrationDriver> fLargeStepDriver;
156 G4int fSmallDriverSteps = 0;
157 G4int fLargeDriverSteps = 0;
virtual G4int GetVerboseLevel() const override
virtual G4EquationOfMotion * GetEquationOfMotion() override
virtual G4bool DoesReIntegrate() const override
virtual void GetDerivatives(const G4FieldTrack &track, G4double dydx[]) const override
virtual void SetVerboseLevel(G4int level) override
const G4BFieldIntegrationDriver & operator=(const G4BFieldIntegrationDriver &)=delete
void PrintStatistics() const
virtual void SetEquationOfMotion(G4EquationOfMotion *equation) override
virtual G4bool AccurateAdvance(G4FieldTrack &track, G4double hstep, G4double eps, G4double hinitial=0) override
virtual void OnStartTracking() override
virtual G4MagIntegratorStepper * GetStepper() override
virtual void OnComputeStep() override
virtual G4double AdvanceChordLimited(G4FieldTrack &track, G4double hstep, G4double eps, G4double chordDistance) override
virtual G4double ComputeNewStepSize(G4double errMaxNorm, G4double hstepCurrent) override
virtual const G4MagIntegratorStepper * GetStepper() const override
virtual void StreamInfo(std::ostream &os) const override
virtual void GetDerivatives(const G4FieldTrack &track, G4double dydx[], G4double field[]) const override
G4BFieldIntegrationDriver(const G4BFieldIntegrationDriver &)=delete
virtual G4int GetVerboseLevel() const =0
virtual const G4MagIntegratorStepper * GetStepper() const =0
virtual G4EquationOfMotion * GetEquationOfMotion()=0
virtual G4double ComputeNewStepSize(G4double errMaxNorm, G4double hstepCurrent)=0
virtual G4bool DoesReIntegrate() const =0
virtual void GetDerivatives(const G4FieldTrack &track, G4double dydx[]) const =0
virtual G4bool AccurateAdvance(G4FieldTrack &track, G4double hstep, G4double eps, G4double hinitial=0)=0