Monopole ionisation class.
More...
#include <G4mplIonisation.h>
|
virtual void | InitialiseEnergyLossProcess (const G4ParticleDefinition *p, const G4ParticleDefinition *) override |
| G4VEnergyLossProcess::InitialiseEnergyLossProcess() implementation.
|
|
Monopole ionisation class.
A wrapper, rather than a concrete class. Different ionisation models can be plugged in.
Definition at line 32 of file G4mplIonisation.h.
◆ G4mplIonisation() [1/2]
G4mplIonisation |
( |
G4double | mCharge = 0.0, |
|
|
const G4String & | name = "mplIoni" ) |
|
explicit |
Constructor.
- Parameters
-
mCharge | Monopole magnetic charge |
name | Name of the ionisation process in GEANT4 |
Definition at line 25 of file G4mplIonisation.cc.
26 : G4VEnergyLossProcess(name),
29{
30
32
33 SetVerboseLevel(0);
34 SetProcessSubType(fIonisation);
35 SetStepFunction(0.2, 1 * mm);
36 SetSecondaryParticle(G4Electron::Electron());
37}
G4double magneticCharge
Monopole charge, in e+ units.
G4bool isInitialised
Is the process initialised.
◆ ~G4mplIonisation()
◆ G4mplIonisation() [2/2]
Copy constructor should be hidden.
- Parameters
-
◆ InitialiseEnergyLossProcess()
void InitialiseEnergyLossProcess |
( |
const G4ParticleDefinition * | p, |
|
|
const G4ParticleDefinition * | ) |
|
overrideprotectedvirtual |
G4VEnergyLossProcess::InitialiseEnergyLossProcess() implementation.
Initialise ionisation proccess, if not it has not been initialised yet.
Concrete ionisation model is called inside this function.
- Parameters
-
p | Particle definition pointer, the monopole in our case |
Definition at line 58 of file G4mplIonisation.cc.
60{
62
63 SetBaseParticle(0);
64
65
66
67 G4mplIonisationWithDeltaModel* ion =
69
71
72
73 G4EmParameters* param = G4EmParameters::Instance();
74 G4double emin = std::min(param->MinKinEnergy(), ion->LowEnergyLimit());
75 G4double emax = std::max(param->MaxKinEnergy(), ion->HighEnergyLimit());
76 G4int bin = G4lrint(param->NumberOfBinsPerDecade() * std::log10(emax / emin));
77 ion->SetLowEnergyLimit(emin);
78 ion->SetHighEnergyLimit(emax);
79 SetMinKinEnergy(emin);
80 SetMaxKinEnergy(emax);
81 SetDEDXBinning(bin);
82
83 SetEmModel(ion);
84 AddEmModel(1, ion, ion);
85
87}
void SetParticle(const G4ParticleDefinition *p)
Read definition of the monopole.
◆ IsApplicable()
G4bool IsApplicable |
( |
const G4ParticleDefinition & | p | ) |
|
|
overridevirtual |
Dummy to check if the proccess is is applicable to a certain particle.
- Parameters
-
- Returns
- true
Definition at line 42 of file G4mplIonisation.cc.
◆ MinPrimaryEnergy()
G4double MinPrimaryEnergy |
( |
const G4ParticleDefinition * | p, |
|
|
const G4Material * | , |
|
|
G4double | cut ) |
|
finalvirtual |
Threshold for zero value.
Definition at line 47 of file G4mplIonisation.cc.
50{
51 G4double x = 0.5 * cut / electron_mass_c2;
52 G4double mass = mpl->GetPDGMass();
53 G4double ratio = electron_mass_c2 / mass;
54 G4double gam = x * ratio + std::sqrt((1. + x) * (1. + x * ratio * ratio));
55 return mass * (gam - 1.0);
56}
◆ operator=()
Assignment operator should be hidden.
- Parameters
-
◆ isInitialised
◆ magneticCharge
The documentation for this class was generated from the following files: