Belle II Software  release-08-01-10
G4mplIonisationWithDeltaModel Class Reference

Concrete monopole ionisation model. More...

#include <G4mplIonisationWithDeltaModel.h>

Inheritance diagram for G4mplIonisationWithDeltaModel:
Collaboration diagram for G4mplIonisationWithDeltaModel:

Public Member Functions

 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 tcut, 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 tcut, 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.
 

Protected Member Functions

virtual G4double MaxSecondaryEnergy (const G4ParticleDefinition *p, G4double kinEnergy) override
 Calculate maximum energy available for secondary particle emission. More...
 

Private Member Functions

G4double ComputeDEDXAhlen (const G4Material *material, G4double bg2, G4double cut)
 Calculate dedx based on extrapolated Ahlen formula. More...
 
G4mplIonisationWithDeltaModeloperator= (const G4mplIonisationWithDeltaModel &right)=delete
 Assignment operator should be hidden. More...
 
 G4mplIonisationWithDeltaModel (const G4mplIonisationWithDeltaModel &copy)=delete
 Copy constructor should be hidden. More...
 

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. More...
 

Static Private Attributes

static std::vector< G4double > * dedx0 = nullptr
 Base dedx for each couple in current material.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ G4mplIonisationWithDeltaModel() [1/2]

G4mplIonisationWithDeltaModel ( G4double  mCharge,
const G4String &  nam = "mplIonisationWithDelta" 
)
explicit

Constructor.

Parameters
mChargeMagnetic charge of the monopole, in e+ units
namName of the ionisation process in GEANT4

Definition at line 41 of file G4mplIonisationWithDeltaModel.cc.

43  : G4VEmModel(nam), G4VEmFluctuationModel(nam),
44  magCharge(mCharge),
45  twoln10(log(100.0)),
46  betalow(0.01),
47  betalim(0.1),
49  bg2lim(beta2lim * (1.0 + beta2lim)),
50  pi_hbarc2_over_mc2(pi * hbarc * hbarc / electron_mass_c2)
51 {
52  nmpl = magCharge * 2 * fine_structure_const;
53  chargeSquare = magCharge * magCharge * 4 * fine_structure_const *
54  fine_structure_const;
55  //NOTE Formulas below assume Dirac charge units for magnetic charge, g_D = 68.5e
56  dedxlim = 45. * chargeSquare * GeV * cm2 / g;
57  fParticleChange = nullptr;
58  theElectron = G4Electron::Electron();
59  B2INFO("Monopole ionisation model with d-electron production, Gmag= " << magCharge / eplus);
60  if (nmpl >= 6)
61  B2WARNING("Monopole charge Gmag= " << magCharge / eplus << "e not reasonable. Please choose a value smaller than 411e.");
62  monopole = nullptr;
63  mass = 0.0;
64 }
G4double pi_hbarc2_over_mc2
Convenient constants combination with mass.
G4double betalow
Beta threshold for low asymptotic.
G4double chargeSquare
Square of magnetic charge in units of Dirac charge.
G4ParticleChangeForLoss * fParticleChange
Pointer to ionising particle.
G4ParticleDefinition * theElectron
Electron definition.
const G4ParticleDefinition * monopole
Monopole definition.
G4double dedxlim
dedx limit in asymptotic formula, not used
G4double magCharge
Monopole magnetic charge in e+ units.
G4double betalim
Beta threshold for high energy (only Ahlen formula)

◆ G4mplIonisationWithDeltaModel() [2/2]

Copy constructor should be hidden.

Parameters
copyCopy reference

Member Function Documentation

◆ 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
pPointer to monopole definition
kineticEnergyMonopole kinetic energy value
ZAtomic charge
AThis argument of base function is ignored
cutEnergyCut energy for ionisation process
maxEnergyMaximum energy of secondary electron
Returns
Cross section

Definition at line 214 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
pPointer to monopole definition
kineticEnergyMonopole kinetic energy value
cutEnergyCut energy for ionisation process
maxEnergyMaximum energy of secondary electron
Returns
Cross section

Definition at line 196 of file G4mplIonisationWithDeltaModel.cc.

◆ ComputeDEDXAhlen()

G4double ComputeDEDXAhlen ( const G4Material *  material,
G4double  bg2,
G4double  cut 
)
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

Parameters
materialPointer to the material of current volume
bg2(beta*gamma)^2
cutCut energy for ionisation process
Returns
dedx magnitude

Definition at line 161 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
materialPointer to the material of current volume
pPointer to monopole definition
kineticEnergyMonopole kinetic energy value
maxEnergyMaximum energy of secondary electron
Returns
dedx magnitude

Definition at line 119 of file G4mplIonisationWithDeltaModel.cc.

◆ Dispersion()

G4double Dispersion ( const G4Material *  material,
const G4DynamicParticle *  dp,
G4double  tcut,
G4double  tmax,
G4double  length 
)
overridevirtual

Calculate dispersion.

Parameters
materialPointer to current material definition
dpSecondary particle pointer
tcutTcut in dispersion formula
tmaxTmax in dispersion formula?
lengthLength in dispersion formula?
Returns
Dispersion

Definition at line 309 of file G4mplIonisationWithDeltaModel.cc.

◆ Initialise()

void Initialise ( const G4ParticleDefinition *  p,
const G4DataVector &   
)
overridevirtual

G4VEmModel::Initialise implementation.

Parameters
pMonopole definition pointer.

Definition at line 84 of file G4mplIonisationWithDeltaModel.cc.

◆ MaxSecondaryEnergy()

G4double MaxSecondaryEnergy ( const G4ParticleDefinition *  p,
G4double  kinEnergy 
)
overrideprotectedvirtual

Calculate maximum energy available for secondary particle emission.

Parameters
pThis argument of base function is ignored
kinEnergyKinetic energy of the ionising particle
Returns
Maximum energy available for secondary particle emission

Definition at line 327 of file G4mplIonisationWithDeltaModel.cc.

◆ operator=()

G4mplIonisationWithDeltaModel& operator= ( const G4mplIonisationWithDeltaModel right)
privatedelete

Assignment operator should be hidden.

Parameters
rightAssign reference

◆ SampleFluctuations()

G4double SampleFluctuations ( const G4MaterialCutsCouple *  couple,
const G4DynamicParticle *  dp,
G4double  tcut,
G4double  tmax,
G4double  length,
G4double  meanLoss 
)
overridevirtual

Create fluctuations in the energies lost to a secondary delta electron.

Parameters
coupleCurrent volume couple to get its material
dpSecondary particle pointer
tcutTcut in dispersion formula
tmaxTmax in dispersion formula?
lengthLength in dispersion formula?
meanLossMean of energy loss
Returns
Fluctuated loss

Definition at line 279 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
vdpPointer to the storage of sampled delta electrons
materialCutsCoupleThis argument of base function is ignored
dpSecondary particle pointer
tminMinimal energy of secondary electrons
maxEnergyMaximum energy of secondary electrons

Definition at line 227 of file G4mplIonisationWithDeltaModel.cc.

Member Data Documentation

◆ nmpl

G4double nmpl
private

Magn.

charge in units of Dirac charge g_D, nmpl=1 -> g = g_D

Definition at line 227 of file G4mplIonisationWithDeltaModel.h.


The documentation for this class was generated from the following files: