Geant4  10.01.p02
G4ChordFinder Class Reference

#include <G4ChordFinder.hh>

+ Inheritance diagram for G4ChordFinder:
+ Collaboration diagram for G4ChordFinder:

Public Member Functions

 G4ChordFinder (G4MagInt_Driver *pIntegrationDriver)
 
 G4ChordFinder (G4MagneticField *itsMagField, G4double stepMinimum=1.0e-2, G4MagIntegratorStepper *pItsStepper=0)
 
virtual ~G4ChordFinder ()
 
G4double AdvanceChordLimited (G4FieldTrack &yCurrent, G4double stepInitial, G4double epsStep_Relative, const G4ThreeVector latestSafetyOrigin, G4double lasestSafetyRadius)
 
G4FieldTrack ApproxCurvePointS (const G4FieldTrack &curveAPointVelocity, const G4FieldTrack &curveBPointVelocity, const G4FieldTrack &ApproxCurveV, const G4ThreeVector &currentEPoint, const G4ThreeVector &currentFPoint, const G4ThreeVector &PointG, G4bool first, G4double epsStep)
 
G4FieldTrack ApproxCurvePointV (const G4FieldTrack &curveAPointVelocity, const G4FieldTrack &curveBPointVelocity, const G4ThreeVector &currentEPoint, G4double epsStep)
 
G4double InvParabolic (const G4double xa, const G4double ya, const G4double xb, const G4double yb, const G4double xc, const G4double yc)
 
G4double GetDeltaChord () const
 
void SetDeltaChord (G4double newval)
 
void SetIntegrationDriver (G4MagInt_Driver *IntegrationDriver)
 
G4MagInt_DriverGetIntegrationDriver ()
 
void ResetStepEstimate ()
 
G4int GetNoCalls ()
 
G4int GetNoTrials ()
 
G4int GetNoMaxTrials ()
 
virtual void PrintStatistics ()
 
G4int SetVerbose (G4int newvalue=1)
 
void SetFractions_Last_Next (G4double fractLast=0.90, G4double fractNext=0.95)
 
void SetFirstFraction (G4double fractFirst)
 
void TestChordPrint (G4int noTrials, G4int lastStepTrial, G4double dChordStep, G4double nextStepTrial)
 
G4double GetFirstFraction ()
 
G4double GetFractionLast ()
 
G4double GetFractionNextEstimate ()
 
G4double GetMultipleRadius ()
 

Protected Member Functions

void AccumulateStatistics (G4int noTrials)
 
G4bool AcceptableMissDist (G4double dChordStep) const
 
G4double NewStep (G4double stepTrialOld, G4double dChordStep, G4double &stepEstimate_Unconstrained)
 
virtual G4double FindNextChord (const G4FieldTrack &yStart, G4double stepMax, G4FieldTrack &yEnd, G4double &dyErr, G4double epsStep, G4double *pNextStepForAccuracy, const G4ThreeVector latestSafetyOrigin, G4double latestSafetyRadius)
 
void PrintDchordTrial (G4int noTrials, G4double stepTrial, G4double oldStepTrial, G4double dChordStep)
 
G4double GetLastStepEstimateUnc ()
 
void SetLastStepEstimateUnc (G4double stepEst)
 

Private Member Functions

 G4ChordFinder (const G4ChordFinder &)
 
G4ChordFinderoperator= (const G4ChordFinder &)
 

Private Attributes

const G4double fDefaultDeltaChord
 
G4double fDeltaChord
 
G4double fFirstFraction
 
G4double fFractionLast
 
G4double fFractionNextEstimate
 
G4double fMultipleRadius
 
G4int fStatsVerbose
 
G4MagInt_DriverfIntgrDriver
 
G4MagIntegratorStepperfDriversStepper
 
G4bool fAllocatedStepper
 
G4EquationOfMotionfEquation
 
G4double fLastStepEstimate_Unconstrained
 
G4int fTotalNoTrials_FNC
 
G4int fNoCalls_FNC
 
