Belle II Software development
|
Concrete monopole ionisation model. More...
#include <G4mplIonisationWithDeltaModel.h>
Public Member Functions | |
G4mplIonisationWithDeltaModel (G4double mCharge, const G4String &nam="mplIonisationWithDelta") | |
Constructor. | |
virtual | ~G4mplIonisationWithDeltaModel () |
Destructor. | |
virtual void | Initialise (const G4ParticleDefinition *p, const G4DataVector &) override |
G4VEmModel::Initialise implementation. | |
virtual G4double | ComputeDEDXPerVolume (const G4Material *material, const G4ParticleDefinition *p, G4double kineticEnergy, G4double maxEnergy) override |
G4VEmModel::ComputeDEDXPerVolume implementation. | |
virtual G4double | ComputeCrossSectionPerElectron (const G4ParticleDefinition *p, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy) |
Compute cross section per electron for delta electrons emission. | |
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. | |
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. | |
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 | Dispersion (const G4Material *material, const G4DynamicParticle *, G4double tcut, G4double tmax, G4double length) override |
Calculate dispersion. | |
virtual G4double | MinEnergyCut (const G4ParticleDefinition *, const G4MaterialCutsCouple *couple) override |
Threshold for zero value. | |
void | SetParticle (const G4ParticleDefinition *p) |
Read definition of the monopole. | |
Protected Member Functions | |
virtual G4double | MaxSecondaryEnergy (const G4ParticleDefinition *p, G4double kinEnergy) override |
Calculate maximum energy available for secondary particle emission. | |
Private Member Functions | |
G4double | ComputeDEDXAhlen (const G4Material *material, G4double bg2, G4double cut) |
Calculate dedx based on extrapolated Ahlen formula. | |
G4mplIonisationWithDeltaModel & | operator= (const G4mplIonisationWithDeltaModel &right)=delete |
Assignment operator should be hidden. | |
G4mplIonisationWithDeltaModel (const G4mplIonisationWithDeltaModel ©)=delete | |
Copy constructor should be hidden. | |
Private Attributes | |
const G4ParticleDefinition * | monopole |
Monopole definition. | |
G4ParticleDefinition * | theElectron |
Electron definition. | |
G4ParticleChangeForLoss * | fParticleChange |
Pointer to ionising particle. | |
G4double | mass |
Mass of the monopole. | |
G4double | magCharge |
Monopole magnetic charge in e+ units. | |
G4double | twoln10 |
log(100.0) | |
G4double | betalow |
Beta threshold for low asymptotic. | |
G4double | betalim |
Beta threshold for high energy (only Ahlen formula) | |
G4double | beta2lim |
Square of betalim. | |
G4double | bg2lim |
(beta*gamma)^2 for betalim | |
G4double | chargeSquare |
Square of magnetic charge in units of Dirac charge. | |
G4double | dedxlim |
dedx limit in asymptotic formula, not used | |
G4double | pi_hbarc2_over_mc2 |
Convenient constants combination with mass. | |
G4double | nmpl |
Magn. | |
Static Private Attributes | |
static std::vector< G4double > * | dedx0 = nullptr |
Base dedx for each couple in current material. | |
Concrete monopole ionisation model.
Monopole magnetic ionisation dedx is similar to electric one with the exception of beta*beta factor. This model is also capable of producing secondary delta electrons.
Definition at line 34 of file G4mplIonisationWithDeltaModel.h.
|
explicit |
Constructor.
mCharge | Magnetic charge of the monopole, in e+ units |
nam | Name of the ionisation process in GEANT4 |
Definition at line 41 of file G4mplIonisationWithDeltaModel.cc.
|
virtual |
Destructor.
Definition at line 66 of file G4mplIonisationWithDeltaModel.cc.
|
privatedelete |
Copy constructor should be hidden.
copy | Copy reference |
|
overridevirtual |
Compute cross section per atom for delta electrons emission.
p | Pointer to monopole definition |
kineticEnergy | Monopole kinetic energy value |
Z | Atomic charge |
A | This argument of base function is ignored |
cutEnergy | Cut energy for ionisation process |
maxEnergy | Maximum energy of secondary electron |
Definition at line 214 of file G4mplIonisationWithDeltaModel.cc.
|
virtual |
Compute cross section per electron for delta electrons emission.
p | Pointer to monopole definition |
kineticEnergy | Monopole kinetic energy value |
cutEnergy | Cut energy for ionisation process |
maxEnergy | Maximum energy of secondary electron |
Definition at line 196 of file G4mplIonisationWithDeltaModel.cc.
|
private |
Calculate dedx based on extrapolated Ahlen formula.
References [1] Steven P. Ahlen: Energy loss of relativistic heavy ionizing particles, S.P. Ahlen, Rev. Mod. Phys 52(1980), p121 [2] K.A. Milton arXiv:hep-ex/0602040 [3] S.P. Ahlen and K. Kinoshita, Phys. Rev. D26 (1982) 2347
material | Pointer to the material of current volume |
bg2 | (beta*gamma)^2 |
cut | Cut energy for ionisation process |
Definition at line 161 of file G4mplIonisationWithDeltaModel.cc.
|
overridevirtual |
G4VEmModel::ComputeDEDXPerVolume implementation.
Combines dedx estimation from extrapolated Ahlen formula and formula for low beta.
material | Pointer to the material of current volume |
p | Pointer to monopole definition |
kineticEnergy | Monopole kinetic energy value |
maxEnergy | Maximum energy of secondary electron |
Definition at line 119 of file G4mplIonisationWithDeltaModel.cc.
|
overridevirtual |
Calculate dispersion.
material | Pointer to current material definition |
dp | Secondary particle pointer |
tcut | Tcut in dispersion formula |
tmax | Tmax in dispersion formula? |
length | Length in dispersion formula? |
Definition at line 309 of file G4mplIonisationWithDeltaModel.cc.
|
overridevirtual |
G4VEmModel::Initialise implementation.
p | Monopole definition pointer. |
Definition at line 84 of file G4mplIonisationWithDeltaModel.cc.
|
overrideprotectedvirtual |
Calculate maximum energy available for secondary particle emission.
p | This argument of base function is ignored |
kinEnergy | Kinetic energy of the ionising particle |
Definition at line 327 of file G4mplIonisationWithDeltaModel.cc.
|
overridevirtual |
Threshold for zero value.
Definition at line 112 of file G4mplIonisationWithDeltaModel.cc.
|
privatedelete |
Assignment operator should be hidden.
right | Assign reference |
|
overridevirtual |
Create fluctuations in the energies lost to a secondary delta electron.
couple | Current volume couple to get its material |
dp | Secondary particle pointer |
tcut | Tcut in dispersion formula |
tmax | Tmax in dispersion formula? |
length | Length in dispersion formula? |
meanLoss | Mean of energy loss |
Definition at line 279 of file G4mplIonisationWithDeltaModel.cc.
|
overridevirtual |
Create the sample of secondary delta electrons.
vdp | Pointer to the storage of sampled delta electrons |
materialCutsCouple | This argument of base function is ignored |
dp | Secondary particle pointer |
tmin | Minimal energy of secondary electrons |
maxEnergy | Maximum energy of secondary electrons |
Definition at line 227 of file G4mplIonisationWithDeltaModel.cc.
void SetParticle | ( | const G4ParticleDefinition * | p | ) |
Read definition of the monopole.
Definition at line 71 of file G4mplIonisationWithDeltaModel.cc.
|
private |
Square of betalim.
Definition at line 222 of file G4mplIonisationWithDeltaModel.h.
|
private |
Beta threshold for high energy (only Ahlen formula)
Definition at line 221 of file G4mplIonisationWithDeltaModel.h.
|
private |
Beta threshold for low asymptotic.
Definition at line 220 of file G4mplIonisationWithDeltaModel.h.
|
private |
(beta*gamma)^2 for betalim
Definition at line 223 of file G4mplIonisationWithDeltaModel.h.
|
private |
Square of magnetic charge in units of Dirac charge.
Definition at line 224 of file G4mplIonisationWithDeltaModel.h.
|
staticprivate |
Base dedx for each couple in current material.
Definition at line 229 of file G4mplIonisationWithDeltaModel.h.
|
private |
dedx limit in asymptotic formula, not used
Definition at line 225 of file G4mplIonisationWithDeltaModel.h.
|
private |
Pointer to ionising particle.
Definition at line 214 of file G4mplIonisationWithDeltaModel.h.
|
private |
Monopole magnetic charge in e+ units.
Definition at line 217 of file G4mplIonisationWithDeltaModel.h.
|
private |
Mass of the monopole.
Definition at line 216 of file G4mplIonisationWithDeltaModel.h.
|
private |
Monopole definition.
Definition at line 212 of file G4mplIonisationWithDeltaModel.h.
|
private |
Magn.
charge in units of Dirac charge g_D, nmpl=1 -> g = g_D
Definition at line 227 of file G4mplIonisationWithDeltaModel.h.
|
private |
Convenient constants combination with mass.
Definition at line 226 of file G4mplIonisationWithDeltaModel.h.
|
private |
Electron definition.
Definition at line 213 of file G4mplIonisationWithDeltaModel.h.
|
private |
log(100.0)
Definition at line 219 of file G4mplIonisationWithDeltaModel.h.