ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4InterpolationDriver< T > Class Template Reference

#include <geant4/tree/geant4-10.6-release/source/geometry/magneticfield/include/G4InterpolationDriver.hh>

+ Inheritance diagram for G4InterpolationDriver< T >:
+ Collaboration diagram for G4InterpolationDriver< T >:

Classes

struct  InterpStepper
 

Public Member Functions

 G4InterpolationDriver (G4double hminimum, T *stepper, G4int numberOfComponents=6, G4int statisticsVerbosity=0)
 
virtual ~G4InterpolationDriver () override
 
 G4InterpolationDriver (const G4InterpolationDriver &)=delete
 
const G4InterpolationDriveroperator= (const G4InterpolationDriver &)=delete
 
virtual G4double AdvanceChordLimited (G4FieldTrack &track, G4double hstep, G4double eps, G4double chordDistance) override
 
virtual void OnStartTracking () override
 
virtual void OnComputeStep () override
 
virtual G4bool DoesReIntegrate () override
 
virtual G4bool AccurateAdvance (G4FieldTrack &track, G4double hstep, G4double eps, G4double hinitial=0) override
 
virtual void SetVerboseLevel (G4int level) override
 
virtual G4int GetVerboseLevel () const override
 
- Public Member Functions inherited from G4RKIntegrationDriver< T >
 G4RKIntegrationDriver (T *stepper)
 
 G4RKIntegrationDriver (const G4RKIntegrationDriver &)=delete
 
G4RKIntegrationDriveroperator= (const G4RKIntegrationDriver &)=delete
 
virtual void GetDerivatives (const G4FieldTrack &track, G4double dydx[]) const override
 
virtual void GetDerivatives (const G4FieldTrack &track, G4double dydx[], G4double field[]) const override
 
virtual G4double ComputeNewStepSize (G4double errMaxNorm, G4double hstepCurrent) override
 
virtual G4EquationOfMotionGetEquationOfMotion () override
 
virtual void SetEquationOfMotion (G4EquationOfMotion *equation) override
 
virtual const TGetStepper () const override
 
virtual TGetStepper () override
 
G4double GetSafety () const
 
G4double GetPshrnk () const
 
G4double GetPgrow () const
 
virtual void RenewStepperAndAdjust (G4MagIntegratorStepper *stepper) override
 
void ReSetParameters (G4double safety=0.9)
 
void SetSafety (G4double valS)
 
G4int GetMaxNoSteps () const
 
void SetMaxNoSteps (G4int val)
 
G4double GetSmallestFraction () const
 
void SetSmallestFraction (G4double val)
 
- Public Member Functions inherited from G4VIntegrationDriver
virtual ~G4VIntegrationDriver ()=default
 
virtual G4bool QuickAdvance (G4FieldTrack &, const G4double[], G4double, G4double &, G4double &)
 

Private Types

using StepperIterator = typename std::vector< InterpStepper >::iterator
 
using ConstStepperIterator = typename std::vector< InterpStepper >::const_iterator
 
using Base = G4RKIntegrationDriver< T >
 

Private Member Functions

G4double OneGoodStep (StepperIterator it, field_utils::State &y, field_utils::State &dydx, G4double &hstep, G4double eps, G4double curveLength)
 
void Interpolate (G4double curveLength, field_utils::State &y) const
 
void InterpolateImpl (G4double curveLength, ConstStepperIterator it, field_utils::State &y) const
 
G4double DistChord (const field_utils::State &yBegin, G4double curveLengthBegin, const field_utils::State &yEnd, G4double curveLengthEnd) const
 
G4double FindNextChord (const field_utils::State &yBegin, G4double curveLengthBegin, field_utils::State &yEnd, G4double curveLengthEnd, G4double dChord, G4double maxChordDistance)
 
G4double CalcChordStep (G4double stepTrialOld, G4double dChordStep, G4double fDeltaChord)
 
void PrintState () const
 
void CheckState () const
 
void AccumulateStatistics (G4int noTrials)
 

Private Attributes

std::vector< InterpStepperfSteppers
 
StepperIterator fLastStepper
 