G4int fmaxTrials_FNC
 

Detailed Description

Definition at line 50 of file G4ChordFinder.hh.

Constructor & Destructor Documentation

G4ChordFinder::G4ChordFinder ( G4MagInt_Driver pIntegrationDriver)

Definition at line 44 of file G4ChordFinder.cc.

References DBL_MAX, fAllocatedStepper, fFractionLast, fFractionNextEstimate, fIntgrDriver, fLastStepEstimate_Unconstrained, and SetFractions_Last_Next().

+ Here is the call graph for this function:

G4ChordFinder::G4ChordFinder ( G4MagneticField itsMagField,
G4double  stepMinimum = 1.0e-2,
G4MagIntegratorStepper pItsStepper = 0 
)

Definition at line 68 of file G4ChordFinder.cc.

References DBL_MAX, fAllocatedStepper, fDriversStepper, fEquation, fFractionLast, fFractionNextEstimate, fIntgrDriver, fLastStepEstimate_Unconstrained, G4MagIntegratorStepper::GetNumberOfVariables(), and SetFractions_Last_Next().

+ Here is the call graph for this function:

G4ChordFinder::~G4ChordFinder ( )
virtual

Definition at line 111 of file G4ChordFinder.cc.

References fAllocatedStepper, fDriversStepper, fEquation, fIntgrDriver, fStatsVerbose, and PrintStatistics().

+ Here is the call graph for this function:

G4ChordFinder::G4ChordFinder ( const G4ChordFinder )
private

Member Function Documentation

G4bool G4ChordFinder::AcceptableMissDist ( G4double  dChordStep) const
inlineprotected

Referenced by G4ChordFinderSaf::FindNextChord(), and FindNextChord().

+ Here is the caller graph for this function:

void G4ChordFinder::AccumulateStatistics ( G4int  noTrials)
inlineprotected

Referenced by G4ChordFinderSaf::FindNextChord(), and FindNextChord().

+ Here is the caller graph for this function:

G4double G4ChordFinder::AdvanceChordLimited ( G4FieldTrack yCurrent,
G4double  stepInitial,
G4double  epsStep_Relative,
const G4ThreeVector  latestSafetyOrigin,
G4double  lasestSafetyRadius 
)

Definition at line 172 of file G4ChordFinder.cc.

References G4MagInt_Driver::AccurateAdvance(), FindNextChord(), fIntgrDriver, and G4FieldTrack::GetCurveLength().

Referenced by G4PropagatorInField::ComputeStep().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4FieldTrack G4ChordFinder::ApproxCurvePointS ( const G4FieldTrack curveAPointVelocity,
const G4FieldTrack curveBPointVelocity,
const G4FieldTrack ApproxCurveV,
const G4ThreeVector currentEPoint,
const G4ThreeVector currentFPoint,
const G4ThreeVector PointG,
G4bool  first,
G4double  epsStep 
)

Definition at line 413 of file G4ChordFinder.cc.

References G4MagInt_Driver::AccurateAdvance(), ApproxCurvePointV(), fIntgrDriver, G4cout, G4endl, G4FieldTrack::GetCurveLength(), G4FieldTrack::GetPosition(), InvParabolic(), and tolerance.

Referenced by G4BrentLocator::EstimateIntersectionPoint().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4FieldTrack G4ChordFinder::ApproxCurvePointV ( const G4FieldTrack curveAPointVelocity,
const G4FieldTrack curveBPointVelocity,
const G4ThreeVector currentEPoint,
G4double  epsStep 
)

Definition at line 525 of file G4ChordFinder.cc.

References G4MagInt_Driver::AccurateAdvance(), FatalException, fIntgrDriver, G4cerr, G4cout, G4endl, G4Exception(), G4FieldTrack::GetCurveLength(), G4FieldTrack::GetPosition(), G4INCL::Math::max(), and perMillion.

