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);
143 if( (n>fNoActiveNavigators)||(n<0)){ n=0; }
144 return fpNavigator[
n];
166 G4int fNoActiveNavigators;
167 static const G4int fMaxNav = 16;
175 G4bool fLimitTruth[fMaxNav];
178 G4int fNoLimitingStep;
179 G4int fIdNavLimiting;
virtual G4ThreeVector GetGlobalExitNormal(const G4ThreeVector &CurrentE_Point, G4bool *obtained)
G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=false)
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)
G4VPhysicalVolume * LocateGlobalPointAndSetup(const G4ThreeVector &point, const G4ThreeVector *direction=0, const G4bool pRelativeSearch=true, const G4bool ignoreDirection=true)
G4TouchableHistoryHandle CreateTouchableHistoryHandle() const
virtual G4ThreeVector GetLocalExitNormal(G4bool *obtained)
G4VPhysicalVolume * ResetHierarchyAndLocate(const G4ThreeVector &point, const G4ThreeVector &direction, const G4TouchableHistory &h)
G4double ObtainFinalStep(G4int navigatorId, G4double &pNewSafety, G4double &minStepLast, ELimited &limitedStep)
void LocateGlobalPointWithinVolume(const G4ThreeVector &position)
virtual G4ThreeVector GetLocalExitNormalAndCheck(const G4ThreeVector &CurrentE_Point, G4bool *obtained)