36#ifndef G4MULTINAVIGATOR_HH
37#define G4MULTINAVIGATOR_HH
68 const G4double pCurrentProposedStepLength,
95 const G4bool pRelativeSearch =
true,
96 const G4bool ignoreDirection =
true)
override;
110 const G4bool keepState =
false )
override;
120 G4bool* obtained )
override;
122 G4bool* obtained )
override;
138 if( (n>fNoActiveNavigators) || (n<0) ) { n=0; }
139 return fpNavigator[n];
161 G4int fNoActiveNavigators = 0;
162 static const G4int fMaxNav = 16;
171 G4bool fLimitTruth[fMaxNav];
174 G4int fNoLimitingStep = -1;
175 G4int fIdNavLimiting = -1;
192 G4double fMinSafety_atSafLocation = -1.0;
196 G4double fMinSafety_PreStepPt = -1.0;
G4VPhysicalVolume * LocateGlobalPointAndSetup(const G4ThreeVector &point, const G4ThreeVector *direction=nullptr, const G4bool pRelativeSearch=true, const G4bool ignoreDirection=true) override
~G4MultiNavigator() override
G4Navigator * GetNavigator(G4int n) const
G4double ObtainFinalStep(G4int navigatorId, G4double &pNewSafety, G4double &minStepLast, ELimited &limitedStep)
void ResetState() override
void SetupHierarchy() override
void LocateGlobalPointWithinVolume(const G4ThreeVector &position) override
G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=false) override
G4double ComputeStep(const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety) override
G4ThreeVector GetLocalExitNormal(G4bool *obtained) override
void PrepareNewTrack(const G4ThreeVector &position, const G4ThreeVector direction)
G4ThreeVector GetLocalExitNormalAndCheck(const G4ThreeVector &E_Pt, G4bool *obtained) override
G4ThreeVector GetGlobalExitNormal(const G4ThreeVector &E_Pt, G4bool *obtained) override
friend std::ostream & operator<<(std::ostream &os, const G4Navigator &n)
G4VPhysicalVolume * ResetHierarchyAndLocate(const G4ThreeVector &point, const G4ThreeVector &direction, const G4TouchableHistory &h) override
G4TouchableHandle CreateTouchableHistoryHandle() const override