34#ifndef G4BFIELD_INTEGRATION_DRIVER_HH
35#define G4BFIELD_INTEGRATION_DRIVER_HH
47 std::unique_ptr<G4VIntegrationDriver> smallStepDriver,
48 std::unique_ptr<G4VIntegrationDriver> largeStepDriver);
135 os <<
"Small Step Driver Info: " << std::endl;
137 os <<
"Large Step Driver Info: " << std::endl;
static const G4double eps
virtual G4int GetVerboseLevel() const override
virtual G4EquationOfMotion * GetEquationOfMotion() override
G4BFieldIntegrationDriver(std::unique_ptr< G4VIntegrationDriver > smallStepDriver, std::unique_ptr< G4VIntegrationDriver > largeStepDriver)
std::unique_ptr< G4VIntegrationDriver > fSmallStepDriver
G4double CurvatureRadius(const G4FieldTrack &track) const
virtual G4bool DoesReIntegrate() const override
virtual void GetDerivatives(const G4FieldTrack &track, G4double dydx[]) const override
G4VIntegrationDriver * fCurrDriver
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
std::unique_ptr< G4VIntegrationDriver > fLargeStepDriver
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
void GetFieldValue(const G4FieldTrack &track, G4double Field[]) const
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