ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4MultiNavigator Class Reference

#include <geant4/tree/geant4-10.6-release/source/geometry/navigation/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=nullptr, 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 &E_Pt, G4bool *obtained)
 
virtual G4ThreeVector GetGlobalExitNormal (const G4ThreeVector &E_Pt, G4bool *obtained)
 
G4NavigatorGetNavigator (G4int n) const
 
- Public Member Functions inherited from G4Navigator
 G4Navigator ()
 
 G4Navigator (const G4Navigator &)=delete
 
G4Navigatoroperator= (const G4Navigator &)=delete
 
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=nullptr) 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)
 
G4VExternalNavigationGetExternalNavigation () const
 
void SetExternalNavigation (G4VExternalNavigation *externalNav)
 
G4NavigatorClone () const
 

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 *pLv) const
 
G4bool CheckOverlapsIterative (G4VPhysicalVolume *vol)
 

Private Attributes

G4int fNoActiveNavigators = 0
 
G4VPhysicalVolumefLastMassWorld = nullptr
 
G4NavigatorfpNavigator [fMaxNav]
 
ELimited fLimitedStep [fMaxNav]
 
G4bool fLimitTruth [fMaxNav]
 
G4double fCurrentStepSize [fMaxNav]
 
G4double fNewSafety [fMaxNav]
 
G4int fNoLimitingStep = -1
 
G4int fIdNavLimiting = -1
 
G4double fMinStep = -kInfinity
 
G4double fMinSafety = -kInfinity
 
G4double fTrueMinStep = -kInfinity
 
G4VPhysicalVolumefLocatedVolume [fMaxNav]
 
G4ThreeVector fLastLocatedPosition
 
G4ThreeVector fSafetyLocation
 
G4double fMinSafety_atSafLocation = -1.0
 
G4ThreeVector fPreStepLocation
 
G4double fMinSafety_PreStepPt = -1.0
 
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 = false
 
G4ThreeVector fStepEndPoint
 
G4ThreeVector fLastStepEndPointLocal
 
G4int fVerbose = 0
 

Detailed Description

Definition at line 54 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 54 of file G4MultiNavigator.hh

Constructor & Destructor Documentation

G4MultiNavigator::G4MultiNavigator ( )

Definition at line 46 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 46 of file G4MultiNavigator.cc

References fCurrentStepSize, fLastLocatedPosition, fLastMassWorld, fLimitedStep, fLimitTruth, fLocatedVolume, fMaxNav, fNewSafety, fpNavigator, fPreStepLocation, fSafetyLocation, G4TransportationManager::GetNavigatorForTracking(), G4TransportationManager::GetTransportationManager(), G4Navigator::GetWorldVolume(), kInfinity, kUndefLimited, num, pTransportManager, and G4Navigator::SetWorldVolume().

+ Here is the call graph for this function:

G4MultiNavigator::~G4MultiNavigator ( )

Definition at line 77 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 77 of file G4MultiNavigator.cc

Member Function Documentation

void G4MultiNavigator::CheckMassWorld ( )
protected

Definition at line 628 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 628 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

Reimplemented from G4Navigator.

Definition at line 416 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 416 of file G4MultiNavigator.cc

References fMinSafety_atSafLocation, fNoActiveNavigators, fSafetyLocation, G4Navigator::fVerbose, G4cout, G4endl, kInfinity, num, position, and pTransportManager.

G4double G4MultiNavigator::ComputeStep ( const G4ThreeVector pGlobalPoint,
const G4ThreeVector pDirection,
const G4double  pCurrentProposedStepLength,
G4double pNewSafety 
)
virtual

Reimplemented from G4Navigator.

Definition at line 81 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 81 of file G4MultiNavigator.cc

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

+ Here is the call graph for this function:

G4TouchableHistoryHandle G4MultiNavigator::CreateTouchableHistoryHandle ( ) const
virtual

Reimplemented from G4Navigator.

