Geant4  10.01.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 RecheckDistanceToCurrentBoundary (const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double *prDistance, G4double *prNewSafety=0) 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 = 16
 
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 745 of file G4PathFinder.cc.

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

Referenced by G4CoupledTransportation::AlongStepGetPhysicalInteractionLength(), G4SafetyHelper::ComputeSafety(), G4ITSafetyHelper::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::DoNextLinearStep ( const G4FieldTrack FieldTrack,
G4double  proposedStepLength 
)
protected

Definition at line 814 of file G4PathFinder.cc.

References 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(), minSafety, 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 441 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 307 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(), G4ITSafetyHelper::InitialiseNavigator(), 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 284 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 296 of file G4PathFinder.hh.

References fMinStep.

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

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

References fPreSafetyLocation, fPreSafetyMinValue, and fPreSafetyValues.

G4String & G4PathFinder::LimitedString ( ELimited  lim)

Definition at line 1414 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 471 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(), G4ITSafetyHelper::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 312 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 323 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 1089 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 ( )
G4bool G4PathFinder::RecheckDistanceToCurrentBoundary ( const G4ThreeVector pGlobalPoint,
const G4ThreeVector pDirection,
const G4double  pCurrentProposedStepLength,
G4double prDistance,
G4double prNewSafety = 0 
) const

Definition at line 1369 of file G4PathFinder.cc.

References fNoActiveNavigators, fpNavigator, kInfinity, G4INCL::Math::min(), minSafety, and G4Navigator::RecheckDistanceToCurrentBoundary().

Referenced by G4SafetyHelper::RecheckDistanceToCurrentBoundary().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

References fVerboseLevel.

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

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

Referenced by ComputeStep(), and PrintLimited().

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

Definition at line 254 of file G4PathFinder.hh.

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

G4bool G4PathFinder::fFieldExertedForce
private

Definition at line 255 of file G4PathFinder.hh.

Referenced by ComputeStep().

G4ThreeVector G4PathFinder::fLastLocatedPosition
private

Definition at line 251 of file G4PathFinder.hh.

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

G4int G4PathFinder::fLastStepNo
private

Definition at line 268 of file G4PathFinder.hh.

Referenced by ComputeStep().

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

Definition at line 219 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 217 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
G4ThreadLocal G4PathFinder * G4PathFinder::fpPathFinder =0
staticprivate

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

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

G4ThreeVector G4PathFinder::fPreStepLocation
private

Definition at line 237 of file G4PathFinder.hh.

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

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

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

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


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