ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4BFieldIntegrationDriver Class Reference

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

+ Inheritance diagram for G4BFieldIntegrationDriver:
+ Collaboration diagram for G4BFieldIntegrationDriver:

Public Member Functions

 G4BFieldIntegrationDriver (std::unique_ptr< G4VIntegrationDriver > smallStepDriver, std::unique_ptr< G4VIntegrationDriver > largeStepDriver)
 
 G4BFieldIntegrationDriver (const G4BFieldIntegrationDriver &)=delete
 
const G4BFieldIntegrationDriveroperator= (const G4BFieldIntegrationDriver &)=delete
 
virtual G4double AdvanceChordLimited (G4FieldTrack &track, G4double hstep, G4double eps, G4double chordDistance) override
 
virtual G4bool AccurateAdvance (G4FieldTrack &track, G4double hstep, G4double eps, G4double hinitial=0) override
 
virtual G4bool DoesReIntegrate () override
 
virtual void GetDerivatives (const G4FieldTrack &track, G4double dydx[]) const override
 
virtual void GetDerivatives (const G4FieldTrack &track, G4double dydx[], G4double field[]) const override
 
virtual void SetEquationOfMotion (G4EquationOfMotion *equation) override
 
virtual G4EquationOfMotionGetEquationOfMotion () override
 
virtual const
G4MagIntegratorStepper
GetStepper () const override
 
virtual G4MagIntegratorStepperGetStepper () override
 
virtual G4double ComputeNewStepSize (G4double errMaxNorm, G4double hstepCurrent) override
 
virtual void SetVerboseLevel (G4int level) override
 
virtual G4int GetVerboseLevel () const override
 
virtual void OnComputeStep () override
 
virtual void OnStartTracking () override
 
void PrintStatistics () const
 
- Public Member Functions inherited from G4VIntegrationDriver
virtual ~G4VIntegrationDriver ()=default
 
virtual void RenewStepperAndAdjust (G4MagIntegratorStepper *pItsStepper)
 
virtual G4bool QuickAdvance (G4FieldTrack &, const G4double[], G4double, G4double &, G4double &)
 

Private Member Functions

G4double CurvatureRadius (const G4FieldTrack &track) const
 
void GetFieldValue (const G4FieldTrack &track, G4double Field[]) const
 

Private Attributes

std::unique_ptr
< G4VIntegrationDriver
fSmallStepDriver
 
std::unique_ptr
< G4VIntegrationDriver
fLargeStepDriver
 
G4VIntegrationDriverfCurrDriver = nullptr
 
G4Mag_EqRhsfEquation = nullptr
 
G4int fSmallDriverSteps = 0
 
G4int fLargeDriverSteps = 0
 

Additional Inherited Members

- Static Protected Attributes inherited from G4VIntegrationDriver
static constexpr G4double max_stepping_increase = 5
 
static constexpr G4double max_stepping_decrease = 0.1
 

Detailed Description

Definition at line 42 of file G4BFieldIntegrationDriver.hh.

View newest version in sPHENIX GitHub at line 42 of file G4BFieldIntegrationDriver.hh

Constructor & Destructor Documentation

G4BFieldIntegrationDriver::G4BFieldIntegrationDriver ( std::unique_ptr< G4VIntegrationDriver smallStepDriver,
std::unique_ptr< G4VIntegrationDriver largeStepDriver 
)

Definition at line 62 of file G4BFieldIntegrationDriver.cc.

View newest version in sPHENIX GitHub at line 62 of file G4BFieldIntegrationDriver.cc

References FatalException, fLargeStepDriver, fSmallStepDriver, and G4Exception().

+ Here is the call graph for this function:

G4BFieldIntegrationDriver::G4BFieldIntegrationDriver ( const G4BFieldIntegrationDriver )
delete

Member Function Documentation

virtual G4bool G4BFieldIntegrationDriver::AccurateAdvance ( G4FieldTrack track,
G4double  hstep,
G4double  eps,
G4double  hinitial = 0 
)
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 58 of file G4BFieldIntegrationDriver.hh.

