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

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

+ Inheritance diagram for G4MagHelicalStepper:
+ Collaboration diagram for G4MagHelicalStepper:

Public Member Functions

 G4MagHelicalStepper (G4Mag_EqRhs *EqRhs)
 
virtual ~G4MagHelicalStepper ()
 
 G4MagHelicalStepper (const G4MagHelicalStepper &)=delete
 
G4MagHelicalStepperoperator= (const G4MagHelicalStepper &)=delete
 
virtual void Stepper (const G4double y[], const G4double dydx[], G4double h, G4double yout[], G4double yerr[])
 
virtual void DumbStepper (const G4double y[], G4ThreeVector Bfld, G4double h, G4double yout[])=0
 
G4double DistChord () const
 
- Public Member Functions inherited from G4MagIntegratorStepper
 G4MagIntegratorStepper (G4EquationOfMotion *Equation, G4int numIntegrationVariables, G4int numStateVariables=12, G4bool isFSAL=false)
 
virtual ~G4MagIntegratorStepper ()=default
 
 G4MagIntegratorStepper (const G4MagIntegratorStepper &)=delete
 
G4MagIntegratorStepperoperator= (const G4MagIntegratorStepper &)=delete
 
void NormaliseTangentVector (G4double vec[6])
 
void NormalisePolarizationVector (G4double vec[12])
 
void RightHandSide (const G4double y[], G4double dydx[]) const
 
void RightHandSide (const G4double y[], G4double dydx[], G4double field[]) const
 
G4int GetNumberOfVariables () const
 
G4int GetNumberOfStateVariables () const
 
virtual G4int IntegratorOrder () const =0
 
G4int IntegrationOrder ()
 
G4EquationOfMotionGetEquationOfMotion ()
 
const G4EquationOfMotionGetEquationOfMotion () const
 
void SetEquationOfMotion (G4EquationOfMotion *newEquation)
 
unsigned long GetfNoRHSCalls ()
 
void ResetfNORHSCalls ()
 
G4bool IsFSAL () const
 

Protected Member Functions

void LinearStep (const G4double yIn[], G4double h, G4double yHelix[]) const
 
void AdvanceHelix (const G4double yIn[], G4ThreeVector Bfld, G4double h, G4double yHelix[], G4double yHelix2[]=0)
 
void MagFieldEvaluate (const G4double y[], G4ThreeVector &Bfield)
 
G4double GetInverseCurve (const G4double Momentum, const G4double Bmag)
 
void SetAngCurve (const G4double Ang)
 
G4double GetAngCurve () const
 
void SetCurve (const G4double Curve)
 
G4double GetCurve () const
 
void SetRadHelix (const G4double Rad)
 
G4double GetRadHelix () const
 
- Protected Member Functions inherited from G4MagIntegratorStepper
void SetIntegrationOrder (G4int order)
 
void SetFSAL (G4bool flag=true)
 

Private Attributes

G4Mag_EqRhsfPtrMagEqOfMot = nullptr
 
G4double fAngCurve = 0.0
 
G4double frCurve = 0.0
 
G4double frHelix = 0.0
 
G4ThreeVector yInitial
 
G4ThreeVector yMidPoint
 
G4ThreeVector yFinal
 

Static Private Attributes

static const G4double fUnitConstant = 0.299792458*(GeV/(tesla*m))
 

Detailed Description

Definition at line 50 of file G4MagHelicalStepper.hh.

View newest version in sPHENIX GitHub at line 50 of file G4MagHelicalStepper.hh

Constructor & Destructor Documentation

G4MagHelicalStepper::G4MagHelicalStepper ( G4Mag_EqRhs EqRhs)

Definition at line 45 of file G4MagHelicalStepper.cc.

View newest version in sPHENIX GitHub at line 45 of file G4MagHelicalStepper.cc

G4MagHelicalStepper::~G4MagHelicalStepper ( )
virtual

Definition at line 52 of file G4MagHelicalStepper.cc.

View newest version in sPHENIX GitHub at line 52 of file G4MagHelicalStepper.cc

G4MagHelicalStepper::G4MagHelicalStepper ( const G4MagHelicalStepper )
delete

Member Function Documentation

void G4MagHelicalStepper::AdvanceHelix ( const G4double  yIn[],
G4ThreeVector  Bfld,
G4double  h,
G4double  yHelix[],
G4double  yHelix2[] = 0 
)
protected

Definition at line 57 of file G4MagHelicalStepper.cc.

View newest version in sPHENIX GitHub at line 57 of file G4MagHelicalStepper.cc

