57 #ifndef G4ITNAVIGATOR_HH 
   58 #define G4ITNAVIGATOR_HH 
  134                                const G4double pCurrentProposedStepLength,
 
  151                          const G4double pCurrentProposedStepLength,
 
  171                                              const G4bool pRelativeSearch=
true,
 
  172                                              const G4bool ignoreDirection=
true);
 
  209                 const G4bool               RelativeSearch = 
true);
 
  218                 const G4bool               RelativeSearch = 
true);
 
  226                 const G4bool               RelativeSearch = 
true);
 
  235                                  const G4bool keepState = 
true);
 
  248                                const G4double  CurrentProposedStepLength,
 
  604 #define CheckNavigatorStateIsValid() \ 
  605 if(fpNavigatorState == 0) \ 
  607     G4ExceptionDescription exceptionDescription; \ 
  608     exceptionDescription << "The navigator state is NULL. "; \ 
  609     exceptionDescription << "Either NewNavigatorStateAndLocate was not called "; \ 
  610     exceptionDescription << "or the provided navigator state was already NULL."; \ 
  611     G4Exception((G4String("G4Navigator")+G4String(__FUNCTION__)).c_str(),\ 
  612                 "NavigatorStateNotValid",FatalException,exceptionDescription); \ 
G4bool sLocatedOutsideWorld
 
G4bool fChangedGrandMotherRefFrame
 
void LocateGlobalPointAndUpdateTouchableHandle(const G4ThreeVector &position, const G4ThreeVector &direction, G4TouchableHandle &oldTouchableToUpdate, const G4bool RelativeSearch=true)
 
std::shared_ptr< G4ITNavigatorState_Lock2 > GetSnapshotOfState()
 
G4ThreeVector fGrandMotherExitNormal
 
G4ITNavigatorState_Lock2 * GetNavigatorState()
 
void ResetStackAndState()
 
G4VPhysicalVolume * spBlockedPhysicalVolume
 
virtual void SetupHierarchy()
 
