43#ifndef G4Transportation_hh
44#define G4Transportation_hh 1
172 G4double fTransportEndKineticEnergy= 0.0;
174 G4bool fMomentumChanged=
true;
175 G4bool fEndGlobalTimeComputed=
false;
176 G4double fCandidateEndGlobalTime= 0.0;
179 G4bool fAnyFieldExists=
false;
181 G4bool fParticleIsLooping =
false;
183 G4bool fFirstStepInVolume=
true;
184 G4bool fLastStepInVolume=
false;
186 G4bool fGeometryLimitedStep=
true;
189 G4bool fFieldExertedForce=
false;
204 G4double fThreshold_Warning_Energy = 1.0 * CLHEP::keV;
205 G4double fThreshold_Important_Energy = 1.0 * CLHEP::MeV;
206 G4int fThresholdTrials = 10;
209 G4int fAbandonUnstableTrials = 0;
213 G4int fNoLooperTrials= 0;
220 G4int fMaxEnergyKilledPDG= 0;
221 unsigned long fNumLoopersKilled= 0;
222 G4double fSumEnergyKilled_NonElectron= 0.0;
223 G4double fSumEnerSqKilled_NonElectron= 0.0;
224 G4double fMaxEnergyKilled_NonElectron= -1.0;
225 G4int fMaxEnergyKilled_NonElecPDG= 0;
226 unsigned long fNumLoopersKilled_NonElectron= 0;
229 G4double fSumEnergyUnstableSaved = 0.0;
233 G4bool fShortStepOptimisation;
241 static G4bool fUseMagneticMoment;
242 static G4bool fUseGravity;
243 static G4bool fSilenceLooperWarnings;
247#include "G4Transportation.icc"
CLHEP::Hep3Vector G4ThreeVector
void SetThresholdImportantEnergy(G4double newEnImp)
G4PropagatorInField * GetPropagatorInField()
static void SetSilenceLooperWarnings(G4bool val)
G4double AlongStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double ¤tSafety, G4GPILSelection *selection)
static G4bool EnableGravity(G4bool useGravity=true)
void PushThresholdsToLogger()
void PrintStatistics(std::ostream &outStr) const
void EnableShortStepOptimisation(G4bool optimise=true)
void SetHighLooperThresholds()
G4int GetThresholdTrials() const
G4bool FieldExertedForce()
G4double GetThresholdImportantEnergy() const
void SetLowLooperThresholds()
void SetPropagatorInField(G4PropagatorInField *pFieldPropagator)
G4VParticleChange * AlongStepDoIt(const G4Track &track, const G4Step &stepData)
void SetThresholdTrials(G4int newMaxTrials)
G4double GetSumEnergyKilled() const
G4VParticleChange * PostStepDoIt(const G4Track &track, const G4Step &stepData)
static G4bool EnableUseMagneticMoment(G4bool useMoment=true)
G4double PostStepGetPhysicalInteractionLength(const G4Track &, G4double previousStepSize, G4ForceCondition *pForceCond)
G4VParticleChange * AtRestDoIt(const G4Track &, const G4Step &)
static G4bool EnableMagneticMoment(G4bool useMoment=true)
void ResetKilledStatistics(G4int report=1)
void ReportLooperThresholds()
G4double GetMaxEnergyKilled() const
void StartTracking(G4Track *aTrack)
G4double AtRestGetPhysicalInteractionLength(const G4Track &, G4ForceCondition *)
G4double GetThresholdWarningEnergy() const
G4bool DoesAnyFieldExist()
void SetThresholdWarningEnergy(G4double newEnWarn)
static G4bool GetSilenceLooperWarnings()
void ReportMissingLogger(const char *methodName)
virtual void ProcessDescription(std::ostream &outFile) const