Geant4  10.00.p01
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)
 
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 732 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 1137 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 801 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 PrepareNewTrack().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4PathFinder::GetCurrentSafety ( ) const
inline

Definition at line 294 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 271 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 283 of file G4PathFinder.hh.

References fMinStep.

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

Definition at line 304 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 288 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 317 of file G4PathFinder.hh.

References fPreSafetyLocation, fPreSafetyMinValue, and fPreSafetyValues.

G4String & G4PathFinder::LimitedString ( ELimited  lim)

Definition at line 1346 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 458 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 299 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 310 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 1076 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 536 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 436 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 278 of file G4PathFinder.hh.

References fVerboseLevel.

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

Definition at line 1018 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 255 of file G4PathFinder.hh.

Referenced by ComputeStep(), and PrintLimited().

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

Definition at line 241 of file G4PathFinder.hh.

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

G4bool G4PathFinder::fFieldExertedForce
private

Definition at line 242 of file G4PathFinder.hh.

Referenced by ComputeStep().

G4ThreeVector G4PathFinder::fLastLocatedPosition
private

Definition at line 238 of file G4PathFinder.hh.

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

G4int G4PathFinder::fLastStepNo
private

Definition at line 255 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 206 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 204 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 210 of file G4PathFinder.hh.

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

G4ThreadLocal G4PathFinder * G4PathFinder::fpPathFinder =0
staticprivate

Definition at line 264 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 230 of file G4PathFinder.hh.

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

G4ThreeVector G4PathFinder::fPreStepLocation
private

Definition at line 224 of file G4PathFinder.hh.

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

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

Definition at line 244 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 262 of file G4PathFinder.hh.

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


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