Geant4  10.00.p04
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4PathFinder Class Reference

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
 

Constructor & Destructor Documentation

G4PathFinder ( )
protected
~G4PathFinder ( )
protected

Member Function Documentation

static G4PathFinder* GetInstance ( )
static
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
G4VPhysicalVolume * GetLocatedVolume ( G4int  navId) const

References fLocatedVolume, and fMaxNav.

G4bool IsParticleLooping ( ) const
G4double GetCurrentSafety ( ) const

References fMinSafety_PreStepPt.

G4double GetMinimumStep ( ) const

References fMinStep.

unsigned int GetNumberGeometriesLimitingStep ( ) const

References fNoGeometriesLimiting.

G4double ComputeSafety ( const G4ThreeVector globalPoint)
G4double ObtainSafety ( G4int  navId,
G4ThreeVector globalCenterPoint 
)
void EnableParallelNavigation ( G4bool  enableChoice = true)
G4int SetVerboseLevel ( G4int  lev = -1)

References fVerboseLevel.

G4int GetMaxLoopCount ( ) const
void SetMaxLoopCount ( G4int  new_max)
void MovePoint ( )

References fRelocatedPoint.

G4double LastPreSafety ( G4int  navId,
G4ThreeVector globalCenterPoint,
G4double minSafety 
)
void PushPostSafetyToPreSafety ( )
G4String& LimitedString ( ELimited  lim)
G4double DoNextLinearStep ( const G4FieldTrack FieldTrack,
G4double  proposedStepLength 
)
protected
G4double DoNextCurvedStep ( const G4FieldTrack FieldTrack,
G4double  proposedStepLength,
G4VPhysicalVolume pCurrentPhysVolume 
)
protected
void WhichLimited ( )
protected
void PrintLimited ( )
protected
G4bool UseSafetyForOptimization ( G4bool  )
protected
void ReportMove ( const G4ThreeVector OldV,
const G4ThreeVector NewV,
const G4String Quantity 
) const
protected
G4Navigator * GetNavigator ( G4int  n) const
protected

References fNoActiveNavigators, and fpNavigator.

Member Data Documentation

G4MultiNavigator* fpMultiNavigator
private
G4int fNoActiveNavigators
private

Referenced by GetNavigator().

G4bool fNewTrack
private
const G4int fMaxNav = 8
staticprivate

Referenced by GetLocatedVolume().

G4Navigator* fpNavigator[fMaxNav]
private

Referenced by GetNavigator().

ELimited fLimitedStep[fMaxNav]
private
G4bool fLimitTruth[fMaxNav]
private
G4double fCurrentStepSize[fMaxNav]
private
G4int fNoGeometriesLimiting
private
G4ThreeVector fPreSafetyLocation
private

Referenced by LastPreSafety().

G4double fPreSafetyMinValue
private

Referenced by LastPreSafety().

G4double fPreSafetyValues[fMaxNav]
private

Referenced by LastPreSafety().

G4ThreeVector fPreStepLocation
private
G4double fMinSafety_PreStepPt
private

Referenced by GetCurrentSafety().

G4double fCurrentPreStepSafety[fMaxNav]
private
G4bool fPreStepCenterRenewed
private
G4double fMinStep
private

Referenced by GetMinimumStep().

G4double fTrueMinStep
private
G4VPhysicalVolume* fLocatedVolume[fMaxNav]
private

Referenced by GetLocatedVolume().

G4ThreeVector fLastLocatedPosition
private
G4FieldTrack fEndState
private
G4bool fFieldExertedForce
private
G4bool fRelocatedPoint
private

Referenced by MovePoint().

G4ThreeVector fSafetyLocation
private

Referenced by ObtainSafety().

G4double fMinSafety_atSafLocation
private
G4double fNewSafetyComputed[fMaxNav]
private

Referenced by ObtainSafety().

G4int fLastStepNo
private
G4int fCurrentStepNo
private
G4int fVerboseLevel
private

Referenced by SetVerboseLevel().

G4TransportationManager* fpTransportManager
private
G4PropagatorInField* fpFieldPropagator
private
G4double kCarTolerance
private
G4ThreadLocal G4PathFinder* fpPathFinder
staticprivate