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(track);
124 fLargeStepDriver->OnComputeStep(track);
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;
G4double ComputeNewStepSize(G4double errMaxNorm, G4double hstepCurrent) override
G4int GetVerboseLevel() const override
G4BFieldIntegrationDriver(std::unique_ptr< G4VIntegrationDriver > smallStepDriver, std::unique_ptr< G4VIntegrationDriver > largeStepDriver)
void GetDerivatives(const G4FieldTrack &track, G4double dydx[], G4double field[]) const override
void GetDerivatives(const G4FieldTrack &track, G4double dydx[]) const override
const G4MagIntegratorStepper * GetStepper() const override
const G4BFieldIntegrationDriver & operator=(const G4BFieldIntegrationDriver &)=delete
void OnComputeStep(const G4FieldTrack *track) override
G4bool DoesReIntegrate() const override
G4bool AccurateAdvance(G4FieldTrack &track, G4double hstep, G4double eps, G4double hinitial=0) override
G4EquationOfMotion * GetEquationOfMotion() override
void PrintStatistics() const
void SetEquationOfMotion(G4EquationOfMotion *equation) override
void StreamInfo(std::ostream &os) const override
void SetVerboseLevel(G4int level) override
G4double AdvanceChordLimited(G4FieldTrack &track, G4double hstep, G4double eps, G4double chordDistance) override
G4BFieldIntegrationDriver(const G4BFieldIntegrationDriver &)=delete
void OnStartTracking() override
G4MagIntegratorStepper * GetStepper() override
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