Referenced by ApproxCurvePointS(), G4BrentLocator::EstimateIntersectionPoint(), G4MultiLevelLocator::EstimateIntersectionPoint(), and G4SimpleLocator::EstimateIntersectionPoint().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4ChordFinder::FindNextChord ( const G4FieldTrack yStart,
G4double  stepMax,
G4FieldTrack yEnd,
G4double dyErr,
G4double  epsStep,
G4double pNextStepForAccuracy,
const G4ThreeVector  latestSafetyOrigin,
G4double  latestSafetyRadius 
)
protectedvirtual

Reimplemented in G4ChordFinderSaf.

Definition at line 217 of file G4ChordFinder.cc.

References AcceptableMissDist(), AccumulateStatistics(), G4MagInt_Driver::ComputeNewStepSize(), fFirstFraction, fFractionLast, fIntgrDriver, fLastStepEstimate_Unconstrained, G4cout, G4endl, G4INCL::Math::min(), G4FieldTrack::ncompSVEC, NewStep(), and G4MagInt_Driver::QuickAdvance().

Referenced by AdvanceChordLimited().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4ChordFinder::GetDeltaChord ( ) const
inline

Referenced by export_G4ChordFinder().

+ Here is the caller graph for this function:

G4double G4ChordFinder::GetFirstFraction ( )
inline

Referenced by G4ChordFinderSaf::FindNextChord().

+ Here is the caller graph for this function:

G4double G4ChordFinder::GetFractionLast ( )
inline

Referenced by G4ChordFinderSaf::FindNextChord().

+ Here is the caller graph for this function:

G4double G4ChordFinder::GetFractionNextEstimate ( )
inline
G4double G4ChordFinder::GetLastStepEstimateUnc ( )
inlineprotected

Referenced by G4ChordFinderSaf::FindNextChord().

+ Here is the caller graph for this function:

G4double G4ChordFinder::GetMultipleRadius ( )
inline
G4int G4ChordFinder::GetNoCalls ( )
inline
G4int G4ChordFinder::GetNoMaxTrials ( )
inline
G4int G4ChordFinder::GetNoTrials ( )
inline
G4double G4ChordFinder::InvParabolic ( const G4double  xa,
const G4double  ya,
const G4double  xb,
const G4double  yb,
const G4double  xc,
const G4double  yc 
)
inline

Referenced by ApproxCurvePointS().

+ Here is the caller graph for this function:

G4double G4ChordFinder::NewStep ( G4double  stepTrialOld,
G4double  dChordStep,
G4double stepEstimate_Unconstrained 
)
protected

Definition at line 325 of file G4ChordFinder.cc.

References fDeltaChord, and fFractionNextEstimate.

Referenced by G4ChordFinderSaf::FindNextChord(), and FindNextChord().

+ Here is the caller graph for this function:

G4ChordFinder& G4ChordFinder::operator= ( const G4ChordFinder )
private
void G4ChordFinder::PrintDchordTrial ( G4int  noTrials,
G4double  stepTrial,
G4double  oldStepTrial,
G4double  dChordStep 
)
protected
void G4ChordFinder::PrintStatistics ( )
virtual

Reimplemented in G4ChordFinderSaf.

Definition at line 634 of file G4ChordFinder.cc.

References fFirstFraction, fFractionLast, fFractionNextEstimate, fmaxTrials_FNC, fNoCalls_FNC, fTotalNoTrials_FNC, G4cout, and G4endl.

Referenced by export_G4ChordFinder(), G4ChordFinderSaf::PrintStatistics(), and ~G4ChordFinder().

+ Here is the caller graph for this function:

void G4ChordFinder::ResetStepEstimate ( )
inline

Referenced by G4FieldManagerStore::ClearAllChordFindersState(), and G4CoupledTransportation::StartTracking().

+ Here is the caller graph for this function:

void G4ChordFinder::SetDeltaChord ( G4double  newval)
inline

Referenced by CCalDetectorConstruction::Construct(), F04GlobalField::ConstructField(), ExUCNDetectorConstruction::ConstructSDandField(), F05DetectorConstruction::ConstructSDandField(), F06DetectorConstruction::ConstructSDandField(), and export_G4ChordFinder().

