21 #include "G4PhysicalConstants.hh"
22 #include "G4SystemOfUnits.hh"
23 #include "G4Electron.hh"
30 : G4VEnergyLossProcess(name),
31 magneticCharge(mCharge),
38 SetProcessSubType(fIonisation);
39 SetStepFunction(0.2, 1*mm);
40 SetSecondaryParticle(G4Electron::Electron());
61 G4double
x = 0.5*cut/electron_mass_c2;
62 G4double mass = mpl->GetPDGMass();
63 G4double ratio = electron_mass_c2/mass;
64 G4double gam = x*ratio +
std::sqrt((1. + x)*(1. + x*ratio*ratio));
65 return mass*(gam - 1.0);
71 const G4ParticleDefinition*)
75 SetBaseParticle(
nullptr);
83 G4double emin =
std::min(MinKinEnergy(),ion->LowEnergyLimit());
84 G4double emax =
std::max(MaxKinEnergy(),ion->HighEnergyLimit());
85 ion->SetLowEnergyLimit(emin);
86 ion->SetHighEnergyLimit(emax);
87 SetMinKinEnergy(emin);
88 SetMaxKinEnergy(emax);
89 AddEmModel(1,ion,ion);
CMSmplIonisation(G4double mCharge=0.0, const G4String &name="mplIoni")
void SetParticle(const G4ParticleDefinition *p)
G4double MinPrimaryEnergy(const G4ParticleDefinition *p, const G4Material *, G4double cut) final
void PrintInfo() override
void InitialiseEnergyLossProcess(const G4ParticleDefinition *, const G4ParticleDefinition *) override
~CMSmplIonisation() override
G4bool IsApplicable(const G4ParticleDefinition &p) override
volatile std::atomic< bool > shutdown_flag false