Concrete monopole ionisation model.
More...
#include <G4mplIonisationWithDeltaModel.h>
|
| | G4mplIonisationWithDeltaModel (G4double mCharge, const G4String &nam="mplIonisationWithDelta") |
| | Constructor. More...
|
| |
|
virtual | ~G4mplIonisationWithDeltaModel () |
| | Destructor.
|
| |
| virtual void | Initialise (const G4ParticleDefinition *p, const G4DataVector &) override |
| | G4VEmModel::Initialise implementation. More...
|
| |
| virtual G4double | ComputeDEDXPerVolume (const G4Material *material, const G4ParticleDefinition *p, G4double kineticEnergy, G4double maxEnergy) override |
| | G4VEmModel::ComputeDEDXPerVolume implementation. More...
|
| |
| virtual G4double | ComputeCrossSectionPerElectron (const G4ParticleDefinition *p, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy) |
| | Compute cross section per electron for delta electrons emission. More...
|
| |
| 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. More...
|
| |
| 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. More...
|
| |
| virtual G4double | SampleFluctuations (const G4MaterialCutsCouple *couple, const G4DynamicParticle *dp, G4double tmax, G4double length, G4double meanLoss) override |
| | Create fluctuations in the energies lost to a secondary delta electron. More...
|
| |
| virtual G4double | Dispersion (const G4Material *material, const G4DynamicParticle *, G4double tmax, G4double length) override |
| | Calculate dispersion. More...
|
| |
|
virtual G4double | MinEnergyCut (const G4ParticleDefinition *, const G4MaterialCutsCouple *couple) override |
| | Threshold for zero value.
|
| |
|
void | SetParticle (const G4ParticleDefinition *p) |
| | Read definition of the monopole.
|
| |
|
| virtual G4double | MaxSecondaryEnergy (const G4ParticleDefinition *p, G4double kinEnergy) override |
| | Calculate maximum energy available for secondary particle emission. More...
|
| |
|
|
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. More...
|
| |
|
|
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 36 of file G4mplIonisationWithDeltaModel.h.
◆ G4mplIonisationWithDeltaModel() [1/2]
Constructor.
- Parameters
-
| mCharge | Magnetic charge of the monopole, in e+ units |
| nam | Name of the ionisation process in GEANT4 |
Definition at line 43 of file G4mplIonisationWithDeltaModel.cc.
45 : G4VEmModel(nam), G4VEmFluctuationModel(nam),
61 B2INFO(
"Monopole ionisation model with d-electron production, Gmag= " <<
magCharge / eplus);
63 B2WARNING(
"Monopole charge Gmag= " <<
magCharge / eplus <<
"e not reasonable. Please choose a value smaller than 411e.");
◆ G4mplIonisationWithDeltaModel() [2/2]
Copy constructor should be hidden.
- Parameters
-
◆ ComputeCrossSectionPerAtom()
| G4double ComputeCrossSectionPerAtom |
( |
const G4ParticleDefinition * |
p, |
|
|
G4double |
kineticEnergy, |
|
|
G4double |
Z, |
|
|
G4double |
A, |
|
|
G4double |
cutEnergy, |
|
|
G4double |
maxEnergy |
|
) |
| |
|
overridevirtual |
Compute cross section per atom for delta electrons emission.
- Parameters
-
| 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 |
- Returns
- Cross section
Definition at line 216 of file G4mplIonisationWithDeltaModel.cc.
◆ ComputeCrossSectionPerElectron()
| G4double ComputeCrossSectionPerElectron |
( |
const G4ParticleDefinition * |
p, |
|
|
G4double |
kineticEnergy, |
|
|
G4double |
cutEnergy, |
|
|
G4double |
maxEnergy |
|
) |
| |
|
virtual |
Compute cross section per electron for delta electrons emission.
- Parameters
-
| p | Pointer to monopole definition |
| kineticEnergy | Monopole kinetic energy value |
| cutEnergy | Cut energy for ionisation process |
| maxEnergy | Maximum energy of secondary electron |
- Returns
- Cross section
Definition at line 198 of file G4mplIonisationWithDeltaModel.cc.
◆ ComputeDEDXAhlen()
| G4double ComputeDEDXAhlen |
( |
const G4Material * |
material, |
|
|
G4double |
bg2, |
|
|
G4double |
cut |
|
) |
| |
|
private |
Caculate 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
- Parameters
-
| material | Pointer to the material of current volume |
| bg2 | (beta*gamma)^2 |
| cut | Cut energy for ionisation process |
- Returns
- dedx magnitude
Definition at line 163 of file G4mplIonisationWithDeltaModel.cc.
◆ ComputeDEDXPerVolume()
| G4double ComputeDEDXPerVolume |
( |
const G4Material * |
material, |
|
|
const G4ParticleDefinition * |
p, |
|
|
G4double |
kineticEnergy, |
|
|
G4double |
maxEnergy |
|
) |
| |
|
overridevirtual |
G4VEmModel::ComputeDEDXPerVolume implementation.
Combines dedx estimation from extrapolated Ahlen formula and formula for low beta.
- Parameters
-
| material | Pointer to the material of current volume |
| p | Pointer to monopole definition |
| kineticEnergy | Monopole kinetic energy value |
| maxEnergy | Maximum energy of secondary electron |
- Returns
- dedx magnitude
Definition at line 121 of file G4mplIonisationWithDeltaModel.cc.
◆ Dispersion()
| G4double Dispersion |
( |
const G4Material * |
material, |
|
|
const G4DynamicParticle * |
dp, |
|
|
G4double |
tmax, |
|
|
G4double |
length |
|
) |
| |
|
overridevirtual |
Calculate dispersion.
- Parameters
-
| material | Pointer to current material definition |
| dp | Secnodary particle pointer |
| tmax | Tmax in dispersion formula? |
| length | Length in dispersion formula? |
- Returns
- Dispersion
Definition at line 310 of file G4mplIonisationWithDeltaModel.cc.
◆ Initialise()
| void Initialise |
( |
const G4ParticleDefinition * |
p, |
|
|
const G4DataVector & |
|
|
) |
| |
|
overridevirtual |
◆ MaxSecondaryEnergy()
| G4double MaxSecondaryEnergy |
( |
const G4ParticleDefinition * |
p, |
|
|
G4double |
kinEnergy |
|
) |
| |
|
overrideprotectedvirtual |
Calculate maximum energy available for secondary particle emission.
- Parameters
-
| p | This argument of base function is ignored |
| kinEnergy | Kinetic energy of the ionising particle |
- Returns
- Maximum energy available for secondary particle emission
Definition at line 328 of file G4mplIonisationWithDeltaModel.cc.
◆ operator=()
Assignment operator should be hidden.
- Parameters
-
◆ SampleFluctuations()
| G4double SampleFluctuations |
( |
const G4MaterialCutsCouple * |
couple, |
|
|
const G4DynamicParticle * |
dp, |
|
|
G4double |
tmax, |
|
|
G4double |
length, |
|
|
G4double |
meanLoss |
|
) |
| |
|
overridevirtual |
Create fluctuations in the energies lost to a secondary delta electron.
- Parameters
-
| couple | Current volume coulple to get its material |
| dp | Secnodary particle pointer |
| tmax | Tmax in dispersion formula? |
| length | Length in dispersion formula? |
| meanLoss | Mean of energy loss |
- Returns
- Fluctuated loss
Definition at line 281 of file G4mplIonisationWithDeltaModel.cc.
◆ SampleSecondaries()
| void SampleSecondaries |
( |
std::vector< G4DynamicParticle * > * |
vdp, |
|
|
const G4MaterialCutsCouple * |
materialCutsCouple, |
|
|
const G4DynamicParticle * |
dp, |
|
|
G4double |
tmin, |
|
|
G4double |
maxEnergy |
|
) |
| |
|
overridevirtual |
Create the sample of secondary delta electrons.
- Parameters
-
| vdp | Pointer to the storage of sampled delta electrons |
| materialCutsCouple | This argument of base function is ignored |
| dp | Secnodary particle pointer |
| tmin | Minimal energy of secondary electrons |
| maxEnergy | Maximum energy of secondary electrons |
Definition at line 229 of file G4mplIonisationWithDeltaModel.cc.
◆ nmpl
The documentation for this class was generated from the following files: