7 #include "G4ParticleDefinition.hh"
8 #include "G4VEnergyLossProcess.hh"
9 #include "G4LossTableManager.hh"
12 #include "G4SystemOfUnits.hh"
13 #include "G4TransportationProcessType.hh"
16 : G4VDiscreteProcess(
"eLimiter", fGeneral)
19 SetProcessSubType(static_cast<int>(STEP_LIMITER));
48 G4ForceCondition* condition)
50 *condition = NotForced;
52 G4double
limit = DBL_MAX;
56 G4double safety = aTrack.GetStep()->GetPreStepPoint()->GetSafety();
58 G4double kinEnergy = aTrack.GetKineticEnergy();
59 G4double range =
fIonisation->GetRangeForLoss(kinEnergy,
60 aTrack.GetMaterialCutsCouple());
T getParameter(std::string const &) const
G4VEnergyLossProcess * fIonisation
ElectronLimiter(const edm::ParameterSet &p)
virtual G4double GetMeanFreePath(const G4Track &, G4double, G4ForceCondition *)
const G4ParticleDefinition * particle
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
G4ParticleChangeForGamma fParticleChange
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
virtual ~ElectronLimiter()
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)