Definition at line 449 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 449 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 E_Pt,
G4bool obtained 
)
virtual

Reimplemented from G4Navigator.

Definition at line 683 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 683 of file G4MultiNavigator.cc

References CLHEP::Hep3Vector::dot(), fIdNavLimiting, fLimitTruth, fNoActiveNavigators, fNoLimitingStep, fpNavigator, G4Navigator::fVerbose, G4endl, G4Exception(), G4TransportationManager::GetActiveNavigatorsIterator(), G4Navigator::GetGlobalExitNormal(), JustWarning, CLHEP::Hep3Vector::mag2(), message(), num, perThousand, and pTransportManager.

+ Here is the call graph for this function:

G4ThreeVector G4MultiNavigator::GetLocalExitNormal ( G4bool obtained)
virtual

Reimplemented from G4Navigator.

Definition at line 783 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 783 of file G4MultiNavigator.cc

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

Referenced by GetLocalExitNormalAndCheck().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Reimplemented from G4Navigator.

Definition at line 829 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 829 of file G4MultiNavigator.cc

References GetLocalExitNormal().

+ Here is the call graph for this function:

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

Definition at line 136 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 136 of file G4MultiNavigator.hh

References fNoActiveNavigators, fpNavigator, and n.

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

Reimplemented from G4Navigator.

Definition at line 304 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 304 of file G4MultiNavigator.cc

References fCurrentStepSize, fLimitedStep, fLimitTruth, fLocatedVolume, fNoActiveNavigators, G4Navigator::fVerbose, G4Navigator::fWasLimitedByGeometry, G4cout, G4endl, G4TransportationManager::GetActiveNavigatorsIterator(), G4VPhysicalVolume::GetCopyNo(), G4VPhysicalVolume::GetName(), kDoNot, num, 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 382 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 382 of file G4MultiNavigator.cc

References fCurrentStepSize, fLastLocatedPosition, fLimitedStep, fLimitTruth, fNoActiveNavigators, G4Navigator::fVerbose, G4Navigator::fWasLimitedByGeometry, G4cout, G4endl, G4TransportationManager::GetActiveNavigatorsIterator(), kDoNot, num, 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 180 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 180 of file G4MultiNavigator.cc

References FatalException, fCurrentStepSize, fLimitedStep, fMinStep, fNewSafety, fNoActiveNavigators, G4Navigator::fVerbose, G4cout, G4endl, G4Exception(), message(), 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 238 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 238 of file G4MultiNavigator.cc

References FatalException, fCurrentStepSize, fLastMassWorld, fLimitedStep, fLimitTruth, fLocatedVolume, fMaxNav, fNoActiveNavigators, fpNavigator, G4Navigator::fVerbose, G4Navigator::fWasLimitedByGeometry, G4cout, G4endl, G4Exception(), G4TransportationManager::GetActiveNavigatorsIterator(), G4VPhysicalVolume::GetName(), G4Navigator::GetWorldVolume(), kDoNot, message(), num, 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 217 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 217 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 530 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 530 of file G4MultiNavigator.cc

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

+ 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 644 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 644 of file G4MultiNavigator.cc

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

+ Here is the call graph for this function:

void G4MultiNavigator::ResetState ( )
protectedvirtual

Reimplemented from G4Navigator.

Definition at line 600 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 600 of file G4MultiNavigator.cc

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

+ Here is the call graph for this function:

void G4MultiNavigator::SetupHierarchy ( )
protectedvirtual

Reimplemented from G4Navigator.

Definition at line 619 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 619 of file G4MultiNavigator.cc

References FatalException, and G4Exception().

+ Here is the call graph for this function:

void G4MultiNavigator::WhichLimited ( )
protected

Definition at line 471 of file G4MultiNavigator.cc.

View newest version in sPHENIX GitHub at line 471 of file G4MultiNavigator.cc