View newest version in sPHENIX GitHub at line 58 of file G4BFieldIntegrationDriver.hh

References G4VIntegrationDriver::AccurateAdvance(), and fCurrDriver.

+ Here is the call graph for this function:

G4double G4BFieldIntegrationDriver::AdvanceChordLimited ( G4FieldTrack track,
G4double  hstep,
G4double  eps,
G4double  chordDistance 
)
overridevirtual

Implements G4VIntegrationDriver.

Definition at line 78 of file G4BFieldIntegrationDriver.cc.

View newest version in sPHENIX GitHub at line 78 of file G4BFieldIntegrationDriver.cc

References G4VIntegrationDriver::AdvanceChordLimited(), CurvatureRadius(), fCurrDriver, fLargeDriverSteps, fLargeStepDriver, fSmallDriverSteps, fSmallStepDriver, min, G4VIntegrationDriver::OnComputeStep(), radius, and twopi.

+ Here is the call graph for this function:

virtual G4double G4BFieldIntegrationDriver::ComputeNewStepSize ( G4double  errMaxNorm,
G4double  hstepCurrent 
)
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 104 of file G4BFieldIntegrationDriver.hh.

View newest version in sPHENIX GitHub at line 104 of file G4BFieldIntegrationDriver.hh

References G4VIntegrationDriver::ComputeNewStepSize(), and fCurrDriver.

+ Here is the call graph for this function:

G4double G4BFieldIntegrationDriver::CurvatureRadius ( const G4FieldTrack track) const
private

Definition at line 117 of file G4BFieldIntegrationDriver.cc.

View newest version in sPHENIX GitHub at line 117 of file G4BFieldIntegrationDriver.cc

References kdfinder::abs(), DBL_MAX, eplus, G4Mag_EqRhs::FCof(), fEquation, GetFieldValue(), G4FieldTrack::GetMomentum(), CLHEP::Hep3Vector::mag2(), and G4Field::MAX_NUMBER_OF_COMPONENTS.

Referenced by AdvanceChordLimited().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual G4bool G4BFieldIntegrationDriver::DoesReIntegrate ( )
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 66 of file G4BFieldIntegrationDriver.hh.

View newest version in sPHENIX GitHub at line 66 of file G4BFieldIntegrationDriver.hh

References G4VIntegrationDriver::DoesReIntegrate(), and fCurrDriver.

+ Here is the call graph for this function:

virtual void G4BFieldIntegrationDriver::GetDerivatives ( const G4FieldTrack track,
G4double  dydx[] 
) const
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 72 of file G4BFieldIntegrationDriver.hh.

View newest version in sPHENIX GitHub at line 72 of file G4BFieldIntegrationDriver.hh

References fCurrDriver, and G4VIntegrationDriver::GetDerivatives().

+ Here is the call graph for this function:

virtual void G4BFieldIntegrationDriver::GetDerivatives ( const G4FieldTrack track,
G4double  dydx[],
G4double  field[] 
) const
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 79 of file G4BFieldIntegrationDriver.hh.

View newest version in sPHENIX GitHub at line 79 of file G4BFieldIntegrationDriver.hh

References fCurrDriver, and G4VIntegrationDriver::GetDerivatives().

+ Here is the call graph for this function:

virtual G4EquationOfMotion* G4BFieldIntegrationDriver::GetEquationOfMotion ( )
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 88 of file G4BFieldIntegrationDriver.hh.

View newest version in sPHENIX GitHub at line 88 of file G4BFieldIntegrationDriver.hh

References fCurrDriver, and G4VIntegrationDriver::GetEquationOfMotion().

+ Here is the call graph for this function:

void G4BFieldIntegrationDriver::GetFieldValue ( const G4FieldTrack track,
G4double  Field[] 
) const
private

Definition at line 138 of file G4BFieldIntegrationDriver.cc.

View newest version in sPHENIX GitHub at line 138 of file G4BFieldIntegrationDriver.cc

