Geant4  10.02.p02
G4MultiNavigator Class Reference

#include <G4MultiNavigator.hh>

+ Inheritance diagram for G4MultiNavigator:
+ Collaboration diagram for G4MultiNavigator:

Public Member Functions

 G4MultiNavigator ()
 
 ~G4MultiNavigator ()
 
G4double ComputeStep (const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
 
G4double ObtainFinalStep (G4int navigatorId, G4double &pNewSafety, G4double &minStepLast, ELimited &limitedStep)
 
void PrepareNavigators ()
 
void PrepareNewTrack (const G4ThreeVector position, const G4ThreeVector direction)
 
G4VPhysicalVolumeResetHierarchyAndLocate (const G4ThreeVector &point, const G4ThreeVector &direction, const G4TouchableHistory &h)
 
G4VPhysicalVolumeLocateGlobalPointAndSetup (const G4ThreeVector &point, const G4ThreeVector *direction=0, const G4bool pRelativeSearch=true, const G4bool ignoreDirection=true)
 
void LocateGlobalPointWithinVolume (const G4ThreeVector &position)
 
G4double ComputeSafety (const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=false)
 
G4TouchableHistoryHandle CreateTouchableHistoryHandle () const
 
virtual G4ThreeVector GetLocalExitNormal (G4bool *obtained)
 
virtual G4ThreeVector GetLocalExitNormalAndCheck (const G4ThreeVector &CurrentE_Point, G4bool *obtained)
 
virtual G4ThreeVector GetGlobalExitNormal (const G4ThreeVector &CurrentE_Point, G4bool *obtained)
 
G4NavigatorGetNavigator (G4int n) const
 
- Public Member Functions inherited from G4Navigator
 G4Navigator ()
 
virtual ~G4Navigator ()
 
G4double CheckNextStep (const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
 
void LocateGlobalPointAndUpdateTouchableHandle (const G4ThreeVector &position, const G4ThreeVector &direction, G4TouchableHandle &oldTouchableToUpdate, const G4bool RelativeSearch=true)
 
void LocateGlobalPointAndUpdateTouchable (const G4ThreeVector &position, const G4ThreeVector &direction, G4VTouchable *touchableToUpdate, const G4bool RelativeSearch=true)
 
void LocateGlobalPointAndUpdateTouchable (const G4ThreeVector &position, G4VTouchable *touchableToUpdate, const G4bool RelativeSearch=true)
 
void SetGeometricallyLimitedStep ()
 
virtual G4bool RecheckDistanceToCurrentBoundary (const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double CurrentProposedStepLength, G4double *prDistance, G4double *prNewSafety=0) const
 
G4VPhysicalVolumeGetWorldVolume () const
 
void SetWorldVolume (G4VPhysicalVolume *pWorld)
 
G4GRSVolumeCreateGRSVolume () const
 
G4GRSSolidCreateGRSSolid () const
 
G4TouchableHistoryCreateTouchableHistory () const
 
G4TouchableHistoryCreateTouchableHistory (const G4NavigationHistory *) const
 
G4int GetVerboseLevel () const
 
void SetVerboseLevel (G4int level)
 
G4bool IsActive () const
 
void Activate (G4bool flag)
 
G4bool EnteredDaughterVolume () const
 
G4bool ExitedMotherVolume () const
 
void CheckMode (G4bool mode)
 
G4bool IsCheckModeActive () const
 
void SetPushVerbosity (G4bool mode)
 
void PrintState () const
 
const G4AffineTransformGetGlobalToLocalTransform () const
 
const G4AffineTransform GetLocalToGlobalTransform () const
 
G4AffineTransform GetMotherToDaughterTransform (G4VPhysicalVolume *dVolume, G4int dReplicaNo, EVolume dVolumeType)
 
void ResetStackAndState ()
 
G4int SeverityOfZeroStepping (G4int *noZeroSteps) const
 
G4ThreeVector GetCurrentLocalCoordinate () const
 
G4ThreeVector NetTranslation () const
 
G4RotationMatrix NetRotation () const
 
void EnableBestSafety (G4bool value=false)
 

Protected Member Functions

void ResetState ()
 
void SetupHierarchy ()
 
void WhichLimited ()
 
void PrintLimited ()
 
void CheckMassWorld ()
 
- Protected Member Functions inherited from G4Navigator
void SetSavedState ()
 
void RestoreSavedState ()
 
G4ThreeVector ComputeLocalPoint (const G4ThreeVector &rGlobPoint) const
 
G4ThreeVector ComputeLocalAxis (const G4ThreeVector &pVec) const
 
EVolume VolumeType (const G4VPhysicalVolume *pVol) const
 
EVolume CharacteriseDaughters (const G4LogicalVolume *pLog) const
 
G4int GetDaughtersRegularStructureId (const G4LogicalVolume *pLog) const
 

Private Attributes

G4int fNoActiveNavigators
 
G4VPhysicalVolumefLastMassWorld
 
G4NavigatorfpNavigator [fMaxNav]
 
ELimited fLimitedStep [fMaxNav]
 
G4bool fLimitTruth [fMaxNav]
 
G4double fCurrentStepSize [fMaxNav]
 
G4double fNewSafety [fMaxNav]
 
G4int fNoLimitingStep
 
G4int fIdNavLimiting
 
G4double fMinStep
 
G4double fMinSafety
 
G4double fTrueMinStep
 
G4VPhysicalVolumefLocatedVolume [fMaxNav]
 
G4ThreeVector fLastLocatedPosition
 
G4ThreeVector fSafetyLocation
 
G4double fMinSafety_atSafLocation
 
G4ThreeVector fPreStepLocation
 
G4double fMinSafety_PreStepPt
 
G4TransportationManagerpTransportManager
 

Static Private Attributes

static const G4int fMaxNav = 16
 

Friends

std::ostream & operator<< (std::ostream &os, const G4Navigator &n)
 

Additional Inherited Members

- Protected Attributes inherited from G4Navigator
G4double kCarTolerance
 
G4double fMinStep
 
G4double fSqTol
 
G4NavigationHistory fHistory
 
G4bool fEnteredDaughter
 
G4bool fExitedMother
 
G4bool fWasLimitedByGeometry
 
G4ThreeVector fStepEndPoint
 
G4ThreeVector fLastStepEndPointLocal
 
G4int fVerbose
 

Detailed Description

Definition at line 59 of file G4MultiNavigator.hh.

Constructor & Destructor Documentation

G4MultiNavigator::~G4MultiNavigator ( )

Definition at line 90 of file G4MultiNavigator.cc.

Member Function Documentation

void G4MultiNavigator::CheckMassWorld ( )
protected

Definition at line 640 of file G4MultiNavigator.cc.

References FatalException, fLastMassWorld, G4Exception(), G4TransportationManager::GetNavigatorForTracking(), G4Navigator::GetWorldVolume(), and pTransportManager.

+ Here is the call graph for this function:

G4double G4MultiNavigator::ComputeSafety ( const G4ThreeVector globalpoint,
const G4double  pProposedMaxLength = DBL_MAX,
const G4bool  keepState = false 
)
virtual
G4double G4MultiNavigator::ComputeStep ( const G4ThreeVector pGlobalPoint,
const G4ThreeVector pDirection,
const G4double  pCurrentProposedStepLength,
G4double pNewSafety 
)
virtual

Reimplemented from G4Navigator.

Definition at line 94 of file G4MultiNavigator.cc.

References fCurrentStepSize, fIdNavLimiting, fMinSafety_PreStepPt, fMinStep, fNewSafety, fNoActiveNavigators, fNoLimitingStep, fPreStepLocation, fTrueMinStep, G4Navigator::fVerbose, G4cout, G4endl, kInfinity, minSafety, pTransportManager, and WhichLimited().

+ Here is the call graph for this function:

G4TouchableHistoryHandle G4MultiNavigator::CreateTouchableHistoryHandle ( ) const
virtual

Reimplemented from G4Navigator.

Definition at line 462 of file G4MultiNavigator.cc.

References G4Navigator::CreateTouchableHistory(), FatalException, fLocatedVolume, fpNavigator, G4Exception(), G4TouchableHistory::GetHistory(), and G4TouchableHistory::UpdateYourself().

+ Here is the call graph for this function:

G4ThreeVector G4MultiNavigator::GetGlobalExitNormal ( const G4ThreeVector CurrentE_Point,
G4bool obtained 
)
virtual

Reimplemented from G4Navigator.

Definition at line 695 of file G4MultiNavigator.cc.

References fIdNavLimiting, fLimitTruth, fNoActiveNavigators, fNoLimitingStep, fpNavigator, G4Navigator::fVerbose, G4endl, G4Exception(), G4TransportationManager::GetActiveNavigatorsIterator(), G4Navigator::GetGlobalExitNormal(), JustWarning, perThousand, and pTransportManager.

+ Here is the call graph for this function:

G4ThreeVector G4MultiNavigator::GetLocalExitNormal ( G4bool obtained)
virtual

Reimplemented from G4Navigator.

Definition at line 786 of file G4MultiNavigator.cc.

References FatalException, fIdNavLimiting, fNoLimitingStep, fpNavigator, G4endl, G4Exception(), G4ThreadLocal, G4Navigator::GetLocalExitNormal(), and JustWarning.

Referenced by GetLocalExitNormalAndCheck().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVector G4MultiNavigator::GetLocalExitNormalAndCheck ( const G4ThreeVector CurrentE_Point,
G4bool obtained 
)
virtual

Reimplemented from G4Navigator.

Definition at line 830 of file G4MultiNavigator.cc.

References GetLocalExitNormal().

+ Here is the call graph for this function:

G4Navigator* G4MultiNavigator::GetNavigator ( G4int  n) const
inline

Definition at line 141 of file G4MultiNavigator.hh.

References fNoActiveNavigators, fpNavigator, and n.

G4VPhysicalVolume * G4MultiNavigator::LocateGlobalPointAndSetup ( const G4ThreeVector point,
const G4ThreeVector direction = 0,
const G4bool  pRelativeSearch = true,
const G4bool  ignoreDirection = true 
)
virtual

Reimplemented from G4Navigator.

Definition at line 317 of file G4MultiNavigator.cc.

References fCurrentStepSize, fLimitedStep, fLimitTruth, fLocatedVolume, fNoActiveNavigators, G4Navigator::fVerbose, G4Navigator::fWasLimitedByGeometry, G4cout, G4endl, G4TransportationManager::GetActiveNavigatorsIterator(), G4VPhysicalVolume::GetCopyNo(), G4VPhysicalVolume::GetName(), kDoNot, and pTransportManager.

Referenced by PrepareNewTrack(), and ResetHierarchyAndLocate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4MultiNavigator::LocateGlobalPointWithinVolume ( const G4ThreeVector position)
virtual

Reimplemented from G4Navigator.

Definition at line 395 of file G4MultiNavigator.cc.

References fCurrentStepSize, fLastLocatedPosition, fLimitedStep, fLimitTruth, fNoActiveNavigators, G4Navigator::fVerbose, G4Navigator::fWasLimitedByGeometry, G4cout, G4endl, G4TransportationManager::GetActiveNavigatorsIterator(), kDoNot, position, and pTransportManager.

+ Here is the call graph for this function:

G4double G4MultiNavigator::ObtainFinalStep ( G4int  navigatorId,
G4double pNewSafety,
G4double minStepLast,
ELimited limitedStep 
)

Definition at line 193 of file G4MultiNavigator.cc.

References FatalException, fCurrentStepSize, fLimitedStep, fMinStep, fNewSafety, fNoActiveNavigators, G4Navigator::fVerbose, G4cout, G4endl, G4Exception(), and mm.

Referenced by G4PathFinder::DoNextCurvedStep().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4MultiNavigator::PrepareNavigators ( )

Definition at line 251 of file G4MultiNavigator.cc.

References FatalException, fCurrentStepSize, fLastMassWorld, fLimitedStep, fLimitTruth, fLocatedVolume, fMaxNav, fNoActiveNavigators, fpNavigator, G4Navigator::fVerbose, G4Navigator::fWasLimitedByGeometry, G4cout, G4endl, G4Exception(), G4VPhysicalVolume::GetName(), G4Navigator::GetWorldVolume(), kDoNot, pTransportManager, and G4Navigator::SetWorldVolume().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4MultiNavigator::PrepareNewTrack ( const G4ThreeVector  position,
const G4ThreeVector  direction 
)

Definition at line 230 of file G4MultiNavigator.cc.

References G4Navigator::fVerbose, G4cout, G4endl, LocateGlobalPointAndSetup(), and PrepareNavigators().

+ Here is the call graph for this function:

void G4MultiNavigator::PrintLimited ( )
protected

Definition at line 543 of file G4MultiNavigator.cc.

References fCurrentStepSize, fLimitedStep, fLimitTruth, fMinStep, fNewSafety, fNoActiveNavigators, fpNavigator, fTrueMinStep, G4Navigator::fVerbose, G4cout, G4endl, G4VPhysicalVolume::GetName(), G4Navigator::GetWorldVolume(), kDoNot, kSharedOther, kSharedTransport, and kUnique.

+ Here is the call graph for this function:

G4VPhysicalVolume * G4MultiNavigator::ResetHierarchyAndLocate ( const G4ThreeVector point,
const G4ThreeVector direction,
const G4TouchableHistory h 
)
virtual

Reimplemented from G4Navigator.

Definition at line 656 of file G4MultiNavigator.cc.

References FatalException, fNoActiveNavigators, fpNavigator, G4Exception(), G4TransportationManager::GetActiveNavigatorsIterator(), LocateGlobalPointAndSetup(), pTransportManager, and G4Navigator::ResetHierarchyAndLocate().

+ Here is the call graph for this function:

void G4MultiNavigator::ResetState ( )
protectedvirtual

Reimplemented from G4Navigator.

Definition at line 613 of file G4MultiNavigator.cc.

References FatalException, fNoActiveNavigators, G4Navigator::fWasLimitedByGeometry, G4Exception(), and pTransportManager.

+ Here is the call graph for this function:

void G4MultiNavigator::SetupHierarchy ( )
protectedvirtual

Reimplemented from G4Navigator.

Definition at line 631 of file G4MultiNavigator.cc.

References FatalException, and G4Exception().

+ Here is the call graph for this function:

void G4MultiNavigator::WhichLimited ( )
protected

Definition at line 484 of file G4MultiNavigator.cc.

References fCurrentStepSize, fIdNavLimiting, fLimitedStep, fLimitTruth, fMinStep, fNoActiveNavigators, fNoLimitingStep, G4Navigator::fVerbose, G4cout, G4endl, kDoNot, kInfinity, kSharedOther, kSharedTransport, and kUnique.

Referenced by ComputeStep().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const G4Navigator n 
)
friend

Definition at line 2231 of file G4Navigator.cc.

Member Data Documentation

G4int G4MultiNavigator::fIdNavLimiting
private
G4ThreeVector G4MultiNavigator::fLastLocatedPosition
private

Definition at line 188 of file G4MultiNavigator.hh.

Referenced by G4MultiNavigator(), and LocateGlobalPointWithinVolume().

G4VPhysicalVolume* G4MultiNavigator::fLastMassWorld
private

Definition at line 168 of file G4MultiNavigator.hh.

Referenced by CheckMassWorld(), G4MultiNavigator(), and PrepareNavigators().

G4VPhysicalVolume* G4MultiNavigator::fLocatedVolume[fMaxNav]
private
const G4int G4MultiNavigator::fMaxNav = 16
staticprivate

Definition at line 167 of file G4MultiNavigator.hh.

Referenced by G4MultiNavigator(), and PrepareNavigators().

G4double G4MultiNavigator::fMinSafety
private

Definition at line 183 of file G4MultiNavigator.hh.

Referenced by G4MultiNavigator().

G4double G4MultiNavigator::fMinSafety_atSafLocation
private

Definition at line 192 of file G4MultiNavigator.hh.

Referenced by ComputeSafety(), and G4MultiNavigator().

G4double G4MultiNavigator::fMinSafety_PreStepPt
private

Definition at line 194 of file G4MultiNavigator.hh.

Referenced by ComputeStep(), and G4MultiNavigator().

G4double G4MultiNavigator::fMinStep
private
G4double G4MultiNavigator::fNewSafety[fMaxNav]
private

Definition at line 177 of file G4MultiNavigator.hh.

Referenced by ComputeStep(), G4MultiNavigator(), ObtainFinalStep(), and PrintLimited().

G4int G4MultiNavigator::fNoLimitingStep
private
G4ThreeVector G4MultiNavigator::fPreStepLocation
private

Definition at line 193 of file G4MultiNavigator.hh.

Referenced by ComputeStep(), and G4MultiNavigator().

G4ThreeVector G4MultiNavigator::fSafetyLocation
private

Definition at line 191 of file G4MultiNavigator.hh.

Referenced by ComputeSafety(), and G4MultiNavigator().

G4double G4MultiNavigator::fTrueMinStep
private

Definition at line 184 of file G4MultiNavigator.hh.

Referenced by ComputeStep(), G4MultiNavigator(), and PrintLimited().


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