35#ifndef G4ParallelGeometriesLimiterProcess_hh
36#define G4ParallelGeometriesLimiterProcess_hh 1
68 {
return fParallelWorlds; }
82 {
return fParallelWorldNavigators; }
86 {
return fParallelWorldNavigators[std::size_t(worldIndex)]; }
98 {
return fCurrentVolumes; }
100 {
return fPreviousVolumes; }
104 {
return fCurrentVolumes[std::size_t(worldIndex)]; }
106 {
return fPreviousVolumes[std::size_t(worldIndex)]; }
109 {
return fParallelWorldIsLimiting; }
111 {
return fParallelWorldWasLimiting; }
115 {
return fParallelWorldIsLimiting[std::size_t(worldIndex)]; }
117 {
return fParallelWorldWasLimiting[std::size_t(worldIndex)]; }
155 std::vector< G4VPhysicalVolume* > fParallelWorlds;
156 std::vector< G4Navigator* > fParallelWorldNavigators;
157 std::vector< G4int > fParallelWorldNavigatorIndeces;
158 std::vector< G4double > fParallelWorldSafeties;
159 std::vector< G4bool > fParallelWorldIsLimiting;
160 std::vector< G4bool > fParallelWorldWasLimiting;
161 std::vector< const G4VPhysicalVolume* > fCurrentVolumes;
162 std::vector< const G4VPhysicalVolume* > fPreviousVolumes;
163 G4double fParallelWorldSafety = 0.0;
164 G4bool fIsTrackingTime =
false;
const std::vector< const G4VPhysicalVolume * > & GetPreviousVolumes() const
const std::vector< G4Navigator * > & GetActiveNavigators() const
G4ParallelGeometriesLimiterProcess(const G4String &processName="biasLimiter")
void AddParallelWorld(const G4String ¶llelWorldName)
G4int GetParallelWorldIndex(const G4VPhysicalVolume *parallelWorld) const
G4bool GetIsLimiting(G4int worldIndex) const
G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
virtual ~G4ParallelGeometriesLimiterProcess()=default
G4bool GetWasLimiting(G4int worldIndex) const
G4double PostStepGetPhysicalInteractionLength(const G4Track &, G4double, G4ForceCondition *)
const G4Navigator * GetNavigator(G4int worldIndex) const
const std::vector< G4VPhysicalVolume * > & GetParallelWorlds() const
void RemoveParallelWorld(const G4String ¶llelWorldName)
const G4VPhysicalVolume * GetCurrentVolume(G4int worldIndex) const
const G4VPhysicalVolume * GetPreviousVolume(G4int worldIndex) const
const std::vector< const G4VPhysicalVolume * > & GetCurrentVolumes() const
G4double AlongStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
virtual void SetProcessManager(const G4ProcessManager *)
G4double AtRestGetPhysicalInteractionLength(const G4Track &, G4ForceCondition *)
const std::vector< G4bool > & GetWasLimiting() const
G4VParticleChange * AtRestDoIt(const G4Track &, const G4Step &)
void StartTracking(G4Track *)
const std::vector< G4bool > & GetIsLimiting() const
G4VParticleChange * AlongStepDoIt(const G4Track &track, const G4Step &step)
G4VProcess(const G4String &aName="NoName", G4ProcessType aType=fNotDefined)