13#include <G4VEmModel.hh>
14#include <G4VEmFluctuationModel.hh>
17class G4ParticleChangeForLoss;
45 const G4String& nam =
"mplIonisationWithDelta");
57 virtual void Initialise(
const G4ParticleDefinition* p,
58 const G4DataVector&)
override;
73 const G4ParticleDefinition* p,
74 G4double kineticEnergy,
75 G4double maxEnergy)
override;
87 const G4ParticleDefinition* p,
88 G4double kineticEnergy,
104 const G4ParticleDefinition* p,
105 G4double kineticEnergy,
106 G4double Z, G4double A,
108 G4double maxEnergy)
override;
120 const G4MaterialCutsCouple* materialCutsCouple,
121 const G4DynamicParticle* dp,
123 G4double maxEnergy)
override;
138 const G4DynamicParticle* dp,
142 G4double meanLoss)
override;
154 virtual G4double
Dispersion(
const G4Material* material,
155 const G4DynamicParticle*,
158 G4double length)
override;
163 virtual G4double
MinEnergyCut(
const G4ParticleDefinition*,
164 const G4MaterialCutsCouple* couple)
override;
178 G4double kinEnergy)
override;
196 G4double
ComputeDEDXAhlen(
const G4Material* material, G4double bg2, G4double cut);
229 static std::vector<G4double>*
dedx0;
Concrete monopole ionisation model.
G4double pi_hbarc2_over_mc2
Convenient constants combination with mass.
G4double betalow
Beta threshold for low asymptotic.
G4double beta2lim
Square of betalim.
virtual ~G4mplIonisationWithDeltaModel()
Destructor.
virtual G4double MinEnergyCut(const G4ParticleDefinition *, const G4MaterialCutsCouple *couple) override
Threshold for zero value.
G4double chargeSquare
Square of magnetic charge in units of Dirac charge.
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *p, G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, G4double maxEnergy) override
Compute cross section per atom for delta electrons emission.
G4ParticleChangeForLoss * fParticleChange
Pointer to ionising particle.
G4ParticleDefinition * theElectron
Electron definition.
G4double twoln10
log(100.0)
const G4ParticleDefinition * monopole
Monopole definition.
G4double dedxlim
dedx limit in asymptotic formula, not used
G4double mass
Mass of the monopole.
virtual G4double ComputeDEDXPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double kineticEnergy, G4double maxEnergy) override
G4VEmModel::ComputeDEDXPerVolume implementation.
virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition *p, G4double kinEnergy) override
Calculate maximum energy available for secondary particle emission.
G4double magCharge
Monopole magnetic charge in e+ units.
G4double ComputeDEDXAhlen(const G4Material *material, G4double bg2, G4double cut)
Calculate dedx based on extrapolated Ahlen formula.
virtual void Initialise(const G4ParticleDefinition *p, const G4DataVector &) override
G4VEmModel::Initialise implementation.
G4mplIonisationWithDeltaModel(const G4mplIonisationWithDeltaModel ©)=delete
Copy constructor should be hidden.
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *vdp, const G4MaterialCutsCouple *materialCutsCouple, const G4DynamicParticle *dp, G4double tmin, G4double maxEnergy) override
Create the sample of secondary delta electrons.
void SetParticle(const G4ParticleDefinition *p)
Read definition of the monopole.
virtual G4double SampleFluctuations(const G4MaterialCutsCouple *couple, const G4DynamicParticle *dp, G4double tcut, G4double tmax, G4double length, G4double meanLoss) override
Create fluctuations in the energies lost to a secondary delta electron.
virtual G4double ComputeCrossSectionPerElectron(const G4ParticleDefinition *p, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy)
Compute cross section per electron for delta electrons emission.
G4mplIonisationWithDeltaModel & operator=(const G4mplIonisationWithDeltaModel &right)=delete
Assignment operator should be hidden.
G4double bg2lim
(beta*gamma)^2 for betalim
virtual G4double Dispersion(const G4Material *material, const G4DynamicParticle *, G4double tcut, G4double tmax, G4double length) override
Calculate dispersion.
static std::vector< G4double > * dedx0
Base dedx for each couple in current material.
G4double betalim
Beta threshold for high energy (only Ahlen formula)
Abstract base class for different kinds of events.