G4bool fKeepLastStepper = false
 
G4double fhnext = DBL_MAX
 
G4double fMinimumStep
 
G4double fChordStepEstimate = DBL_MAX
 
const G4double fFractionNextEstimate = 0.98
 
const G4double fSmallestCurveFraction = 0.01
 
G4int fVerboseLevel
 
field_utils::State fdydx
 
G4bool fFirstStep = true
 
const G4int fMaxTrials = 100
 
G4int fTotalStepsForTrack = 0
 
G4int fTotalNoTrials = 0
 
G4int fNoCalls = 0
 
G4int fmaxTrials = 0
 

Additional Inherited Members

- Protected Member Functions inherited from G4RKIntegrationDriver< T >
G4double ShrinkStepSize (G4double h, G4double error) const
 
G4double GrowStepSize (G4double h, G4double error) const
 
G4double ShrinkStepSize2 (G4double h, G4double error2) const
 
G4double GrowStepSize2 (G4double h, G4double error2) const
 
void UpdateErrorConstraints ()
 
- Static Protected Attributes inherited from G4VIntegrationDriver
static constexpr G4double max_stepping_increase = 5
 
static constexpr G4double max_stepping_decrease = 0.1
 

Detailed Description

template<class T>
class G4InterpolationDriver< T >

Definition at line 47 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 47 of file G4InterpolationDriver.hh

Member Typedef Documentation

template<class T >
using G4InterpolationDriver< T >::Base = G4RKIntegrationDriver<T>
private

Definition at line 163 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 163 of file G4InterpolationDriver.hh

template<class T >
using G4InterpolationDriver< T >::ConstStepperIterator = typename std::vector<InterpStepper>::const_iterator
private

Definition at line 94 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 94 of file G4InterpolationDriver.hh

template<class T >
using G4InterpolationDriver< T >::StepperIterator = typename std::vector<InterpStepper>::iterator
private

Definition at line 93 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 93 of file G4InterpolationDriver.hh

Constructor & Destructor Documentation

template<class T >
G4InterpolationDriver< T >::G4InterpolationDriver ( G4double  hminimum,
T stepper,
G4int  numberOfComponents = 6,
G4int  statisticsVerbosity = 0 
)
template<class T >
virtual G4InterpolationDriver< T >::~G4InterpolationDriver ( )
overridevirtual
template<class T >
G4InterpolationDriver< T >::G4InterpolationDriver ( const G4InterpolationDriver< T > &  )
delete

Member Function Documentation

template<class T >
void G4InterpolationDriver< T >::AccumulateStatistics ( G4int  noTrials)
private
template<class T >
virtual G4bool G4InterpolationDriver< T >::AccurateAdvance ( G4FieldTrack track,
G4double  hstep,
G4double  eps,
G4double  hinitial = 0 
)
overridevirtual

Implements G4VIntegrationDriver.

template<class T >
virtual G4double G4InterpolationDriver< T >::AdvanceChordLimited ( G4FieldTrack track,
G4double  hstep,
G4double  eps,
G4double  chordDistance 
)
overridevirtual

Implements G4VIntegrationDriver.

template<class T >
G4double G4InterpolationDriver< T >::CalcChordStep ( G4double  stepTrialOld,
G4double  dChordStep,
G4double  fDeltaChord 
)
private
template<class T >
void G4InterpolationDriver< T >::CheckState ( ) const
private
template<class T >
G4double G4InterpolationDriver< T >::DistChord ( const field_utils::State yBegin,
G4double  curveLengthBegin,
const field_utils::State yEnd,
G4double  curveLengthEnd 
) const
private
template<class T >
virtual G4bool G4InterpolationDriver< T >::DoesReIntegrate ( )
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 68 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 68 of file G4InterpolationDriver.hh

template<class T >
G4double G4InterpolationDriver< T >::FindNextChord ( const field_utils::State yBegin,
G4double  curveLengthBegin,
field_utils::State yEnd,
G4double  curveLengthEnd,
G4double  dChord,
G4double  maxChordDistance 
)
private
template<class T >
virtual G4int G4InterpolationDriver< T >::GetVerboseLevel ( ) const
overridevirtual

