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