 |
Belle II Software
release-05-01-25
|
14 #ifndef G4LongLivedNeutralTransportation_hh
15 #define G4LongLivedNeutralTransportation_hh 1
17 #include "G4VProcess.hh"
18 #include "G4FieldManager.hh"
20 #include "G4Navigator.hh"
21 #include "G4TransportationManager.hh"
22 #include "G4PropagatorInField.hh"
25 #include "G4ParticleChangeForTransport.hh"
28 class G4CoupledTransportation;
65 G4double previousStepSize,
66 G4double currentMinimumStep,
67 G4double& currentSafety,
68 G4GPILSelection* selection
79 const G4Step& stepData
90 const G4Step& stepData
105 G4double previousStepSize,
106 G4ForceCondition* pForceCond
125 inline void SetThresholdWarningEnergy(G4double newEnWarn)
129 inline void SetThresholdImportantEnergy(G4double newEnImp)
133 inline void SetThresholdTrials(G4int newMaxTrials)
202 G4TransportationManager* transportMgr;
203 transportMgr = G4TransportationManager::GetTransportationManager();
207 return transportMgr->GetFieldManager()->DoesFieldExist();
267 friend class G4CoupledTransportation;
void StartTracking(G4Track *aTrack)
Reset state for new (potentially resumed) track.
void SetLowLooperThresholds()
Shortcut method - old values (meant for HEP)
G4int fAbandonUnstableTrials
Number of trials after which to abandon.
G4double AtRestGetPhysicalInteractionLength(const G4Track &, G4ForceCondition *)
No operation in AtRestGPIL.
G4bool fShortStepOptimisation
Whether to avoid calling G4Navigator for short step ( < safety) If using it, the safety estimate for ...
G4Navigator * fLinearNavigator
Propagator used to transport the particle.
static G4bool fUseMagneticMoment
Flag take into account magnetic moment.
G4LongLivedNeutralTransportation(G4int verbosityLevel=1)
Constructor.
G4int fNoLooperTrials
Counter for steps in which particle reports 'looping', if it is above 'Important' Energy.
G4double fPreviousSafety
Remember last safety value.
G4double AlongStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double ¤tSafety, G4GPILSelection *selection)
G4VProcess::AlongStepGetPhysicalInteractionLength() implementation,.
G4double GetSumEnergyKilled() const
Access fSumEnergyKilled.
G4bool fGeometryLimitedStep
Flag to determine whether a boundary was reached.
G4bool fLastStepInVolume
Flag last step in a geom.
G4double fThreshold_Important_Energy
Give a few trial above this E for looping particle.
G4double fTransportEndKineticEnergy
The particle's state after this Step, Store for DoIt.
G4ThreeVector fTransportEndSpin
The particle's state after this Step, Store for DoIt.
G4double GetThresholdWarningEnergy() const
Access fThreshold_Warning_Energy.
G4SafetyHelper * fpSafetyHelper
To pass it the safety value obtained.
G4int fThresholdTrials
Number of trials an important looper survives.
G4double fCandidateEndGlobalTime
The particle's state after this Step, Store for DoIt.
void PrintStatistics(std::ostream &outStr) const
returns current logging info of the algorithm
G4ThreeVector fPreviousSftOrigin
Remember last safety origin.
void ReportLooperThresholds()
Set low thresholds - for low-E applications.
G4double fEndPointDistance
Endpoint distance.
~G4LongLivedNeutralTransportation()
Destructor.
G4ParticleChangeForTransport fParticleChange
New ParticleChange.
static G4bool fUseGravity
Flag take into account gravity.
G4VParticleChange * PostStepDoIt(const G4Track &track, const G4Step &stepData)
G4VProcess::PostStepDoIt() implementation,.
G4bool fFieldExertedForce
During current step.
G4PropagatorInField * GetPropagatorInField()
Access fFieldPropagator, the assistant class that Propagate in a Field.
G4double PostStepGetPhysicalInteractionLength(const G4Track &, G4double previousStepSize, G4ForceCondition *pForceCond)
G4VProcess::PostStepGetPhysicalInteractionLength() implementation.
G4bool fFirstStepInVolume
Flag first step in a geom.
G4VParticleChange * AtRestDoIt(const G4Track &, const G4Step &)
No operation in AtRestDoIt.
Abstract base class for different kinds of events.
G4bool DoesGlobalFieldExist()
Checks whether a field exists for the "global" field manager.
virtual void ProcessDescription(std::ostream &outFile) const
G4LongLivedNeutralTransportation::ProcessDescription()
G4bool fEndGlobalTimeComputed
The particle's state after this Step, Store for DoIt.
G4bool fAnyFieldExists
Flag for existing fields.
Concrete class that does the geometrical transport.
static void SetSilenceLooperWarnings(G4bool val)
Do not warn about 'looping' particles.
void EnableShortStepOptimisation(G4bool optimise=true)
Whether short steps < safety will avoid to call Navigator (if field=0)
void ResetKilledStatistics(G4int report=1)
Statistics for tracks killed (currently due to looping in field)
static G4bool GetSilenceLooperWarnings()
Do not throw exception about 'looping' particles.
G4PropagatorInField * fFieldPropagator
Propagator used to transport the particle.
G4VParticleChange * AlongStepDoIt(const G4Track &track, const G4Step &stepData)
G4VProcess::AlongStepDoIt() implementation,.
G4double fSumEnergyKilled
Sum of abandoned looping tracks energies.
void SetPropagatorInField(G4PropagatorInField *pFieldPropagator)
Access/set the assistant class that Propagate in a Field.
void SetHighLooperThresholds()
Get/Set parameters for killing loopers: Above 'important' energy a 'looping' particle in field will N...
G4bool fNewTrack
Flag from StartTracking.
G4int GetThresholdTrials() const
Access fThresholdTrials.
G4double fThreshold_Warning_Energy
Warn above this energy about looping particle.
G4ThreeVector fTransportEndPosition
The particle's state after this Step, Store for DoIt.
static G4bool fSilenceLooperWarnings
Flag to Supress all 'looper' warnings.
G4bool fMomentumChanged
The particle's state after this Step, Store for DoIt.
G4ThreeVector fTransportEndMomentumDir
The particle's state after this Step, Store for DoIt.
G4double GetThresholdImportantEnergy() const
Access fThreshold_Important_Energy.
G4double GetMaxEnergyKilled() const
Print values of looper thresholds.
G4TouchableHandle fCurrentTouchableHandle
Current touchable handle.