36#ifndef G4MULTINAVIGATOR_HH
37#define G4MULTINAVIGATOR_HH
68 const G4double pCurrentProposedStepLength,
95 const G4bool pRelativeSearch =
true,
96 const G4bool ignoreDirection =
true);
110 const G4bool keepState =
false );
G4double fCurrentStepSize[fMaxNav]
G4Navigator * fpNavigator[fMaxNav]
virtual G4ThreeVector GetGlobalExitNormal(const G4ThreeVector &E_Pt, G4bool *obtained)
G4double fNewSafety[fMaxNav]
G4double fMinSafety_PreStepPt
G4Navigator * GetNavigator(G4int n) const
G4ThreeVector fSafetyLocation
G4double ObtainFinalStep(G4int navigatorId, G4double &pNewSafety, G4double &minStepLast, ELimited &limitedStep)
void PrepareNewTrack(const G4ThreeVector position, const G4ThreeVector direction)
G4bool fLimitTruth[fMaxNav]
G4VPhysicalVolume * fLocatedVolume[fMaxNav]
G4VPhysicalVolume * ResetHierarchyAndLocate(const G4ThreeVector &point, const G4ThreeVector &direction, const G4TouchableHistory &h)
G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=false)
G4TransportationManager * pTransportManager
ELimited fLimitedStep[fMaxNav]
G4double ComputeStep(const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
virtual G4ThreeVector GetLocalExitNormalAndCheck(const G4ThreeVector &E_Pt, G4bool *obtained)
void LocateGlobalPointWithinVolume(const G4ThreeVector &position)
G4ThreeVector fPreStepLocation
G4ThreeVector fLastLocatedPosition
virtual G4ThreeVector GetLocalExitNormal(G4bool *obtained)
G4TouchableHistoryHandle CreateTouchableHistoryHandle() const
static const G4int fMaxNav
G4double fMinSafety_atSafLocation
friend std::ostream & operator<<(std::ostream &os, const G4Navigator &n)
G4VPhysicalVolume * fLastMassWorld
G4VPhysicalVolume * LocateGlobalPointAndSetup(const G4ThreeVector &point, const G4ThreeVector *direction=nullptr, const G4bool pRelativeSearch=true, const G4bool ignoreDirection=true)
G4int fNoActiveNavigators
static const G4double kInfinity