|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4MultiNavigator is a utility class for polling the navigators of several geometries to identify the next boundary. More...
#include <G4MultiNavigator.hh>
Protected Member Functions | |
| void | ResetState () override |
| void | SetupHierarchy () override |
| void | WhichLimited () |
| void | PrintLimited () |
| void | CheckMassWorld () |
| Protected Member Functions inherited from G4Navigator | |
| void | SetSavedState () |
| void | RestoreSavedState () |
| G4ThreeVector | ComputeLocalPoint (const G4ThreeVector &rGlobP) const |
| G4ThreeVector | ComputeLocalAxis (const G4ThreeVector &pVec) const |
| EVolume | VolumeType (const G4VPhysicalVolume *pVol) const |
| EVolume | CharacteriseDaughters (const G4LogicalVolume *pLog) const |
| G4int | GetDaughtersRegularStructureId (const G4LogicalVolume *pLv) const |
| G4bool | CheckOverlapsIterative (G4VPhysicalVolume *vol) |
Friends | |
| std::ostream & | operator<< (std::ostream &os, const G4Navigator &n) |
Additional Inherited Members | |
| Protected Attributes inherited from G4Navigator | |
| G4double | kCarTolerance |
| G4double | fMinStep |
| G4double | fSqTol |
| G4NavigationHistory | fHistory |
| G4ThreeVector | fStepEndPoint |
| G4ThreeVector | fLastStepEndPointLocal |
| G4int | fVerbose = 0 |
| G4bool | fEnteredDaughter |
| G4bool | fExitedMother |
| G4bool | fWasLimitedByGeometry = false |
G4MultiNavigator is a utility class for polling the navigators of several geometries to identify the next boundary.
Definition at line 58 of file G4MultiNavigator.hh.
| G4MultiNavigator::G4MultiNavigator | ( | ) |
Constructor and default Destructor.
Definition at line 42 of file G4MultiNavigator.cc.
|
overridedefault |
|
protected |
Checks if mass world pointed has been changed => issues and exception.
Definition at line 618 of file G4MultiNavigator.cc.
|
overridevirtual |
Calculates the isotropic distance to the nearest boundary in any geometry from the specified point in the global coordinates system.
| [in] | globalpoint | The point in global coordinates system. The point must be within the current volume. |
| [in] | pProposedMaxLength | The proposed maximum length is used to avoid volume safety calculations. |
| [in] | keepState | Flag to instruct keeping the state (default false) to ensure minimum side effects from the call. |
Reimplemented from G4Navigator.
Definition at line 407 of file G4MultiNavigator.cc.
|
overridevirtual |
Computes the distance to the next boundary of any geometry.
| [in] | pGlobalPoint | The point in global coordinates system. |
| [in] | pDirection | The normalised vector direction. |
| [in] | pCurrentProposedStepLength | Current proposed step length. |
| [in,out] | newSafety | New safety. |
pDirection. Reimplemented from G4Navigator.
Definition at line 74 of file G4MultiNavigator.cc.
|
overridevirtual |
Returns a reference counted handle to a touchable history.
Reimplemented from G4Navigator.
Definition at line 439 of file G4MultiNavigator.cc.
|
overridevirtual |
Obtains the Normal vector to a surface (in global coordinates) pointing out of previous volume and into current volume The method takes full care about how to calculate the normal, but if the surfaces are not convex it will return valid=false.
| [in] | point | Point in global coordinates system to compare to. |
| [in,out] | obtained | Flag indicating if normal is valid. |
Reimplemented from G4Navigator.
Definition at line 672 of file G4MultiNavigator.cc.
|
overridevirtual |
Obtains the Normal vector to a surface (in local coordinates) pointing out of previous volume and into current volume Convention: the local normal is in the coordinate system of the final volume. The method takes full care about how to calculate this normal, but if the surfaces are not convex it will return valid=false.
| [in,out] | obtained | Flag indicating if normal is valid. |
Reimplemented from G4Navigator.
Definition at line 771 of file G4MultiNavigator.cc.
Referenced by GetLocalExitNormalAndCheck().
|
overridevirtual |
Obtains the Normal vector to a surface (in local coordinates) pointing out of previous volume and into current volume, and checks the current point against expected 'local' value. Convention: the local normal is in the coordinate system of the final volume. The method takes full care about how to calculate this normal, but if the surfaces are not convex it will return valid=false.
| [in] | point | Point in global coordinates system to compare to. |
| [in,out] | obtained | Flag indicating if normal is valid. |
Reimplemented from G4Navigator.
Definition at line 817 of file G4MultiNavigator.cc.
|
inline |
Returns a pointer to a navigator, given its index.
Definition at line 286 of file G4MultiNavigator.hh.
|
overridevirtual |
Locates the point in all geometries. Maintains a vector of other volumes, to be returned separately.
| [in] | point | The point in global coordinates system. |
| [in] | direction | The normalised vector direction. |
| [in] | pRelativeSearch | Flag to specify where search starts from. |
| [in] | ignoreDirection | Flag to specify if to use direction or not. |
Reimplemented from G4Navigator.
Definition at line 297 of file G4MultiNavigator.cc.
Referenced by PrepareNewTrack(), and ResetHierarchyAndLocate().
|
overridevirtual |
Relocates in all geometries for point that has not changed volume, i.e. is within safety in all geometries or its distance is less that along the direction of a computed step.
| [in] | position | The position point in global coordinates system. |
Reimplemented from G4Navigator.
Definition at line 374 of file G4MultiNavigator.cc.
| G4double G4MultiNavigator::ObtainFinalStep | ( | G4int | navigatorId, |
| G4double & | pNewSafety, | ||
| G4double & | minStepLast, | ||
| ELimited & | limitedStep ) |
Gets values for a single geometry.
| [in] | navigatorId | The navigator identifier. |
| [in,out] | pnewSafety | New safety for this geometry. |
| [in,out] | minStepLast | The last minimum step returned. |
| [in,out] | limitedStep | The step characterisation returned. |
Definition at line 173 of file G4MultiNavigator.cc.
| void G4MultiNavigator::PrepareNavigators | ( | ) |
Finds which geometries are registered for this particles, and keeps info.
Definition at line 231 of file G4MultiNavigator.cc.
Referenced by PrepareNewTrack().
| void G4MultiNavigator::PrepareNewTrack | ( | const G4ThreeVector & | position, |
| const G4ThreeVector | direction ) |
Prepares Navigators and locates.
| [in] | position | The position point in global coordinates system. |
| [in] | direction | The normalised vector direction. |
Definition at line 210 of file G4MultiNavigator.cc.
|
protected |
Auxiliary, debugging printing.
Definition at line 520 of file G4MultiNavigator.cc.
|
overridevirtual |
Resets the geometrical hierarchy for all geometries. Use the touchable history for the first (mass) geometry.
| [in] | point | The point in global coordinates system. |
| [in] | direction | The normalised vector direction. |
| [in] | h | The touchable history to be used for initialisation. |
Reimplemented from G4Navigator.
Definition at line 634 of file G4MultiNavigator.cc.
|
overrideprotectedvirtual |
Utility method to reset the navigator state machine.
Reimplemented from G4Navigator.
Definition at line 590 of file G4MultiNavigator.cc.
|
overrideprotectedvirtual |
Renavigates & resets hierarchy described by the current history, i.e. resets volumes and recomputes transforms and/or solids of replicated/parameterised volumes.
Reimplemented from G4Navigator.
Definition at line 609 of file G4MultiNavigator.cc.
|
protected |
Flags which processes limited the step.
Definition at line 461 of file G4MultiNavigator.cc.
Referenced by ComputeStep().
|
friend |
Definition at line 2013 of file G4Navigator.cc.