References kdfinder::abs(), source.hepunit::c_light, CLHEP::Hep3Vector::cross(), CLHEP::Hep3Vector::dot(), e, eplus, G4Mag_EqRhs::FCof(), fPtrMagEqOfMot, fUnitConstant, GetInverseCurve(), Acts::UnitConstants::h, LinearStep(), CLHEP::Hep3Vector::mag(), Acts::IntegrationTest::R, SetAngCurve(), SetCurve(), SetRadHelix(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by G4HelixHeum::DumbStepper(), G4HelixSimpleRunge::DumbStepper(), G4HelixImplicitEuler::DumbStepper(), G4HelixExplicitEuler::DumbStepper(), G4ExactHelixStepper::DumbStepper(), G4HelixMixedStepper::DumbStepper(), G4HelixExplicitEuler::Stepper(), G4ExactHelixStepper::Stepper(), and G4HelixMixedStepper::Stepper().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4MagHelicalStepper::DistChord ( ) const
virtual

Implements G4MagIntegratorStepper.

Definition at line 235 of file G4MagHelicalStepper.cc.

View newest version in sPHENIX GitHub at line 235 of file G4MagHelicalStepper.cc

References GetAngCurve(), GetRadHelix(), pi, and twopi.

+ Here is the call graph for this function:

virtual void G4MagHelicalStepper::DumbStepper ( const G4double  y[],
G4ThreeVector  Bfld,
G4double  h,
G4double  yout[] 
)
pure virtual

Implemented in G4HelixMixedStepper, G4ExactHelixStepper, G4HelixExplicitEuler, G4HelixImplicitEuler, G4HelixSimpleRunge, and G4HelixHeum.

Referenced by Stepper().

+ Here is the caller graph for this function:

G4double G4MagHelicalStepper::GetAngCurve ( ) const
inlineprotected

Referenced by G4HelixExplicitEuler::DistChord(), DistChord(), G4ExactHelixStepper::DistChord(), G4HelixMixedStepper::DistChord(), and G4HelixExplicitEuler::Stepper().

+ Here is the caller graph for this function:

G4double G4MagHelicalStepper::GetCurve ( ) const
inlineprotected
G4double G4MagHelicalStepper::GetInverseCurve ( const G4double  Momentum,
const G4double  Bmag 
)
inlineprotected

Referenced by AdvanceHelix(), and G4HelixMixedStepper::Stepper().

+ Here is the caller graph for this function:

G4double G4MagHelicalStepper::GetRadHelix ( ) const
inlineprotected

Referenced by G4HelixExplicitEuler::DistChord(), DistChord(), G4ExactHelixStepper::DistChord(), and G4HelixMixedStepper::DistChord().

+ Here is the caller graph for this function:

void G4MagHelicalStepper::LinearStep ( const G4double  yIn[],
G4double  h,
G4double  yHelix[] 
) const
inlineprotected

Referenced by AdvanceHelix().

+ Here is the caller graph for this function:

void G4MagHelicalStepper::MagFieldEvaluate ( const G4double  y[],
G4ThreeVector Bfield 
)
inlineprotected

Referenced by G4HelixHeum::DumbStepper(), G4HelixImplicitEuler::DumbStepper(), G4HelixSimpleRunge::DumbStepper(), G4HelixExplicitEuler::Stepper(), Stepper(), G4ExactHelixStepper::Stepper(), and G4HelixMixedStepper::Stepper().

+ Here is the caller graph for this function:

G4MagHelicalStepper& G4MagHelicalStepper::operator= ( const G4MagHelicalStepper )
delete
void G4MagHelicalStepper::SetAngCurve ( const G4double  Ang)
inlineprotected

Referenced by AdvanceHelix(), G4HelixExplicitEuler::Stepper(), and G4HelixMixedStepper::Stepper().

+ Here is the caller graph for this function:

void G4MagHelicalStepper::SetCurve ( const G4double  Curve)
inlineprotected

Referenced by AdvanceHelix(), and G4HelixMixedStepper::Stepper().

+ Here is the caller graph for this function:

void G4MagHelicalStepper::SetRadHelix ( const G4double  Rad)
inlineprotected

Referenced by AdvanceHelix().

+ Here is the caller graph for this function:

void G4MagHelicalStepper::Stepper ( const G4double  y[],
const G4double  dydx[],
G4double  h,
G4double  yout[],
G4double  yerr[] 
)
virtual

Implements G4MagIntegratorStepper.

Reimplemented in G4HelixMixedStepper, and G4ExactHelixStepper.

Definition at line 188 of file G4MagHelicalStepper.cc.

View newest version in sPHENIX GitHub at line 188 of file G4MagHelicalStepper.cc

References DumbStepper(), Acts::UnitConstants::h, and MagFieldEvaluate().

+ Here is the call graph for this function:

Member Data Documentation

G4double G4MagHelicalStepper::fAngCurve = 0.0
private

Definition at line 120 of file G4MagHelicalStepper.hh.

View newest version in sPHENIX GitHub at line 120 of file G4MagHelicalStepper.hh

G4Mag_EqRhs* G4MagHelicalStepper::fPtrMagEqOfMot = nullptr
private

Definition at line 116 of file G4MagHelicalStepper.hh.

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

Referenced by AdvanceHelix().

G4double G4MagHelicalStepper::frCurve = 0.0
private

Definition at line 121 of file G4MagHelicalStepper.hh.

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

G4double G4MagHelicalStepper::frHelix = 0.0
private

Definition at line 122 of file G4MagHelicalStepper.hh.

View newest version in sPHENIX GitHub at line 122 of file G4MagHelicalStepper.hh

const G4double G4MagHelicalStepper::fUnitConstant = 0.299792458*(GeV/(tesla*m))
staticprivate

Definition at line 113 of file G4MagHelicalStepper.hh.

View newest version in sPHENIX GitHub at line 113 of file G4MagHelicalStepper.hh

Referenced by AdvanceHelix().

G4ThreeVector G4MagHelicalStepper::yFinal
private

Definition at line 123 of file G4MagHelicalStepper.hh.

View newest version in sPHENIX GitHub at line 123 of file G4MagHelicalStepper.hh

G4ThreeVector G4MagHelicalStepper::yInitial
private

Definition at line 123 of file G4MagHelicalStepper.hh.

View newest version in sPHENIX GitHub at line 123 of file G4MagHelicalStepper.hh

G4ThreeVector G4MagHelicalStepper::yMidPoint
private

Definition at line 123 of file G4MagHelicalStepper.hh.

View newest version in sPHENIX GitHub at line 123 of file G4MagHelicalStepper.hh


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