+ Here is the caller graph for this function:

void G4ChordFinder::SetFirstFraction ( G4double  fractFirst)
inline
void G4ChordFinder::SetFractions_Last_Next ( G4double  fractLast = 0.90,
G4double  fractNext = 0.95 
)

Definition at line 127 of file G4ChordFinder.cc.

References fFirstFraction, fFractionLast, fFractionNextEstimate, fMultipleRadius, fStatsVerbose, G4cerr, G4cout, and G4endl.

Referenced by G4ChordFinder().

+ Here is the caller graph for this function:

void G4ChordFinder::SetIntegrationDriver ( G4MagInt_Driver IntegrationDriver)
inline
void G4ChordFinder::SetLastStepEstimateUnc ( G4double  stepEst)
inlineprotected

Referenced by G4ChordFinderSaf::FindNextChord().

+ Here is the caller graph for this function:

G4int G4ChordFinder::SetVerbose ( G4int  newvalue = 1)
inline

Referenced by export_G4ChordFinder(), and G4ChordFinderSaf::~G4ChordFinderSaf().

+ Here is the caller graph for this function:

void G4ChordFinder::TestChordPrint ( G4int  noTrials,
G4int  lastStepTrial,
G4double  dChordStep,
G4double  nextStepTrial 
)

Definition at line 655 of file G4ChordFinder.cc.

References fDeltaChord, fLastStepEstimate_Unconstrained, G4cout, and G4endl.

Member Data Documentation

G4bool G4ChordFinder::fAllocatedStepper
private

Definition at line 185 of file G4ChordFinder.hh.

Referenced by G4ChordFinder(), and ~G4ChordFinder().

const G4double G4ChordFinder::fDefaultDeltaChord
private

Definition at line 171 of file G4ChordFinder.hh.

G4double G4ChordFinder::fDeltaChord
private

Definition at line 175 of file G4ChordFinder.hh.

Referenced by NewStep(), and TestChordPrint().

G4MagIntegratorStepper* G4ChordFinder::fDriversStepper
private

Definition at line 184 of file G4ChordFinder.hh.

Referenced by G4ChordFinder(), and ~G4ChordFinder().

G4EquationOfMotion* G4ChordFinder::fEquation
private

Definition at line 186 of file G4ChordFinder.hh.

Referenced by G4ChordFinder(), and ~G4ChordFinder().

G4double G4ChordFinder::fFirstFraction
private

Definition at line 177 of file G4ChordFinder.hh.

Referenced by FindNextChord(), PrintStatistics(), and SetFractions_Last_Next().

G4double G4ChordFinder::fFractionLast
private
G4double G4ChordFinder::fFractionNextEstimate
private

Definition at line 177 of file G4ChordFinder.hh.

Referenced by G4ChordFinder(), NewStep(), PrintStatistics(), and SetFractions_Last_Next().

G4MagInt_Driver* G4ChordFinder::fIntgrDriver
private
G4double G4ChordFinder::fLastStepEstimate_Unconstrained
private

Definition at line 190 of file G4ChordFinder.hh.

Referenced by FindNextChord(), G4ChordFinder(), and TestChordPrint().

G4int G4ChordFinder::fmaxTrials_FNC
private

Definition at line 195 of file G4ChordFinder.hh.

Referenced by PrintStatistics().

G4double G4ChordFinder::fMultipleRadius
private

Definition at line 178 of file G4ChordFinder.hh.

Referenced by SetFractions_Last_Next().

G4int G4ChordFinder::fNoCalls_FNC
private

Definition at line 195 of file G4ChordFinder.hh.

Referenced by PrintStatistics().

G4int G4ChordFinder::fStatsVerbose
private

Definition at line 179 of file G4ChordFinder.hh.

Referenced by SetFractions_Last_Next(), and ~G4ChordFinder().

G4int G4ChordFinder::fTotalNoTrials_FNC
private

Definition at line 195 of file G4ChordFinder.hh.

Referenced by PrintStatistics().


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