References fCurrentStepSize, fIdNavLimiting, fLimitedStep, fLimitTruth, fMinStep, fNoActiveNavigators, fNoLimitingStep, G4Navigator::fVerbose, G4cout, G4endl, kDoNot, kInfinity, kSharedOther, kSharedTransport, kUnique, num, and Acts::Test::step().

Referenced by ComputeStep().

+ Here is the call graph for this function:

+ 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 2340 of file G4Navigator.cc.

View newest version in sPHENIX GitHub at line 2340 of file G4Navigator.cc

Member Data Documentation

G4double G4MultiNavigator::fCurrentStepSize[fMaxNav]
private
G4int G4MultiNavigator::fIdNavLimiting = -1
private

Definition at line 175 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 175 of file G4MultiNavigator.hh

Referenced by ComputeStep(), GetGlobalExitNormal(), GetLocalExitNormal(), and WhichLimited().

G4ThreeVector G4MultiNavigator::fLastLocatedPosition
private

Definition at line 186 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 186 of file G4MultiNavigator.hh

Referenced by G4MultiNavigator(), and LocateGlobalPointWithinVolume().

G4VPhysicalVolume* G4MultiNavigator::fLastMassWorld = nullptr
private

Definition at line 163 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 163 of file G4MultiNavigator.hh

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

ELimited G4MultiNavigator::fLimitedStep[fMaxNav]
private
G4bool G4MultiNavigator::fLimitTruth[fMaxNav]
private
G4VPhysicalVolume* G4MultiNavigator::fLocatedVolume[fMaxNav]
private

Definition at line 185 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 185 of file G4MultiNavigator.hh

Referenced by CreateTouchableHistoryHandle(), G4MultiNavigator(), LocateGlobalPointAndSetup(), and PrepareNavigators().

const G4int G4MultiNavigator::fMaxNav = 16
staticprivate

Definition at line 162 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 162 of file G4MultiNavigator.hh

Referenced by G4MultiNavigator(), and PrepareNavigators().

G4double G4MultiNavigator::fMinSafety = -kInfinity
private

Definition at line 180 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 180 of file G4MultiNavigator.hh

G4double G4MultiNavigator::fMinSafety_atSafLocation = -1.0
private

Definition at line 192 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 192 of file G4MultiNavigator.hh

Referenced by ComputeSafety().

G4double G4MultiNavigator::fMinSafety_PreStepPt = -1.0
private

Definition at line 196 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 196 of file G4MultiNavigator.hh

Referenced by ComputeStep().

G4double G4MultiNavigator::fMinStep = -kInfinity
private

Definition at line 179 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 179 of file G4MultiNavigator.hh

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

G4double G4MultiNavigator::fNewSafety[fMaxNav]
private

Definition at line 173 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 173 of file G4MultiNavigator.hh

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

G4int G4MultiNavigator::fNoActiveNavigators = 0
private
G4int G4MultiNavigator::fNoLimitingStep = -1
private

Definition at line 174 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 174 of file G4MultiNavigator.hh

Referenced by ComputeStep(), GetGlobalExitNormal(), GetLocalExitNormal(), and WhichLimited().

G4Navigator* G4MultiNavigator::fpNavigator[fMaxNav]
private
G4ThreeVector G4MultiNavigator::fPreStepLocation
private

Definition at line 194 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 194 of file G4MultiNavigator.hh

Referenced by ComputeStep(), and G4MultiNavigator().

G4ThreeVector G4MultiNavigator::fSafetyLocation
private

Definition at line 190 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 190 of file G4MultiNavigator.hh

Referenced by ComputeSafety(), and G4MultiNavigator().

G4double G4MultiNavigator::fTrueMinStep = -kInfinity
private

Definition at line 181 of file G4MultiNavigator.hh.

View newest version in sPHENIX GitHub at line 181 of file G4MultiNavigator.hh

Referenced by ComputeStep(), and PrintLimited().

G4TransportationManager* G4MultiNavigator::pTransportManager
private

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