|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4PathFinder directs the lock-stepped propagation of a track in the 'mass' and other parallel geometries. It ensures that tracking in a magnetic field sees these parallel geometries at each trial step and that the earliest boundary limits the step. More...
#include <G4PathFinder.hh>
Static Public Member Functions | |
| static G4PathFinder * | GetInstance () |
| static G4PathFinder * | GetInstanceIfExist () |
G4PathFinder directs the lock-stepped propagation of a track in the 'mass' and other parallel geometries. It ensures that tracking in a magnetic field sees these parallel geometries at each trial step and that the earliest boundary limits the step.
Definition at line 60 of file G4PathFinder.hh.
| G4PathFinder::~G4PathFinder | ( | ) |
Destructor, called only by G4RunManagerKernel.
Definition at line 106 of file G4PathFinder.cc.
| G4double G4PathFinder::ComputeSafety | ( | const G4ThreeVector & | globalPoint | ) |
Recomputes the safety for the relevant point, i.e. the endpoint of the last step. Maintains a vector of individual safety values (used by next method below).
| [in] | globalPoint | Point in global coordinates system. |
Definition at line 735 of file G4PathFinder.cc.
Referenced by ReLocate().
| G4double G4PathFinder::ComputeStep | ( | const G4FieldTrack & | pFieldTrack, |
| G4double | pCurrentProposedStepLength, | ||
| G4int | navigatorId, | ||
| G4int | stepNo, | ||
| G4double & | pNewSafety, | ||
| ELimited & | limitedStep, | ||
| G4FieldTrack & | EndState, | ||
| G4VPhysicalVolume * | currentVolume ) |
Computes the next geometric Step, curved or linear. If it is called with a larger 'stepNo' it will execute a new step; if 'stepNo' is same as last call, then the results for the geometry with Id number 'navigatorId' will be returned.
| [in,out] | pFieldTrack | Field track to be filled. |
| [in] | pCurrentProposedStepLength | Current proposed step length. |
| [in] | navigatorId | Identifier of the geometry. |
| [in] | stepNo | Step number; see next step/check. |
| [in,out] | pNewSafety | New safety for this geometry. |
| [in,out] | limitedStep | Step characterisation to be returned. |
| [in,out] | EndState | Field track end state. |
| [in] | currentVolume | Pointer to the current volume. |
Definition at line 142 of file G4PathFinder.cc.
| G4TouchableHandle G4PathFinder::CreateTouchableHandle | ( | G4int | navId | ) | const |
Creates a touchable handle for the specified navigator.
| [in] | navId | The navigator identifier. |
Definition at line 768 of file G4PathFinder.cc.
| void G4PathFinder::EnableParallelNavigation | ( | G4bool | enableChoice = true | ) |
To enable parallel navigation. Must call it to ensure that G4PathFinder is prepared, especially for curved tracks. If true it switches G4PropagatorInField to use G4MultiNavigator. Must call it with false to undo (i.e. G4PropagatorInField uses classic G4Navigator for tracking in such case).
| [in] | enableChoice | Flag to enable/disable parallel navigation. |
Definition at line 115 of file G4PathFinder.cc.
Referenced by EndTrack(), and PrepareNewTrack().
| void G4PathFinder::EndTrack | ( | ) |
Signals the end of tracking of the current track. Resets internal state and informs G4TransportationManager to use 'ordinary' Navigator.
Definition at line 432 of file G4PathFinder.cc.
|
inline |
Returns the minimum value of safety after last ComputeStep().
|
static |
Retrieves singleton instance and creates it if not existing.
Definition at line 52 of file G4PathFinder.cc.
Referenced by G4CoupledTransportation::G4CoupledTransportation(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4ImportanceProcess::G4ImportanceProcess(), G4ParallelGeometriesLimiterProcess::G4ParallelGeometriesLimiterProcess(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4ParallelWorldScoringProcess::G4ParallelWorldScoringProcess(), G4WeightCutOffProcess::G4WeightCutOffProcess(), G4WeightWindowProcess::G4WeightWindowProcess(), G4ITSafetyHelper::InitialiseNavigator(), and G4SafetyHelper::InitialiseNavigator().
|
static |
Retrieve singleton instance pointer.
Definition at line 66 of file G4PathFinder.cc.
Referenced by G4RunManagerKernel::~G4RunManagerKernel().
|
inline |
Returns the located volume for the specified navigator.
| [in] | navId | The navigator identifier. |
|
inline |
To get/set the maximum for the number of steps that a (looping) particle can take.
|
inline |
Gets the minimum step size from the last ComputeStep() call.
|
inline |
Returns the number of all geometries limiting the step.
|
inline |
Obtains the last safety needed in ComputeStep() for the specified geometry 'navId' (i.e. the last point at which ComputeStep() has recalculated the safety). Returns the point (center) for which this safety is valid and also the minimum safety over all navigators.
| [in] | navId | The navigator identifier. |
| [in,out] | globCenterPoint | The point (center) for which this safety is valid. |
| [in,out] | minSafety | The minimum safety over all navigators. |
Utility to convert ELimited specification to a string.
Definition at line 1363 of file G4PathFinder.cc.
| void G4PathFinder::Locate | ( | const G4ThreeVector & | position, |
| const G4ThreeVector & | direction, | ||
| G4bool | relativeSearch = true ) |
Makes primary relocation of the global point in all navigators, and updates them.
| [in] | position | Point in global coordinates system. |
| [in] | direction | Global direction vector. |
| [in] | relativeSearch | If set to true (default), the search begins is the geometrical hierarchy at the location of the last located point. |
Definition at line 461 of file G4PathFinder.cc.
Referenced by ComputeStep(), and PrepareNewTrack().
|
inline |
Signals that the point location will be moved.
Referenced by ComputeStep(), and PrepareNewTrack().
|
inline |
Obtains the safety for the specified navigator/geometry for last point 'computed' (i.e., the last point for which ComputeSafety() was called).
| [in] | navId | The navigator identifier. |
| [in,out] | globalCenterPoint | The point (center) for which this safety is valid. |
| void G4PathFinder::PrepareNewTrack | ( | const G4ThreeVector & | position, |
| const G4ThreeVector & | direction, | ||
| G4VPhysicalVolume * | massStartVol = nullptr ) |
Checks and caches the set of active navigators.
| [in] | position | Point in global coordinates system. |
| [in] | direction | Global direction vector. |
| [in] | massStartVol | Pointer to the mass geometry world. |
Definition at line 342 of file G4PathFinder.cc.
| void G4PathFinder::PushPostSafetyToPreSafety | ( | ) |
Tells G4PathFinder to copy PostStep Safety to PreSafety for use at the next step.
Definition at line 1383 of file G4PathFinder.cc.
| void G4PathFinder::ReLocate | ( | const G4ThreeVector & | position | ) |
Makes secondary relocation of the global point (within safety only) in all navigators, and updates them.
| [in] | position | Point in global coordinates system. |
Definition at line 543 of file G4PathFinder.cc.
|
inline |
To control the level of verbosity. Default is no verbosity.