20 #ifndef CMSmplIonisationWithDeltaModel_h
21 #define CMSmplIonisationWithDeltaModel_h 1
23 #include "G4VEmModel.hh"
24 #include "G4VEmFluctuationModel.hh"
27 class G4ParticleChangeForLoss;
35 const G4String& nam =
"mplIonisationWithDelta");
40 const G4DataVector&)
override;
43 const G4ParticleDefinition*,
44 G4double kineticEnergy,
45 G4double cutEnergy)
override;
48 const G4ParticleDefinition*,
49 G4double kineticEnergy,
54 const G4ParticleDefinition*,
55 G4double kineticEnergy,
56 G4double
Z, G4double
A,
58 G4double maxEnergy)
override;
61 const G4MaterialCutsCouple*,
62 const G4DynamicParticle*,
64 G4double maxEnergy)
override;
68 const G4DynamicParticle*,
71 G4double meanLoss)
override;
74 const G4DynamicParticle*,
76 G4double length)
override;
79 const G4MaterialCutsCouple* couple)
override;
86 G4double kinEnergy)
override;
109 static std::vector<G4double>*
dedx0;
virtual G4double ComputeCrossSectionPerElectron(const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy)
const double Z[kNumberCalorimeter]
const G4ParticleDefinition * monopole
G4double ComputeDEDXAhlen(const G4Material *material, G4double bg2, G4double cut)
CMSmplIonisationWithDeltaModel(G4double mCharge, const G4String &nam="mplIonisationWithDelta")
static std::vector< G4double > * dedx0
G4double ComputeDEDXPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy) override
void SetParticle(const G4ParticleDefinition *p)
G4double SampleFluctuations(const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmax, G4double length, G4double meanLoss) override
G4ParticleDefinition * theElectron
void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) override
~CMSmplIonisationWithDeltaModel() override
G4ParticleChangeForLoss * fParticleChange
static const double tmax[3]
G4double pi_hbarc2_over_mc2
G4double MaxSecondaryEnergy(const G4ParticleDefinition *, G4double kinEnergy) override
G4double Dispersion(const G4Material *, const G4DynamicParticle *, G4double tmax, G4double length) override
G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, G4double maxEnergy) override
G4double MinEnergyCut(const G4ParticleDefinition *, const G4MaterialCutsCouple *couple) override
void Initialise(const G4ParticleDefinition *, const G4DataVector &) override