References fEquation, G4EquationOfMotion::GetFieldValue(), G4FieldTrack::GetLabTimeOfFlight(), G4FieldTrack::GetPosition(), pos(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by CurvatureRadius().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual const G4MagIntegratorStepper* G4BFieldIntegrationDriver::GetStepper ( ) const
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 94 of file G4BFieldIntegrationDriver.hh.

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

References fCurrDriver, and G4VIntegrationDriver::GetStepper().

+ Here is the call graph for this function:

virtual G4MagIntegratorStepper* G4BFieldIntegrationDriver::GetStepper ( )
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 99 of file G4BFieldIntegrationDriver.hh.

View newest version in sPHENIX GitHub at line 99 of file G4BFieldIntegrationDriver.hh

References fCurrDriver, and G4VIntegrationDriver::GetStepper().

+ Here is the call graph for this function:

virtual G4int G4BFieldIntegrationDriver::GetVerboseLevel ( ) const
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 116 of file G4BFieldIntegrationDriver.hh.

View newest version in sPHENIX GitHub at line 116 of file G4BFieldIntegrationDriver.hh

References fCurrDriver, and G4VIntegrationDriver::GetVerboseLevel().

+ Here is the call graph for this function:

virtual void G4BFieldIntegrationDriver::OnComputeStep ( )
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 121 of file G4BFieldIntegrationDriver.hh.

View newest version in sPHENIX GitHub at line 121 of file G4BFieldIntegrationDriver.hh

References fLargeStepDriver, and fSmallStepDriver.

virtual void G4BFieldIntegrationDriver::OnStartTracking ( )
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 127 of file G4BFieldIntegrationDriver.hh.

View newest version in sPHENIX GitHub at line 127 of file G4BFieldIntegrationDriver.hh

References fLargeStepDriver, and fSmallStepDriver.

const G4BFieldIntegrationDriver& G4BFieldIntegrationDriver::operator= ( const G4BFieldIntegrationDriver )
delete
void G4BFieldIntegrationDriver::PrintStatistics ( ) const

Definition at line 148 of file G4BFieldIntegrationDriver.cc.

View newest version in sPHENIX GitHub at line 148 of file G4BFieldIntegrationDriver.cc

References fLargeDriverSteps, fSmallDriverSteps, and G4cout.

void G4BFieldIntegrationDriver::SetEquationOfMotion ( G4EquationOfMotion equation)
overridevirtual

Implements G4VIntegrationDriver.

Definition at line 109 of file G4BFieldIntegrationDriver.cc.

View newest version in sPHENIX GitHub at line 109 of file G4BFieldIntegrationDriver.cc

References fEquation, fLargeStepDriver, and fSmallStepDriver.

virtual void G4BFieldIntegrationDriver::SetVerboseLevel ( G4int  level)
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 110 of file G4BFieldIntegrationDriver.hh.

View newest version in sPHENIX GitHub at line 110 of file G4BFieldIntegrationDriver.hh

References fLargeStepDriver, and fSmallStepDriver.

Member Data Documentation

G4VIntegrationDriver* G4BFieldIntegrationDriver::fCurrDriver = nullptr
private
G4Mag_EqRhs* G4BFieldIntegrationDriver::fEquation = nullptr
private

Definition at line 145 of file G4BFieldIntegrationDriver.hh.

View newest version in sPHENIX GitHub at line 145 of file G4BFieldIntegrationDriver.hh

Referenced by CurvatureRadius(), GetFieldValue(), and SetEquationOfMotion().

G4int G4BFieldIntegrationDriver::fLargeDriverSteps = 0
private

Definition at line 148 of file G4BFieldIntegrationDriver.hh.

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

Referenced by AdvanceChordLimited(), and PrintStatistics().

std::unique_ptr<G4VIntegrationDriver> G4BFieldIntegrationDriver::fLargeStepDriver
private
G4int G4BFieldIntegrationDriver::fSmallDriverSteps = 0
private

Definition at line 147 of file G4BFieldIntegrationDriver.hh.

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

Referenced by AdvanceChordLimited(), and PrintStatistics().

std::unique_ptr<G4VIntegrationDriver> G4BFieldIntegrationDriver::fSmallStepDriver
private

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