Geant4  10.03
G4MagHelicalStepper Class Referenceabstract

#include <G4MagHelicalStepper.hh>

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

Public Member Functions

 G4MagHelicalStepper (G4Mag_EqRhs *EqRhs)
 
virtual ~G4MagHelicalStepper ()
 
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, bool isFSAL=false)
 
virtual ~G4MagIntegratorStepper ()
 
virtual void ComputeRightHandSide (const G4double y[], G4double dydx[])
 
void NormaliseTangentVector (G4double vec[6])
 
void NormalisePolarizationVector (G4double vec[12])
 
void RightHandSide (const double y[], double dydx[])
 
G4int GetNumberOfVariables () const
 
G4int GetNumberOfStateVariables () const
 
virtual G4int IntegratorOrder () const =0
 
G4int IntegrationOrder ()
 
G4EquationOfMotionGetEquationOfMotion ()
 
void SetEquationOfMotion (G4EquationOfMotion *newEquation)
 
unsigned long GetfNoRHSCalls ()
 
void ResetfNORHSCalls ()
 
bool IsFSAL ()
 

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 (int order)
 
void SetFSAL (bool flag=true)
 

Private Member Functions

 G4MagHelicalStepper (const G4MagHelicalStepper &)
 
G4MagHelicalStepperoperator= (const G4MagHelicalStepper &)
 

Private Attributes

G4Mag_EqRhsfPtrMagEqOfMot
 
G4double fAngCurve
 
G4double frCurve
 
G4double frHelix
 
G4ThreeVector yInitial
 
G4ThreeVector yMidPoint
 
G4ThreeVector yFinal
 

Static Private Attributes

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

Detailed Description

Definition at line 58 of file G4MagHelicalStepper.hh.

Constructor & Destructor Documentation

G4MagHelicalStepper::G4MagHelicalStepper ( G4Mag_EqRhs EqRhs)

Definition at line 47 of file G4MagHelicalStepper.cc.

G4MagHelicalStepper::~G4MagHelicalStepper ( )
virtual

Definition at line 54 of file G4MagHelicalStepper.cc.

G4MagHelicalStepper::G4MagHelicalStepper ( const G4MagHelicalStepper )
private

Member Function Documentation

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

Definition at line 59 of file G4MagHelicalStepper.cc.

References eplus, G4Mag_EqRhs::FCof(), fPtrMagEqOfMot, fUnitConstant, GetInverseCurve(), LinearStep(), SetAngCurve(), SetCurve(), and SetRadHelix().

Referenced by G4HelixSimpleRunge::DumbStepper(), G4HelixHeum::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 238 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, G4HelixHeum, and G4HelixSimpleRunge.

Referenced by Stepper().

+ Here is the caller graph for this function:

G4double G4MagHelicalStepper::GetAngCurve ( ) const
inlineprotected

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

+ 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(), G4ExactHelixStepper::DistChord(), 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 G4HelixSimpleRunge::DumbStepper(), G4HelixHeum::DumbStepper(), G4HelixImplicitEuler::DumbStepper(), G4HelixExplicitEuler::Stepper(), G4ExactHelixStepper::Stepper(), Stepper(), and G4HelixMixedStepper::Stepper().

+ Here is the caller graph for this function:

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

Referenced by AdvanceHelix(), 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 192 of file G4MagHelicalStepper.cc.

References DumbStepper(), and MagFieldEvaluate().

+ Here is the call graph for this function:

Member Data Documentation

G4double G4MagHelicalStepper::fAngCurve
private

Definition at line 133 of file G4MagHelicalStepper.hh.

G4Mag_EqRhs* G4MagHelicalStepper::fPtrMagEqOfMot
private

Definition at line 130 of file G4MagHelicalStepper.hh.

Referenced by AdvanceHelix().

G4double G4MagHelicalStepper::frCurve
private

Definition at line 134 of file G4MagHelicalStepper.hh.

G4double G4MagHelicalStepper::frHelix
private

Definition at line 135 of file G4MagHelicalStepper.hh.

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

Definition at line 127 of file G4MagHelicalStepper.hh.

Referenced by AdvanceHelix().

G4ThreeVector G4MagHelicalStepper::yFinal
private

Definition at line 137 of file G4MagHelicalStepper.hh.

G4ThreeVector G4MagHelicalStepper::yInitial
private

Definition at line 137 of file G4MagHelicalStepper.hh.

G4ThreeVector G4MagHelicalStepper::yMidPoint
private

Definition at line 137 of file G4MagHelicalStepper.hh.


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