Geant4  10.00.p02
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
 
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)
 
G4VIntersectionLocatorGetIntersectionLocator ()
 
void SetIntersectionLocator (G4VIntersectionLocator *pLocator)
 
G4double GetDeltaIntersection () const
 
G4double GetDeltaOneStep () const
 
G4FieldManagerGetCurrentFieldManager ()
 
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)
 

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
 

Detailed Description

Definition at line 64 of file G4PropagatorInField.hh.

Constructor & Destructor Documentation

G4PropagatorInField::~G4PropagatorInField ( )

Definition at line 111 of file G4PropagatorInField.cc.

References fAllocatedLocator, and fIntersectionLocator.

Member Function Documentation

void G4PropagatorInField::ClearPropagatorState ( )

Definition at line 613 of file G4PropagatorInField.cc.

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

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

+ Here is the caller graph for this function:

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

Definition at line 130 of file G4PropagatorInField.cc.

References G4ChordFinder::AdvanceChordLimited(), cm, G4VCurvedTrajectoryFilter::CreateNewTrajectorySegment(), End_PointAndTangent, fAbandonThreshold_NoZeroSteps, fActionThreshold_NoZeroSteps, FatalException, fCurrentFieldMgr, fEpsilonStep, fFull_CurveLen_of_LastAttempt, FindAndSetFieldManager(), fIntersectionLocator, fLargestAcceptableStep, fLast_ProposedStepLength, fMax_loop_count, fNavigator, fNoZeroStep, fParticleIsLooping, fPreviousSafety, fPreviousSftOrigin, fpTrajectoryFilter, fSetFieldMgr, fSevereActionThreshold_NoZeroSteps, fVerboseLevel, fZeroStepThreshold, 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::min(), mm, printStatus(), PrintStepLengthDiagnostic(), RefreshIntersectionLocator(), 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
G4FieldManager* G4PropagatorInField::GetCurrentFieldManager ( )
inline

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

+ 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
G4double G4PropagatorInField::GetZeroStepThreshold ( )
inline
std::vector< G4ThreeVector > * G4PropagatorInField::GimmeTrajectoryVectorAndForgetIt ( ) const

Definition at line 592 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::IsParticleLooping ( ) const
inline

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

+ 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 462 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 556 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 118 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::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(), F05DetectorConstruction::ConstructSDandField(), F06DetectorConstruction::ConstructSDandField(), and DetectorConstruction::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(), F05DetectorConstruction::ConstructSDandField(), F06DetectorConstruction::ConstructSDandField(), and DetectorConstruction::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 608 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 664 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::SetZeroStepThreshold ( G4double  newLength)
inline
G4int G4PropagatorInField::Verbose ( ) const
inline

Member Data Documentation

G4FieldTrack G4PropagatorInField::End_PointAndTangent
private

Definition at line 251 of file G4PropagatorInField.hh.

Referenced by ClearPropagatorState(), and ComputeStep().

G4int G4PropagatorInField::fAbandonThreshold_NoZeroSteps
private

Definition at line 206 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and G4PropagatorInField().

G4int G4PropagatorInField::fActionThreshold_NoZeroSteps
private

Definition at line 204 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and G4PropagatorInField().

G4bool G4PropagatorInField::fAllocatedLocator
private

Definition at line 217 of file G4PropagatorInField.hh.

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

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

Definition at line 222 of file G4PropagatorInField.hh.

Referenced by FindAndSetFieldManager(), and G4PropagatorInField().

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

Definition at line 210 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and G4PropagatorInField().

G4double G4PropagatorInField::fLast_ProposedStepLength
private
G4int G4PropagatorInField::fMax_loop_count
private

Definition at line 199 of file G4PropagatorInField.hh.

Referenced by ComputeStep().

G4Navigator* G4PropagatorInField::fNavigator
private

Definition at line 235 of file G4PropagatorInField.hh.

Referenced by ComputeStep().

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

Definition at line 252 of file G4PropagatorInField.hh.

Referenced by ClearPropagatorState(), and ComputeStep().

G4double G4PropagatorInField::fPreviousSafety
private

Definition at line 260 of file G4PropagatorInField.hh.

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

G4ThreeVector G4PropagatorInField::fPreviousSftOrigin
private

Definition at line 259 of file G4PropagatorInField.hh.

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

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

Definition at line 247 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and FindAndSetFieldManager().

G4int G4PropagatorInField::fSevereActionThreshold_NoZeroSteps
private

Definition at line 205 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and G4PropagatorInField().

G4bool G4PropagatorInField::fUseSafetyForOptimisation
private

Definition at line 201 of file G4PropagatorInField.hh.

Referenced by RefreshIntersectionLocator().

G4int G4PropagatorInField::fVerboseLevel
private

Definition at line 263 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), printStatus(), and SetVerboseLevel().

G4double G4PropagatorInField::fZeroStepThreshold
private

Definition at line 207 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and G4PropagatorInField().

G4double G4PropagatorInField::kCarTolerance
private

Definition at line 214 of file G4PropagatorInField.hh.

Referenced by ComputeStep(), and G4PropagatorInField().


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