Geant4  10.00.p02
G4PathFinder Class Reference

#include <G4PathFinder.hh>

+ Collaboration diagram for G4PathFinder:

Public Member Functions

G4double ComputeStep (const G4FieldTrack &pFieldTrack, G4double pCurrentProposedStepLength, G4int navigatorId, G4int stepNo, G4double &pNewSafety, ELimited &limitedStep, G4FieldTrack &EndState, G4VPhysicalVolume *currentVolume)
 
void Locate (const G4ThreeVector &position, const G4ThreeVector &direction, G4bool relativeSearch=true)
 
void ReLocate (const G4ThreeVector &position)
 
void PrepareNewTrack (const G4ThreeVector &position, const G4ThreeVector &direction, G4VPhysicalVolume *massStartVol=0)
 
void EndTrack ()
 
G4TouchableHandle CreateTouchableHandle (G4int navId) const
 
G4VPhysicalVolumeGetLocatedVolume (G4int navId) const
 
G4bool IsParticleLooping () const
 
G4double GetCurrentSafety () const
 
G4double GetMinimumStep () const
 
unsigned int GetNumberGeometriesLimitingStep () const
 
G4double ComputeSafety (const G4ThreeVector &globalPoint)
 
G4double ObtainSafety (G4int navId, G4ThreeVector &globalCenterPoint)
 
void EnableParallelNavigation (G4bool enableChoice=true)
 
G4int SetVerboseLevel (G4int lev=-1)
 
G4int GetMaxLoopCount () const
 
void SetMaxLoopCount (G4int new_max)
 
void MovePoint ()
 
G4double LastPreSafety (G4int navId, G4ThreeVector &globalCenterPoint, G4double &minSafety)
 
void PushPostSafetyToPreSafety ()
 
G4StringLimitedString (ELimited lim)
 

Static Public Member Functions

static G4PathFinderGetInstance ()
 

Protected Member Functions

G4double DoNextLinearStep (const G4FieldTrack &FieldTrack, G4double proposedStepLength)
 
G4double DoNextCurvedStep (const G4FieldTrack &FieldTrack, G4double proposedStepLength, G4VPhysicalVolume *pCurrentPhysVolume)
 
void WhichLimited ()
 
void PrintLimited ()
 
G4bool UseSafetyForOptimization (G4bool)
 
void ReportMove (const G4ThreeVector &OldV, const G4ThreeVector &NewV, const G4String &Quantity) const
 
 G4PathFinder ()
 
 ~G4PathFinder ()
 
G4NavigatorGetNavigator (G4int n) const
 

Private Attributes

G4MultiNavigatorfpMultiNavigator
 
G4int fNoActiveNavigators
 
G4bool fNewTrack
 
G4NavigatorfpNavigator [fMaxNav]
 
ELimited fLimitedStep [fMaxNav]
 
G4bool fLimitTruth [fMaxNav]
 
G4double fCurrentStepSize [fMaxNav]
 
G4int fNoGeometriesLimiting
 
G4ThreeVector fPreSafetyLocation
 
G4double fPreSafetyMinValue
 
G4double fPreSafetyValues [fMaxNav]
 
G4ThreeVector fPreStepLocation
 
G4double fMinSafety_PreStepPt
 
G4double fCurrentPreStepSafety [fMaxNav]
 
G4bool fPreStepCenterRenewed
 
G4double fMinStep
 
G4double fTrueMinStep
 
G4VPhysicalVolumefLocatedVolume [fMaxNav]
 
G4ThreeVector fLastLocatedPosition
 
G4FieldTrack fEndState
 
G4bool fFieldExertedForce
 
G4bool fRelocatedPoint
 
G4ThreeVector fSafetyLocation
 
G4double fMinSafety_atSafLocation
 
G4double fNewSafetyComputed [fMaxNav]
 
G4int fLastStepNo
 
G4int fCurrentStepNo
 
G4int fVerboseLevel
 
G4TransportationManagerfpTransportManager
 
G4PropagatorInFieldfpFieldPropagator
 
G4double kCarTolerance
 

Static Private Attributes

static const G4int fMaxNav = 8
 
static G4ThreadLocal G4PathFinderfpPathFinder =0
 

Detailed Description

Definition at line 61 of file G4PathFinder.hh.

Constructor & Destructor Documentation

G4PathFinder::G4PathFinder ( )
protected
G4PathFinder::~G4PathFinder ( )
protected

Definition at line 115 of file G4PathFinder.cc.

References fpMultiNavigator, and fpPathFinder.

Member Function Documentation

G4double G4PathFinder::ComputeSafety ( const G4ThreeVector globalPoint)

Definition at line 741 of file G4PathFinder.cc.

References fMinSafety_atSafLocation, fNewSafetyComputed, fNoActiveNavigators, fpTransportManager, fSafetyLocation, fVerboseLevel, G4cout, G4endl, G4TransportationManager::GetActiveNavigatorsIterator(), kInfinity, and position.

Referenced by G4CoupledTransportation::AlongStepGetPhysicalInteractionLength(), G4SafetyHelper::ComputeSafety(), and ReLocate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4PathFinder::ComputeStep ( const G4FieldTrack pFieldTrack,
G4double  pCurrentProposedStepLength,
G4int  navigatorId,
G4int  stepNo,
G4double pNewSafety,
ELimited limitedStep,
G4FieldTrack EndState,
G4VPhysicalVolume currentVolume 
)
G4TouchableHandle G4PathFinder::CreateTouchableHandle ( G4int  navId) const
G4double G4PathFinder::DoNextCurvedStep ( const G4FieldTrack FieldTrack,
G4double  proposedStepLength,
G4VPhysicalVolume pCurrentPhysVolume 
)
protected

Definition at line 1146 of file G4PathFinder.cc.

References G4Navigator::ComputeSafety(), G4PropagatorInField::ComputeStep(), FatalException, fCurrentPreStepSafety, fCurrentStepSize, fEndState, fLimitedStep, fLimitTruth, fMinSafety_PreStepPt, fMinStep, fNoActiveNavigators, fNoGeometriesLimiting, fpFieldPropagator, fpMultiNavigator, fpNavigator, fPreSafetyLocation, fPreSafetyMinValue, fPreSafetyValues, fPreStepCenterRenewed, fPreStepLocation, fTrueMinStep, fVerboseLevel, G4cout, G4endl, G4Exception(), G4FieldTrack::GetPosition(), kDoNot, kInfinity, LimitedString(), G4INCL::Math::min(), G4MultiNavigator::ObtainFinalStep(), and PrintLimited().

Referenced by ComputeStep().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4PathFinder::DoNextLinearStep ( const G4FieldTrack FieldTrack,
G4double  proposedStepLength 
)
protected

Definition at line 810 of file G4PathFinder.cc.

References endPosition, fCurrentPreStepSafety, fCurrentStepSize, fEndState, fLimitedStep, fLimitTruth, fMinSafety_PreStepPt, fMinStep, fNoActiveNavigators, fNoGeometriesLimiting, fPreSafetyLocation, fPreSafetyMinValue, fPreSafetyValues, fPreStepCenterRenewed, fPreStepLocation, fpTransportManager, fTrueMinStep, fVerboseLevel, G4cout, G4endl, G4FieldTrack::GetMomentumDirection(), G4FieldTrack::GetPosition(), kDoNot, kInfinity, kUnique, G4INCL::Math::max(), G4INCL::Math::min(), G4FieldTrack::SetPosition(), G4FieldTrack::SetProperTimeOfFlight(), sqr(), and WhichLimited().

Referenced by ComputeStep().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4PathFinder::EnableParallelNavigation ( G4bool  enableChoice = true)

Definition at line 124 of file G4PathFinder.cc.

References G4SafetyHelper::EnableParallelNavigation(), fpFieldPropagator, fpMultiNavigator, fpTransportManager, G4TransportationManager::GetNavigatorForTracking(), G4TransportationManager::GetSafetyHelper(), and G4PropagatorInField::SetNavigatorForPropagating().

Referenced by EndTrack(), and PrepareNewTrack().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4PathFinder::EndTrack ( )

Definition at line 437 of file G4PathFinder.cc.

References EnableParallelNavigation().

Referenced by G4CoupledTransportation::EndTracking().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4PathFinder::GetCurrentSafety ( ) const
inline

Definition at line 299 of file G4PathFinder.hh.

References fMinSafety_PreStepPt.

Referenced by G4CoupledTransportation::AlongStepGetPhysicalInteractionLength().

+ Here is the caller graph for this function:

G4PathFinder * G4PathFinder::GetInstance ( void  )
static

Definition at line 57 of file G4PathFinder.cc.

References fpPathFinder, and G4PathFinder().

Referenced by G4CoupledTransportation::G4CoupledTransportation(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4ImportanceProcess::G4ImportanceProcess(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4ParallelWorldScoringProcess::G4ParallelWorldScoringProcess(), G4WeightCutOffProcess::G4WeightCutOffProcess(), G4WeightWindowProcess::G4WeightWindowProcess(), and G4SafetyHelper::InitialiseNavigator().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4VPhysicalVolume * G4PathFinder::GetLocatedVolume ( G4int  navId) const
inline

Definition at line 276 of file G4PathFinder.hh.

References fLocatedVolume, and fMaxNav.

Referenced by G4FastSimulationManagerProcess::AtRestGetPhysicalInteractionLength(), and G4FastSimulationManagerProcess::PostStepGetPhysicalInteractionLength().

+ Here is the caller graph for this function:

G4int G4PathFinder::GetMaxLoopCount ( ) const
inline
G4double G4PathFinder::GetMinimumStep ( ) const
inline

Definition at line 288 of file G4PathFinder.hh.

References fMinStep.

G4Navigator * G4PathFinder::GetNavigator ( G4int  n) const
inlineprotected

Definition at line 309 of file G4PathFinder.hh.

References fNoActiveNavigators, fpNavigator, and n.

Referenced by CreateTouchableHandle(), and PrintLimited().

+ Here is the caller graph for this function:

unsigned int G4PathFinder::GetNumberGeometriesLimitingStep ( ) const
inline

Definition at line 293 of file G4PathFinder.hh.

References fNoGeometriesLimiting.

Referenced by G4CoupledTransportation::AlongStepGetPhysicalInteractionLength().

+ Here is the caller graph for this function:

G4bool G4PathFinder::IsParticleLooping ( ) const
inline
G4double G4PathFinder::LastPreSafety ( G4int  navId,
G4ThreeVector globalCenterPoint,
G4double minSafety 
)
inline

Definition at line 322 of file G4PathFinder.hh.

References fPreSafetyLocation, fPreSafetyMinValue, and fPreSafetyValues.

G4String & G4PathFinder::LimitedString ( ELimited  lim)

Definition at line 1355 of file G4PathFinder.cc.

References kDoNot, kSharedOther, kSharedTransport, and kUnique.

Referenced by DoNextCurvedStep(), and PrintLimited().

+ Here is the caller graph for this function:

void G4PathFinder::Locate ( const G4ThreeVector position,
const G4ThreeVector direction,
G4bool  relativeSearch = true 
)

Definition at line 467 of file G4PathFinder.cc.

References fCurrentStepSize, fEndState, fLastLocatedPosition, fLimitedStep, fLimitTruth, fLocatedVolume, fNewTrack, fNoActiveNavigators, fpTransportManager, fRelocatedPoint, fVerboseLevel, G4cout, G4endl, G4TransportationManager::GetActiveNavigatorsIterator(), G4FieldTrack::GetPosition(), kCarTolerance, kDoNot, position, and ReportMove().

Referenced by ComputeStep(), G4SafetyHelper::Locate(), G4CoupledTransportation::PostStepDoIt(), and PrepareNewTrack().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4PathFinder::MovePoint ( )
inline

Definition at line 304 of file G4PathFinder.hh.

References fRelocatedPoint.

Referenced by ComputeStep(), and PrepareNewTrack().

+ Here is the caller graph for this function:

G4double G4PathFinder::ObtainSafety ( G4int  navId,
G4ThreeVector globalCenterPoint 
)
inline

Definition at line 315 of file G4PathFinder.hh.

References fNewSafetyComputed, and fSafetyLocation.

Referenced by G4CoupledTransportation::AlongStepGetPhysicalInteractionLength().

+ Here is the caller graph for this function:

void G4PathFinder::PrintLimited ( )
protected

Definition at line 1085 of file G4PathFinder.cc.

References fCurrentPreStepSafety, fCurrentStepNo, fCurrentStepSize, fLimitedStep, fLimitTruth, fMinStep, fNoActiveNavigators, fTrueMinStep, fVerboseLevel, G4cout, G4endl, G4VPhysicalVolume::GetName(), GetNavigator(), G4Navigator::GetWorldVolume(), and LimitedString().

Referenced by DoNextCurvedStep(), and WhichLimited().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4PathFinder::PushPostSafetyToPreSafety ( )
void G4PathFinder::ReLocate ( const G4ThreeVector position)

Definition at line 545 of file G4PathFinder.cc.

References ComputeSafety(), FatalException, fCurrentStepSize, fEndState, fLastLocatedPosition, fLimitedStep, fLimitTruth, fMinSafety_atSafLocation, fMinSafety_PreStepPt, fNewTrack, fNoActiveNavigators, fPreSafetyLocation, fPreSafetyMinValue, fPreStepLocation, fpTransportManager, fRelocatedPoint, fSafetyLocation, fVerboseLevel, G4cout, G4endl, G4Exception(), G4TransportationManager::GetActiveNavigatorsIterator(), G4GeometryTolerance::GetInstance(), G4FieldTrack::GetPosition(), G4GeometryTolerance::GetRadialTolerance(), kDoNot, G4INCL::Math::max(), position, and ReportMove().

Referenced by G4CoupledTransportation::PostStepDoIt(), and G4SafetyHelper::ReLocateWithinVolume().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4PathFinder::ReportMove ( const G4ThreeVector OldV,
const G4ThreeVector NewV,
const G4String Quantity 
) const
protected

Definition at line 445 of file G4PathFinder.cc.

References G4cerr, G4endl, G4Exception(), JustWarning, and mm.

Referenced by Locate(), and ReLocate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4PathFinder::SetMaxLoopCount ( G4int  new_max)
inline
G4int G4PathFinder::SetVerboseLevel ( G4int  lev = -1)
inline

Definition at line 283 of file G4PathFinder.hh.

References fVerboseLevel.

G4bool G4PathFinder::UseSafetyForOptimization ( G4bool  )
inlineprotected
void G4PathFinder::WhichLimited ( )
protected

Definition at line 1027 of file G4PathFinder.cc.

References fCurrentStepSize, fLimitedStep, fLimitTruth, fMinStep, fNoActiveNavigators, fNoGeometriesLimiting, fVerboseLevel, G4cout, G4endl, kCarTolerance, kDoNot, kInfinity, kSharedOther, kSharedTransport, kUnique, and PrintLimited().

Referenced by DoNextLinearStep().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

G4double G4PathFinder::fCurrentPreStepSafety[fMaxNav]
private
G4int G4PathFinder::fCurrentStepNo
private

Definition at line 260 of file G4PathFinder.hh.

Referenced by ComputeStep(), and PrintLimited().

G4double G4PathFinder::fCurrentStepSize[fMaxNav]
private
G4FieldTrack G4PathFinder::fEndState
private

Definition at line 246 of file G4PathFinder.hh.

Referenced by ComputeStep(), DoNextCurvedStep(), DoNextLinearStep(), Locate(), and ReLocate().

G4bool G4PathFinder::fFieldExertedForce
private

Definition at line 247 of file G4PathFinder.hh.

Referenced by ComputeStep().

G4ThreeVector G4PathFinder::fLastLocatedPosition
private

Definition at line 243 of file G4PathFinder.hh.

Referenced by ComputeStep(), G4PathFinder(), Locate(), PrepareNewTrack(), and ReLocate().

G4int G4PathFinder::fLastStepNo
private

Definition at line 260 of file G4PathFinder.hh.

Referenced by ComputeStep().

G4bool G4PathFinder::fLimitTruth[fMaxNav]
private
G4VPhysicalVolume* G4PathFinder::fLocatedVolume[fMaxNav]
private
const G4int G4PathFinder::fMaxNav = 8
staticprivate

Definition at line 211 of file G4PathFinder.hh.

Referenced by G4PathFinder(), GetLocatedVolume(), and PrepareNewTrack().

G4double G4PathFinder::fMinSafety_atSafLocation
private
G4double G4PathFinder::fMinSafety_PreStepPt
private
G4double G4PathFinder::fMinStep
private
G4double G4PathFinder::fNewSafetyComputed[fMaxNav]
private
G4bool G4PathFinder::fNewTrack
private

Definition at line 209 of file G4PathFinder.hh.

Referenced by ComputeStep(), G4PathFinder(), Locate(), PrepareNewTrack(), and ReLocate().

G4int G4PathFinder::fNoGeometriesLimiting
private
G4PropagatorInField* G4PathFinder::fpFieldPropagator
private
G4MultiNavigator* G4PathFinder::fpMultiNavigator
private
G4Navigator* G4PathFinder::fpNavigator[fMaxNav]
private

Definition at line 215 of file G4PathFinder.hh.

Referenced by DoNextCurvedStep(), G4PathFinder(), GetNavigator(), and PrepareNewTrack().

G4ThreadLocal G4PathFinder * G4PathFinder::fpPathFinder =0
staticprivate

Definition at line 269 of file G4PathFinder.hh.

Referenced by GetInstance(), and ~G4PathFinder().

G4ThreeVector G4PathFinder::fPreSafetyLocation
private
G4double G4PathFinder::fPreSafetyMinValue
private
G4double G4PathFinder::fPreSafetyValues[fMaxNav]
private
G4bool G4PathFinder::fPreStepCenterRenewed
private

Definition at line 235 of file G4PathFinder.hh.

Referenced by DoNextCurvedStep(), DoNextLinearStep(), and G4PathFinder().

G4ThreeVector G4PathFinder::fPreStepLocation
private

Definition at line 229 of file G4PathFinder.hh.

Referenced by DoNextCurvedStep(), DoNextLinearStep(), G4PathFinder(), and ReLocate().

G4TransportationManager* G4PathFinder::fpTransportManager
private
G4bool G4PathFinder::fRelocatedPoint
private

Definition at line 249 of file G4PathFinder.hh.

Referenced by ComputeStep(), Locate(), MovePoint(), PrepareNewTrack(), and ReLocate().

G4ThreeVector G4PathFinder::fSafetyLocation
private
G4double G4PathFinder::fTrueMinStep
private
G4double G4PathFinder::kCarTolerance
private

Definition at line 267 of file G4PathFinder.hh.

Referenced by ComputeStep(), G4PathFinder(), Locate(), and WhichLimited().


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