21 #include "G4PhysicalConstants.hh" 22 #include "G4SystemOfUnits.hh" 23 #include "G4Electron.hh" 24 #include "G4EmParameters.hh" 31 : G4VEnergyLossProcess(name),
32 magneticCharge(mCharge),
39 SetProcessSubType(fIonisation);
40 SetStepFunction(0.2, 1*mm);
62 G4double
x = 0.5*cut/electron_mass_c2;
63 G4double
mass = mpl->GetPDGMass();
65 G4double gam = x*ratio +
std::sqrt((1. + x)*(1. + x*ratio*ratio));
66 return mass*(gam - 1.0);
72 const G4ParticleDefinition*)
76 SetBaseParticle(
nullptr);
84 G4EmParameters* param = G4EmParameters::Instance();
85 G4double emin =
std::min(param->MinKinEnergy(),ion->LowEnergyLimit());
86 G4double emax =
std::max(param->MaxKinEnergy(),ion->HighEnergyLimit());
87 G4int
bin = G4lrint(param->NumberOfBinsPerDecade()*std::log10(emax/emin));
88 ion->SetLowEnergyLimit(emin);
89 ion->SetHighEnergyLimit(emax);
90 SetMinKinEnergy(emin);
91 SetMaxKinEnergy(emax);
95 AddEmModel(1,ion,ion);
109 out <<
"No description available." << G4endl;
110 G4VEnergyLossProcess::ProcessDescription(out);
CMSmplIonisation(G4double mCharge=0.0, const G4String &name="mplIoni")
void SetParticle(const G4ParticleDefinition *p)
G4double MinPrimaryEnergy(const G4ParticleDefinition *p, const G4Material *, G4double cut) final
bin
set the eta bin as selection string.
void PrintInfo() override
void ProcessDescription(std::ostream &) const override
void InitialiseEnergyLossProcess(const G4ParticleDefinition *, const G4ParticleDefinition *) override
~CMSmplIonisation() override
G4bool IsApplicable(const G4ParticleDefinition &p) override