Implements G4VIntegrationDriver.

template<class T >
void G4InterpolationDriver< T >::Interpolate ( G4double  curveLength,
field_utils::State y 
) const
private
template<class T >
void G4InterpolationDriver< T >::InterpolateImpl ( G4double  curveLength,
ConstStepperIterator  it,
field_utils::State y 
) const
private
template<class T >
virtual void G4InterpolationDriver< T >::OnComputeStep ( )
overridevirtual

Implements G4VIntegrationDriver.

template<class T >
G4double G4InterpolationDriver< T >::OneGoodStep ( StepperIterator  it,
field_utils::State y,
field_utils::State dydx,
G4double hstep,
G4double  eps,
G4double  curveLength 
)
private
template<class T >
virtual void G4InterpolationDriver< T >::OnStartTracking ( )
overridevirtual

Implements G4VIntegrationDriver.

template<class T >
const G4InterpolationDriver& G4InterpolationDriver< T >::operator= ( const G4InterpolationDriver< T > &  )
delete
template<class T >
void G4InterpolationDriver< T >::PrintState ( ) const
private
template<class T >
virtual void G4InterpolationDriver< T >::SetVerboseLevel ( G4int  level)
overridevirtual

Implements G4VIntegrationDriver.

Member Data Documentation

template<class T >
G4double G4InterpolationDriver< T >::fChordStepEstimate = DBL_MAX
private

Definition at line 146 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 146 of file G4InterpolationDriver.hh

template<class T >
field_utils::State G4InterpolationDriver< T >::fdydx
private

Definition at line 152 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 152 of file G4InterpolationDriver.hh

template<class T >
G4bool G4InterpolationDriver< T >::fFirstStep = true
private

Definition at line 153 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 153 of file G4InterpolationDriver.hh

template<class T >
const G4double G4InterpolationDriver< T >::fFractionNextEstimate = 0.98
private

Definition at line 147 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 147 of file G4InterpolationDriver.hh

template<class T >
G4double G4InterpolationDriver< T >::fhnext = DBL_MAX
private

Definition at line 141 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 141 of file G4InterpolationDriver.hh

template<class T >
G4bool G4InterpolationDriver< T >::fKeepLastStepper = false
private

Definition at line 139 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 139 of file G4InterpolationDriver.hh

template<class T >
StepperIterator G4InterpolationDriver< T >::fLastStepper
private

Definition at line 138 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 138 of file G4InterpolationDriver.hh

template<class T >
const G4int G4InterpolationDriver< T >::fMaxTrials = 100
private

Definition at line 155 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 155 of file G4InterpolationDriver.hh

template<class T >
G4int G4InterpolationDriver< T >::fmaxTrials = 0
private

Definition at line 161 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 161 of file G4InterpolationDriver.hh

template<class T >
G4double G4InterpolationDriver< T >::fMinimumStep
private

Definition at line 144 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 144 of file G4InterpolationDriver.hh

template<class T >
G4int G4InterpolationDriver< T >::fNoCalls = 0
private

Definition at line 160 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 160 of file G4InterpolationDriver.hh

template<class T >
const G4double G4InterpolationDriver< T >::fSmallestCurveFraction = 0.01
private

Definition at line 148 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 148 of file G4InterpolationDriver.hh

template<class T >
std::vector<InterpStepper> G4InterpolationDriver< T >::fSteppers
private

Definition at line 137 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 137 of file G4InterpolationDriver.hh

template<class T >
G4int G4InterpolationDriver< T >::fTotalNoTrials = 0
private

Definition at line 159 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 159 of file G4InterpolationDriver.hh

template<class T >
G4int G4InterpolationDriver< T >::fTotalStepsForTrack = 0
private

Definition at line 156 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 156 of file G4InterpolationDriver.hh

template<class T >
G4int G4InterpolationDriver< T >::fVerboseLevel
private

Definition at line 150 of file G4InterpolationDriver.hh.

View newest version in sPHENIX GitHub at line 150 of file G4InterpolationDriver.hh


The documentation for this class was generated from the following file: