Geant4  10.02
G4PropagatorInField Class Reference

#include <G4PropagatorInField.hh>

+ Collaboration diagram for G4PropagatorInField:

Public Member Functions

 G4PropagatorInField (G4Navigator *theNavigator, G4FieldManager *detectorFieldMgr, G4VIntersectionLocator *vLocator=0)
 
 ~G4PropagatorInField ()
 
G4double ComputeStep (G4FieldTrack &pFieldTrack, G4double pCurrentProposedStepLength, G4double &pNewSafety, G4VPhysicalVolume *pPhysVol=0)
 
G4ThreeVector EndPosition () const
 
G4ThreeVector EndMomentumDir () const
 
G4bool IsParticleLooping () const
 
G4double GetEpsilonStep () const
 
void SetEpsilonStep (G4double newEps)
 
G4FieldManagerFindAndSetFieldManager (G4VPhysicalVolume *pCurrentPhysVol)
 
G4ChordFinderGetChordFinder ()
 
G4int SetVerboseLevel (G4int verbose)
 
G4int GetVerboseLevel () const
 
G4int Verbose () const
 
void SetVerboseTrace (G4bool enable)
 
G4bool GetVerboseTrace ()
 
G4int GetMaxLoopCount () const
 
void SetMaxLoopCount (G4int new_max)
 
void printStatus (const G4FieldTrack &startFT, const G4FieldTrack &currentFT, G4double requestStep, G4double safety, G4int step, G4VPhysicalVolume *startVolume)
 
G4FieldTrack GetEndState () const
 
G4double GetMinimumEpsilonStep () const
 
void SetMinimumEpsilonStep (G4double newEpsMin)
 
G4double GetMaximumEpsilonStep () const
 
void SetMaximumEpsilonStep (G4double newEpsMax)
 
void SetLargestAcceptableStep (G4double newBigDist)
 
G4double GetLargestAcceptableStep ()
 
void SetTrajectoryFilter (G4VCurvedTrajectoryFilter *filter)
 
std::vector< G4ThreeVector > * GimmeTrajectoryVectorAndForgetIt () const
 
void ClearPropagatorState ()
 
void SetDetectorFieldManager (G4FieldManager *newGlobalFieldManager)
 
void SetUseSafetyForOptimization (G4bool)
 
G4bool GetUseSafetyForOptimization ()
 
G4bool IntersectChord (const G4ThreeVector &StartPointA, const G4ThreeVector &EndPointB, G4double &NewSafety, G4double &LinearStepLength, G4ThreeVector &IntersectionPoint)
 
G4bool IsFirstStepInVolume ()
 
G4bool IsLastStepInVolume ()
 
void PrepareNewTrack ()
 
G4VIntersectionLocatorGetIntersectionLocator ()
 
void SetIntersectionLocator (G4VIntersectionLocator *pLocator)
 
G4double GetDeltaIntersection () const
 
G4double GetDeltaOneStep () const
 
G4FieldManagerGetCurrentFieldManager ()
 
G4EquationOfMotionGetCurrentEquationOfMotion ()
 
void SetNavigatorForPropagating (G4Navigator *SimpleOrMultiNavigator)
 
G4NavigatorGetNavigatorForPropagating ()
 
void SetThresholdNoZeroStep (G4int noAct, G4int noHarsh, G4int noAbandon)
 
G4int GetThresholdNoZeroSteps (G4int i)
 
G4double GetZeroStepThreshold ()
 
void SetZeroStepThreshold (G4double newLength)
 
void RefreshIntersectionLocator ()
 

Protected Member Functions

void PrintStepLengthDiagnostic (G4double currentProposedStepLength, G4double decreaseFactor, G4double stepTrial, const G4FieldTrack &aFieldTrack)
 
void ReportLoopingParticle (G4int count, double StepTaken, G4VPhysicalVolume *pPhysVol)
 
void ReportStuckParticle (G4int noZeroSteps, G4double proposedStep, G4double lastTriedStep, G4VPhysicalVolume *physVol)
 

Private Attributes

G4int fMax_loop_count
 
G4bool fUseSafetyForOptimisation
 
G4int fActionThreshold_NoZeroSteps
 
G4int fSevereActionThreshold_NoZeroSteps
 
G4int fAbandonThreshold_NoZeroSteps
 
G4double fZeroStepThreshold
 
G4double fLargestAcceptableStep
 
G4double kCarTolerance
 
G4bool fAllocatedLocator
 
G4FieldManagerfDetectorFieldMgr
 
G4VIntersectionLocatorfIntersectionLocator
 
G4VCurvedTrajectoryFilterfpTrajectoryFilter
 
G4NavigatorfNavigator
 
G4FieldManagerfCurrentFieldMgr
 
G4bool fSetFieldMgr
 
G4double fEpsilonStep
 
G4FieldTrack End_PointAndTangent
 
G4bool fParticleIsLooping
 
G4int fNoZeroStep
 
G4double fFull_CurveLen_of_LastAttempt
 
G4double fLast_ProposedStepLength
 
G4ThreeVector fPreviousSftOrigin
 
G4double fPreviousSafety
 
G4int fVerboseLevel
 
G4bool fVerbTracePiF
 
G4bool fFirstStepInVolume
 
G4bool fLastStepInVolume
 
G4bool fNewTrack
 

Detailed Description

Definition at line 64 of file G4PropagatorInField.hh.

Constructor & Destructor Documentation

G4PropagatorInField::~G4PropagatorInField ( )

Definition at line 123 of file G4PropagatorInField.cc.

References fAllocatedLocator, and fIntersectionLocator.

Member Function Documentation

void G4PropagatorInField::ClearPropagatorState ( )

Definition at line 668 of file G4PropagatorInField.cc.

References End_PointAndTangent, fFull_CurveLen_of_LastAttempt, fLast_ProposedStepLength, fNoZeroStep, fParticleIsLooping, fPreviousSafety, and fPreviousSftOrigin.

Referenced by G4ITTransportation::StartTracking(), G4CoupledTransportation::StartTracking(), G4MonopoleTransportation::StartTracking(), and G4Transportation::StartTracking().

+ Here is the caller graph for this function:

G4double G4PropagatorInField::ComputeStep ( G4FieldTrack pFieldTrack,
G4double  pCurrentProposedStepLength,
G4double pNewSafety,
G4VPhysicalVolume pPhysVol = 0 
)

Definition at line 145 of file G4PropagatorInField.cc.

References G4ChordFinder::AdvanceChordLimited(), cm, G4VCurvedTrajectoryFilter::CreateNewTrajectorySegment(), End_PointAndTangent, epsilon(), fAbandonThreshold_NoZeroSteps, fActionThreshold_NoZeroSteps, FatalException, fCurrentFieldMgr, fEpsilonStep, fFirstStepInVolume, fFull_CurveLen_of_LastAttempt, FindAndSetFieldManager(), fIntersectionLocator, fLargestAcceptableStep, fLast_ProposedStepLength, fLastStepInVolume, fMax_loop_count, fNavigator, fNewTrack, fNoZeroStep, fParticleIsLooping, fPreviousSafety, fPreviousSftOrigin, fpTrajectoryFilter, fSetFieldMgr, fSevereActionThreshold_NoZeroSteps, fVerboseLevel, fZeroStepThreshold, G4cerr, G4cout, G4endl, G4Exception(), GetChordFinder(), G4FieldTrack::GetCurveLength(), G4FieldManager::GetDeltaOneStep(), G4VPhysicalVolume::GetLogicalVolume(), G4FieldManager::GetMaximumEpsilonStep(), G4FieldManager::GetMinimumEpsilonStep(), G4FieldTrack::GetMomentumDir(), G4VPhysicalVolume::GetName(), G4FieldTrack::GetPosition(), G4Navigator::GetWorldVolume(), IntersectChord(), JustWarning, kCarTolerance, kInfinity, G4Navigator::LocateGlobalPointWithinVolume(), G4INCL::Math::max(), G4INCL::Math::min(), perMillion, printStatus(), PrintStepLengthDiagnostic(), RefreshIntersectionLocator(), ReportLoopingParticle(), ReportStuckParticle(), SetEpsilonStep(), and G4VCurvedTrajectoryFilter::TakeIntermediatePoint().

Referenced by G4Transportation::AlongStepGetPhysicalInteractionLength(), G4MonopoleTransportation::AlongStepGetPhysicalInteractionLength(), and G4PathFinder::DoNextCurvedStep().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVector G4PropagatorInField::EndMomentumDir ( ) const
inline
G4ThreeVector G4PropagatorInField::EndPosition ( ) const
inline
G4ChordFinder* G4PropagatorInField::GetChordFinder ( )
inline
G4EquationOfMotion* G4PropagatorInField::GetCurrentEquationOfMotion ( )
inline
G4FieldManager* G4PropagatorInField::GetCurrentFieldManager ( )
inline

Referenced by G4Transportation::AlongStepGetPhysicalInteractionLength(), G4CoupledTransportation::AlongStepGetPhysicalInteractionLength(), and G4DecayWithSpin::AtRestDoIt().

+ Here is the caller graph for this function:

G4double G4PropagatorInField::GetDeltaIntersection ( ) const
inline
G4double G4PropagatorInField::GetDeltaOneStep ( ) const
inline
G4FieldTrack G4PropagatorInField::GetEndState ( ) const
inline
G4double G4PropagatorInField::GetEpsilonStep ( ) const
inline
G4VIntersectionLocator* G4PropagatorInField::GetIntersectionLocator ( )
inline

Referenced by G4ErrorPropagatorManager::StartNavigator().

+ Here is the caller graph for this function:

G4double G4PropagatorInField::GetLargestAcceptableStep ( )
inline

Referenced by G4BlineTracer::ComputeBlines().

+ Here is the caller graph for this function:

G4double G4PropagatorInField::GetMaximumEpsilonStep ( ) const
inline
G4int G4PropagatorInField::GetMaxLoopCount ( ) const
inline
G4double G4PropagatorInField::GetMinimumEpsilonStep ( ) const
inline
G4Navigator* G4PropagatorInField::GetNavigatorForPropagating ( )
inline
G4int G4PropagatorInField::GetThresholdNoZeroSteps ( G4int  i)
inline
G4bool G4PropagatorInField::GetUseSafetyForOptimization ( )
inline
G4int G4PropagatorInField::GetVerboseLevel ( ) const
inline
G4bool G4PropagatorInField::GetVerboseTrace ( )
inline

Definition at line 103 of file G4PropagatorInField.hh.

References fVerbTracePiF.

G4double G4PropagatorInField::GetZeroStepThreshold ( )
inline
std::vector< G4ThreeVector > * G4PropagatorInField::GimmeTrajectoryVectorAndForgetIt ( ) const

Definition at line 645 of file G4PropagatorInField.cc.

References fpTrajectoryFilter, and G4VCurvedTrajectoryFilter::GimmeThePointsAndForgetThem().

Referenced by G4Transportation::AlongStepDoIt(), G4MonopoleTransportation::AlongStepDoIt(), and G4ITTransportation::AlongStepDoIt().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4PropagatorInField::IntersectChord ( const G4ThreeVector StartPointA,
const G4ThreeVector EndPointB,
G4double NewSafety,
G4double LinearStepLength,
G4ThreeVector IntersectionPoint 
)
inline

Referenced by ComputeStep().

+ Here is the caller graph for this function:

G4bool G4PropagatorInField::IsFirstStepInVolume ( )
inline

Definition at line 162 of file G4PropagatorInField.hh.

References fFirstStepInVolume.

G4bool G4PropagatorInField::IsLastStepInVolume ( )
inline

Definition at line 163 of file G4PropagatorInField.hh.

References fLastStepInVolume.

Referenced by G4Transportation::AlongStepGetPhysicalInteractionLength(), and G4Transportation::PostStepDoIt().

+ Here is the caller graph for this function:

G4bool G4PropagatorInField::IsParticleLooping ( ) const
inline

Referenced by G4Transportation::AlongStepGetPhysicalInteractionLength(), G4CoupledTransportation::AlongStepGetPhysicalInteractionLength(), and G4MonopoleTransportation::AlongStepGetPhysicalInteractionLength().

+ Here is the caller graph for this function:

void G4PropagatorInField::PrepareNewTrack ( )
inline

Definition at line 164 of file G4PropagatorInField.hh.

References fFirstStepInVolume, fLastStepInVolume, and fNewTrack.

Referenced by G4PathFinder::PrepareNewTrack(), and G4Transportation::StartTracking().

+ Here is the caller graph for this function:

void G4PropagatorInField::printStatus ( const G4FieldTrack startFT,
const G4FieldTrack currentFT,
G4double  requestStep,
G4double  safety,
G4int  step,
G4VPhysicalVolume startVolume 
)

Definition at line 515 of file G4PropagatorInField.cc.

References fVerboseLevel, G4cout, G4endl, G4FieldTrack::GetCurveLength(), G4FieldTrack::GetMomentum(), G4FieldTrack::GetMomentumDir(), G4VPhysicalVolume::GetName(), and G4FieldTrack::GetPosition().

Referenced by ComputeStep().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4PropagatorInField::PrintStepLengthDiagnostic ( G4double  currentProposedStepLength,
G4double  decreaseFactor,
G4double  stepTrial,
const G4FieldTrack aFieldTrack 
)
protected

Definition at line 609 of file G4PropagatorInField.cc.

References fFull_CurveLen_of_LastAttempt, fLast_ProposedStepLength, fNoZeroStep, G4cout, and G4endl.

Referenced by ComputeStep().

+ Here is the caller graph for this function:

void G4PropagatorInField::RefreshIntersectionLocator ( )

Definition at line 132 of file G4PropagatorInField.cc.

References fCurrentFieldMgr, fEpsilonStep, fIntersectionLocator, fUseSafetyForOptimisation, GetChordFinder(), G4FieldManager::GetDeltaIntersection(), G4VIntersectionLocator::SetChordFinderFor(), G4VIntersectionLocator::SetDeltaIntersectionFor(), G4VIntersectionLocator::SetEpsilonStepFor(), and G4VIntersectionLocator::SetSafetyParametersFor().

Referenced by ComputeStep(), and G4PropagatorInField().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4PropagatorInField::ReportLoopingParticle ( G4int  count,
double  StepTaken,
G4VPhysicalVolume pPhysVol 
)
protected

Definition at line 735 of file G4PropagatorInField.cc.

References G4Exception(), G4VPhysicalVolume::GetName(), JustWarning, and mm.

Referenced by ComputeStep().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4PropagatorInField::ReportStuckParticle ( G4int  noZeroSteps,
G4double  proposedStep,
G4double  lastTriedStep,
G4VPhysicalVolume physVol 
)
protected

Definition at line 755 of file G4PropagatorInField.cc.

References G4endl, G4Exception(), G4VPhysicalVolume::GetName(), and JustWarning.

Referenced by ComputeStep().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4PropagatorInField::SetDetectorFieldManager ( G4FieldManager newGlobalFieldManager)
inline
void G4PropagatorInField::SetEpsilonStep ( G4double  newEps)
inline

Referenced by ComputeStep().

+ Here is the caller graph for this function:

void G4PropagatorInField::SetIntersectionLocator ( G4VIntersectionLocator pLocator)
inline
void G4PropagatorInField::SetLargestAcceptableStep ( G4double  newBigDist)
inline

Referenced by G4BlineTracer::ComputeBlines(), and DetectorConstruction::SetMaxStepLength().

+ Here is the caller graph for this function:

void G4PropagatorInField::SetMaximumEpsilonStep ( G4double  newEpsMax)
inline

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

+ Here is the caller graph for this function:

void G4PropagatorInField::SetMaxLoopCount ( G4int  new_max)
inline
void G4PropagatorInField::SetMinimumEpsilonStep ( G4double  newEpsMin)
inline

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

+ Here is the caller graph for this function:

void G4PropagatorInField::SetNavigatorForPropagating ( G4Navigator SimpleOrMultiNavigator)
inline

Referenced by G4PathFinder::EnableParallelNavigation(), and G4TransportationManager::SetNavigatorForTracking().

+ Here is the caller graph for this function:

void G4PropagatorInField::SetThresholdNoZeroStep ( G4int  noAct,
G4int  noHarsh,
G4int  noAbandon 
)
inline
void G4PropagatorInField::SetTrajectoryFilter ( G4VCurvedTrajectoryFilter filter)

Definition at line 663 of file G4PropagatorInField.cc.

References fpTrajectoryFilter.

Referenced by G4TrackingMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4PropagatorInField::SetUseSafetyForOptimization ( G4bool  )
inline
G4int G4PropagatorInField::SetVerboseLevel ( G4int  verbose)

Definition at line 720 of file G4PropagatorInField.cc.

