|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4RegularNavigation is a concrete utility class for fast navigation in volumes containing a regular parameterisation. If two contiguous voxels have the same material, navigation does not stop at the surface. More...
#include <G4RegularNavigation.hh>
Public Member Functions | |
| G4RegularNavigation () | |
| ~G4RegularNavigation () override | |
| G4bool | LevelLocate (G4NavigationHistory &history, const G4VPhysicalVolume *blockedVol, const G4int blockedNum, const G4ThreeVector &globalPoint, const G4ThreeVector *globalDirection, const G4bool pLocatedOnEdge, G4ThreeVector &localPoint) final |
| 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) final |
| G4double | ComputeStepSkippingEqualMaterials (G4ThreeVector &localPoint, const G4ThreeVector &localDirection, const G4double currentProposedStepLength, G4double &newSafety, G4NavigationHistory &history, G4bool &validExitNormal, G4ThreeVector &exitNormal, G4bool &exiting, G4bool &entering, G4VPhysicalVolume *(*pBlockedPhysical), G4int &blockedReplicaNo, G4VPhysicalVolume *pCurrentPhysical) |
| G4double | ComputeSafety (const G4ThreeVector &localPoint, const G4NavigationHistory &history, const G4double pProposedMaxLength=DBL_MAX) final |
| void | SetNormalNavigation (G4NormalNavigation *fnormnav) |
| Public Member Functions inherited from G4VNavigation | |
| virtual | ~G4VNavigation ()=default |
| virtual void | RelocateWithinVolume (G4VPhysicalVolume *, const G4ThreeVector &) |
| virtual G4int | GetVerboseLevel () const |
| virtual void | SetVerboseLevel (G4int level) |
| void | CheckMode (G4bool mode) |
Additional Inherited Members | |
| Protected Attributes inherited from G4VNavigation | |
| G4int | fVerbose = 0 |
| G4bool | fCheck = false |
G4RegularNavigation is a concrete utility class for fast navigation in volumes containing a regular parameterisation. If two contiguous voxels have the same material, navigation does not stop at the surface.
Definition at line 56 of file G4RegularNavigation.hh.
| G4RegularNavigation::G4RegularNavigation | ( | ) |
Constructor and Destructor.
Definition at line 41 of file G4RegularNavigation.cc.
|
overridedefault |
|
finalvirtual |
Method never called because to be called the daughter has to be a 'regular' volume. This would only happen if the track is in the mother of voxels volume. But the voxels fill completely their mother, so when a track enters the mother it automatically enters a voxel.
Implements G4VNavigation.
Definition at line 344 of file G4RegularNavigation.cc.
|
finalvirtual |
Method never called because to be called the daughter has to be a 'regular' volume. This would only happen if the track is in the mother of voxels volume. But the voxels fill completely their mother, so when a track enters the mother it automatically enters a voxel.
Implements G4VNavigation.
Definition at line 53 of file G4RegularNavigation.cc.
| G4double G4RegularNavigation::ComputeStepSkippingEqualMaterials | ( | G4ThreeVector & | localPoint, |
| const G4ThreeVector & | localDirection, | ||
| const G4double | currentProposedStepLength, | ||
| G4double & | newSafety, | ||
| G4NavigationHistory & | history, | ||
| G4bool & | validExitNormal, | ||
| G4ThreeVector & | exitNormal, | ||
| G4bool & | exiting, | ||
| G4bool & | entering, | ||
| G4VPhysicalVolume ** | pBlockedPhysical, | ||
| G4int & | blockedReplicaNo, | ||
| G4VPhysicalVolume * | pCurrentPhysical ) |
Computes the step skipping surfaces when they separate voxels with equal materials. Loops to voxels until a different material is found: invokes G4NormalNavigation::ComputeStep() in each voxel and moves the point to the next voxel.
| [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. |
| [in] | pCurrentPhysical | Pointer to current volume. |
Definition at line 116 of file G4RegularNavigation.cc.
|
finalvirtual |
Locates a point using its position with respect to regular parameterisation container volume.
| [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 | Global direction vector. |
| [in,out] | localPoint | Point in local coordinates system. |
Implements G4VNavigation.
Definition at line 364 of file G4RegularNavigation.cc.
Referenced by ComputeStep().
| void G4RegularNavigation::SetNormalNavigation | ( | G4NormalNavigation * | fnormnav | ) |
Setter for normal navigation.
Definition at line 428 of file G4RegularNavigation.cc.