virtual G4double ComputeStep(const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
 
CLHEP::Hep3Vector G4ThreeVector
 
CLHEP::HepRotation G4RotationMatrix
 
G4ThreeVector fExitNormal
 
G4bool fCalculatedExitNormal
 
void CheckNavigatorState() const 
 
G4VoxelSafety * fpVoxelSafety
 
void Activate(G4bool flag)
 
void ResetNavigatorState()
 
void ResetStackAndState()
 
friend std::ostream & operator<<(std::ostream &os, const G4ITNavigator2 &n)
 
G4ThreeVector fLastLocatedPointLocal
 
G4TouchableHistory * CreateTouchableHistory() const 
 
G4VPhysicalVolume * fTopPhysical
 
G4double CheckNextStep(const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
 
virtual ~G4NavigatorState()
 
G4bool IsCheckModeActive() const 
 
G4NavigatorState * fpNavigatorState
 
G4VPhysicalVolume * NewNavigatorStateAndLocate(const G4ThreeVector &p, const G4ThreeVector &direction)
 
void SetWorldVolume(G4VPhysicalVolume *pWorld)
 
virtual ~G4ITNavigator2()
 
G4int fAbandonThreshold_NoZeroSteps
 
void SetGeometricallyLimitedStep()
 
static const G4int fMaxNav
 
G4ThreeVector fExitNormalGlobalFrame
 
virtual ~G4SaveNavigatorState()
 
G4GRSVolume * CreateGRSVolume() const 
 
G4GRSSolid * CreateGRSSolid() const 
 
G4NavigatorState & operator=(const G4NavigatorState &)
 
G4ThreeVector ComputeLocalAxis(const G4ThreeVector &pVec) const 
 
G4bool fLocatedOutsideWorld
 
void GetRandomInCurrentVolume(G4ThreeVector &rndmPoint) const 
 
G4ThreeVector fLastStepEndPointLocal
 
G4RotationMatrix NetRotation() const 
 
virtual void LocateGlobalPointWithinVolume(const G4ThreeVector &position)
 
virtual G4VPhysicalVolume * LocateGlobalPointAndSetup(const G4ThreeVector &point, const G4ThreeVector *direction=0, const G4bool pRelativeSearch=true, const G4bool ignoreDirection=true)
 
G4ITNavigatorState_Lock2(const G4ITNavigatorState_Lock2 &)
 
G4ThreeVector fPreviousSftOrigin
 
G4RegularNavigation fregularNav
 
G4NormalNavigation fnormalNav
 
EVolume VolumeType(const G4VPhysicalVolume *pVol) const 
 
G4ReplicaNavigation freplicaNav
 
virtual G4ThreeVector GetGlobalExitNormal(const G4ThreeVector &point, G4bool *valid)
 
G4ThreeVector sPreviousSftOrigin
 
void EnableBestSafety(G4bool value=false)
 
friend std::ostream & operator<<(std::ostream &os, const G4ITNavigator2 &n)
 
G4ParameterisedNavigation fparamNav
 
virtual G4bool RecheckDistanceToCurrentBoundary(const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double CurrentProposedStepLength, G4double *prDistance, G4double *prNewSafety=0) const 
 
G4bool fLastTriedStepComputation
 
EInside InsideCurrentVolume(const G4ThreeVector &globalPoint) const 
 
G4int fActionThreshold_NoZeroSteps
 
G4bool ExitedMotherVolume() const 
 
G4ThreeVector NetTranslation() const 
 
G4ThreeVector ComputeLocalPoint(const G4ThreeVector &rGlobPoint) const 
 
G4VoxelNavigation fvoxelNav
 
void ResetFromSnapshot(std::shared_ptr< G4ITNavigatorState_Lock2 >)
 
virtual G4ThreeVector GetLocalExitNormal(G4bool *valid)
 
G4ThreeVector sExitNormal
 
G4NavigationHistory fHistory
 
void SetNavigatorState(G4ITNavigatorState_Lock2 *)
 
void ComputeStepLog(const G4ThreeVector &pGlobalpoint, G4double moveLenSq) const 
 
const G4AffineTransform & GetGlobalToLocalTransform() const 
 
G4int GetDaughtersRegularStructureId(const G4LogicalVolume *pLog) const 
 
virtual G4double ComputeSafety(const G4ThreeVector &globalpoint, const G4double pProposedMaxLength=DBL_MAX, const G4bool keepState=true)
 
G4VPhysicalVolume * GetWorldVolume() const 
 
G4int GetVerboseLevel() const 
 
G4ITNavigatorState_Lock2()
 
G4ThreeVector sLastLocatedPointLocal
 
G4bool EnteredDaughterVolume() const 
 
void CheckMode(G4bool mode)
 
G4ITNavigator2 & operator=(const G4ITNavigator2 &)
 
virtual G4ThreeVector GetLocalExitNormalAndCheck(const G4ThreeVector &point, G4bool *valid)
 
G4ThreeVector fStepEndPoint
 
G4bool sWasLimitedByGeometry
 
virtual void ResetState()
 
virtual ~G4ITNavigatorState_Lock2()
 
virtual G4VPhysicalVolume * ResetHierarchyAndLocate(const G4ThreeVector &point, const G4ThreeVector &direction, const G4TouchableHistory &h)
 
G4ThreeVector GetCurrentLocalCoordinate() const 
 
void SetVerboseLevel(G4int level)
 
void LocateGlobalPointAndUpdateTouchable(const G4ThreeVector &position, const G4ThreeVector &direction, G4VTouchable *touchableToUpdate, const G4bool RelativeSearch=true)
 
void SetPushVerbosity(G4bool mode)
 
const G4AffineTransform GetLocalToGlobalTransform() const 
 
G4VPhysicalVolume * fBlockedPhysicalVolume
 
G4bool fWasLimitedByGeometry
 
RegisterTrackState(G4ITSafetyHelper, State) inline void G4ITSafetyHelper
 
G4int SeverityOfZeroStepping(G4int *noZeroSteps) const 
 
virtual G4TouchableHistoryHandle CreateTouchableHistoryHandle() const 
 
EVolume CharacteriseDaughters(const G4LogicalVolume *pLog) const 
 
G4AffineTransform GetMotherToDaughterTransform(G4VPhysicalVolume *dVolume, G4int dReplicaNo, EVolume dVolumeType)