References fVerboseLevel, G4cout, G4endl, GetChordFinder(), G4ChordFinder::GetIntegrationDriver(), and G4MagInt_Driver::SetVerboseLevel().

+ Here is the call graph for this function:

void G4PropagatorInField::SetVerboseTrace ( G4bool  enable)
inline

Definition at line 102 of file G4PropagatorInField.hh.

References fVerbTracePiF.

void G4PropagatorInField::SetZeroStepThreshold ( G4double  newLength)
inline
G4int G4PropagatorInField::Verbose ( ) const
inline

Member Data Documentation

G4FieldTrack G4PropagatorInField::End_PointAndTangent
private

Definition at line 266 of file G4PropagatorInField.hh.

Referenced by ClearPropagatorState(), and ComputeStep().

G4int G4PropagatorInField::fAbandonThreshold_NoZeroSteps
private

Definition at line 221 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and G4PropagatorInField().

G4int G4PropagatorInField::fActionThreshold_NoZeroSteps
private

Definition at line 219 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and G4PropagatorInField().

G4bool G4PropagatorInField::fAllocatedLocator
private

Definition at line 232 of file G4PropagatorInField.hh.

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

G4FieldManager* G4PropagatorInField::fCurrentFieldMgr
private
G4FieldManager* G4PropagatorInField::fDetectorFieldMgr
private

Definition at line 237 of file G4PropagatorInField.hh.

Referenced by FindAndSetFieldManager(), and G4PropagatorInField().

G4double G4PropagatorInField::fEpsilonStep
private
G4bool G4PropagatorInField::fFirstStepInVolume
private

Definition at line 282 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), IsFirstStepInVolume(), and PrepareNewTrack().

G4double G4PropagatorInField::fFull_CurveLen_of_LastAttempt
private
G4VIntersectionLocator* G4PropagatorInField::fIntersectionLocator
private
G4double G4PropagatorInField::fLargestAcceptableStep
private

Definition at line 225 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and G4PropagatorInField().

G4double G4PropagatorInField::fLast_ProposedStepLength
private
G4bool G4PropagatorInField::fLastStepInVolume
private

Definition at line 283 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), IsLastStepInVolume(), and PrepareNewTrack().

G4int G4PropagatorInField::fMax_loop_count
private

Definition at line 214 of file G4PropagatorInField.hh.

Referenced by ComputeStep().

G4Navigator* G4PropagatorInField::fNavigator
private

Definition at line 250 of file G4PropagatorInField.hh.

Referenced by ComputeStep().

G4bool G4PropagatorInField::fNewTrack
private

Definition at line 284 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and PrepareNewTrack().

G4int G4PropagatorInField::fNoZeroStep
private
G4bool G4PropagatorInField::fParticleIsLooping
private

Definition at line 267 of file G4PropagatorInField.hh.

Referenced by ClearPropagatorState(), and ComputeStep().

G4double G4PropagatorInField::fPreviousSafety
private

Definition at line 275 of file G4PropagatorInField.hh.

Referenced by ClearPropagatorState(), ComputeStep(), and G4PropagatorInField().

G4ThreeVector G4PropagatorInField::fPreviousSftOrigin
private

Definition at line 274 of file G4PropagatorInField.hh.

Referenced by ClearPropagatorState(), ComputeStep(), and G4PropagatorInField().

G4VCurvedTrajectoryFilter* G4PropagatorInField::fpTrajectoryFilter
private
G4bool G4PropagatorInField::fSetFieldMgr
private

Definition at line 262 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and FindAndSetFieldManager().

G4int G4PropagatorInField::fSevereActionThreshold_NoZeroSteps
private

Definition at line 220 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and G4PropagatorInField().

G4bool G4PropagatorInField::fUseSafetyForOptimisation
private

Definition at line 216 of file G4PropagatorInField.hh.

Referenced by RefreshIntersectionLocator().

G4int G4PropagatorInField::fVerboseLevel
private
G4bool G4PropagatorInField::fVerbTracePiF
private

Definition at line 279 of file G4PropagatorInField.hh.

Referenced by G4PropagatorInField(), GetVerboseTrace(), and SetVerboseTrace().

G4double G4PropagatorInField::fZeroStepThreshold
private

Definition at line 222 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and G4PropagatorInField().

G4double G4PropagatorInField::kCarTolerance
private

Definition at line 229 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and G4PropagatorInField().


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