|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4VoxelNavigation is a concrete utility class for navigation in volumes containing only G4PVPlacement daughter volumes for which voxels have been constructed. More...
#include <G4VoxelNavigation.hh>
Public Member Functions | |
| G4VoxelNavigation () | |
| ~G4VoxelNavigation () override | |
| G4SmartVoxelNode * | VoxelLocate (G4SmartVoxelHeader *pHead, const G4ThreeVector &localPoint) |
| G4bool | LevelLocate (G4NavigationHistory &history, const G4VPhysicalVolume *blockedVol, const G4int blockedNum, const G4ThreeVector &globalPoint, const G4ThreeVector *globalDirection, const G4bool pLocatedOnEdge, G4ThreeVector &localPoint) override |
| G4double | ComputeStep (const G4ThreeVector &localPoint, const G4ThreeVector &localDirection, const G4double currentProposedStepLength, G4double &newSafety, G4NavigationHistory &history, G4bool &validExitNormal, G4ThreeVector &exitNormal, G4bool &exiting, G4bool &entering, G4VPhysicalVolume *(*pBlockedPhysical), G4int &blockedReplicaNo) override |
| G4double | ComputeSafety (const G4ThreeVector &localpoint, const G4NavigationHistory &history, const G4double pMaxLength=DBL_MAX) override |
| void | RelocateWithinVolume (G4VPhysicalVolume *motherPhysical, const G4ThreeVector &localPoint) override |
| G4int | GetVerboseLevel () const override |
| void | SetVerboseLevel (G4int level) override |
| void | EnableBestSafety (G4bool flag=false) |
| Public Member Functions inherited from G4VNavigation | |
| virtual | ~G4VNavigation ()=default |
| void | CheckMode (G4bool mode) |
Protected Member Functions | |
| G4double | ComputeVoxelSafety (const G4ThreeVector &localPoint) const |
| G4bool | LocateNextVoxel (const G4ThreeVector &localPoint, const G4ThreeVector &localDirection, const G4double currentStep) |
Protected Attributes | |
| G4BlockingList | fBList |
| G4int | fVoxelDepth = -1 |
| std::vector< EAxis > | fVoxelAxisStack |
| std::vector< G4int > | fVoxelNoSlicesStack |
| std::vector< G4double > | fVoxelSliceWidthStack |
| std::vector< G4int > | fVoxelNodeNoStack |
| std::vector< G4SmartVoxelHeader * > | fVoxelHeaderStack |
| G4SmartVoxelNode * | fVoxelNode = nullptr |
| G4VoxelSafety * | fpVoxelSafety = nullptr |
| G4double | fHalfTolerance |
| G4bool | fBestSafety = false |
| G4NavigationLogger * | fLogger |
| Protected Attributes inherited from G4VNavigation | |
| G4int | fVerbose = 0 |
| G4bool | fCheck = false |
G4VoxelNavigation is a concrete utility class for navigation in volumes containing only G4PVPlacement daughter volumes for which voxels have been constructed.
Definition at line 69 of file G4VoxelNavigation.hh.
| G4VoxelNavigation::G4VoxelNavigation | ( | ) |
Constructor and Destructor.
Definition at line 45 of file G4VoxelNavigation.cc.
|
override |
Definition at line 65 of file G4VoxelNavigation.cc.
|
overridevirtual |
Calculates the isotropic distance to the nearest boundary from the specified point in the local coordinate system. The localpoint utilised must be within the current volume.
| [in] | localPoint | Local point. |
| [in] | history | Navigation history. |
| [in] | pMaxLength | Maximum step length beyond which volumes need not be checked. |
Implements G4VNavigation.
Definition at line 647 of file G4VoxelNavigation.cc.
|
overridevirtual |
Computes the length of a step to the next boundary. Does not test against pBlockedPhysical. Identifies the next candidate volume (if a daughter of the current volume), and returns it in: pBlockedPhysical, blockedReplicaNo.
| [in] | localPoint | Local point. |
| [in] | localDirection | Local direction vector. |
| [in] | currentProposedStepLength | Current proposed step length. |
| [in,out] | newSafety | New safety. |
| [in,out] | history | Navigation history. |
| [in,out] | validExitNormal | Flag to indicate whether exit normal is valid or not. |
| [in,out] | exitNormal | Exit normal. |
| [in,out] | exiting | Flag to indicate whether exiting a volume. |
| [in,out] | entering | Flag to indicate whether entering a volume. |
| [in,out] | pBlockedPhysical | Blocked physical volume that should be ignored in queries. |
| [in,out] | blockedReplicaNo | Copy number for blocked replica volumes. |
localDirection. Implements G4VNavigation.
Definition at line 89 of file G4VoxelNavigation.cc.
Referenced by G4Navigator::ComputeStep().
|
protected |
Computes safety from specified point to voxel boundaries using already located point.
| [in] | localPoint | Local point. |
Definition at line 386 of file G4VoxelNavigation.cc.
Referenced by ComputeSafety(), and ComputeStep().
|
inline |
Enables best-possible evaluation of isotropic safety.
|
inlineoverridevirtual |
Verbosity control.
Reimplemented from G4VNavigation.
|
inlineoverridevirtual |
Searches positioned volumes in mother at current top level of history for volume containing globalPoint. Do not test against blockedVol. If a containing volume is found, push it onto navigation history state.
| [in,out] | history | Navigation history. |
| [in,out] | blockedVol | Blocked volume to be ignored in queries. |
| [in,out] | blockedNum | Copy number for blocked replica volumes. |
| [in,out] | globalPoint | Point in global coordinates system. |
| [in,out] | globalDirection | Pointer to global direction or null. |
| [in] | pLocatedOnEdge | Flag specifying if point is located on edge. |
| [in,out] | localPoint | Point in local coordinates system. |
Implements G4VNavigation.
Referenced by G4Navigator::LocateGlobalPointAndSetup().
|
protected |
Finds the next voxel from the current voxel and point in the specified direction.
| [in] | localPoint | Local point. |
| [in] | localDirection | Direction along which compute the distance. |
| [in] | currentStep | Current step size. |
Definition at line 475 of file G4VoxelNavigation.cc.
Referenced by ComputeStep().
|
overridevirtual |
Updates internal navigation state to take into account that location has been moved, but remains within the motherPhysical volume.
| [in] | motherPhysical | Current physical volume. |
| [in] | localPoint | Local point. |
Reimplemented from G4VNavigation.
Definition at line 770 of file G4VoxelNavigation.cc.
Referenced by G4Navigator::LocateGlobalPointWithinVolume().
|
overridevirtual |
Sets current verbosity level.
Reimplemented from G4VNavigation.
Definition at line 787 of file G4VoxelNavigation.cc.
Referenced by G4VoxelNavigation().
|
inline |
Locates voxel node based on given point.
| [in] | pHead | Pointer to header of nodes to look through. |
| [in] | localPoint | Local point |
Referenced by RelocateWithinVolume().
|
protected |
Flag for best safety.
Definition at line 268 of file G4VoxelNavigation.hh.
Referenced by ComputeSafety().
|
protected |
Blocked volumes.
Definition at line 229 of file G4VoxelNavigation.hh.
Referenced by G4ParameterisedNavigation::ComputeStep(), and ComputeStep().
|
protected |
Surface tolerance.
Definition at line 265 of file G4VoxelNavigation.hh.
Referenced by G4VoxelNavigation(), and LocateNextVoxel().
|
protected |
Verbosity logger.
Definition at line 271 of file G4VoxelNavigation.hh.
Referenced by ComputeSafety(), G4ParameterisedNavigation::ComputeStep(), ComputeStep(), G4VoxelNavigation(), SetVerboseLevel(), and ~G4VoxelNavigation().
|
protected |
Helper object for Voxel Safety.
Definition at line 262 of file G4VoxelNavigation.hh.
Referenced by ComputeSafety(), G4VoxelNavigation(), SetVerboseLevel(), and ~G4VoxelNavigation().
|
protected |
Voxel axes.
Definition at line 241 of file G4VoxelNavigation.hh.
Referenced by ComputeVoxelSafety(), G4VoxelNavigation(), and LocateNextVoxel().
|
protected |
Voxels depth.
Definition at line 238 of file G4VoxelNavigation.hh.
Referenced by ComputeVoxelSafety(), and LocateNextVoxel().
|
protected |
Voxel headers at each level.
Definition at line 253 of file G4VoxelNavigation.hh.
Referenced by ComputeVoxelSafety(), G4VoxelNavigation(), and LocateNextVoxel().
|
protected |
Node containing last located point.
Definition at line 256 of file G4VoxelNavigation.hh.
Referenced by G4ParameterisedNavigation::ComputeSafety(), ComputeSafety(), G4ParameterisedNavigation::ComputeStep(), ComputeStep(), ComputeVoxelSafety(), and LocateNextVoxel().
|
protected |
Node no point is inside at each level.
Definition at line 250 of file G4VoxelNavigation.hh.
Referenced by ComputeVoxelSafety(), G4VoxelNavigation(), and LocateNextVoxel().
|
protected |
No slices per voxel at each level.
Definition at line 244 of file G4VoxelNavigation.hh.
Referenced by G4VoxelNavigation(), and LocateNextVoxel().
|
protected |
Width of voxels at each level.
Definition at line 247 of file G4VoxelNavigation.hh.
Referenced by ComputeVoxelSafety(), G4VoxelNavigation(), and LocateNextVoxel().