49#include "G4mplAtlasIonisation.hh"
51#include "G4mplAtlasIonisationWithDeltaModel.hh"
53#include "G4Version.hh"
55#if G4VERSION_NUMBER < 1100
56#include "G4BohrFluctuations.hh"
59#include "G4Electron.hh"
60#include "G4EmProcessSubType.hh"
61#include "G4Version.hh"
63#include "CLHEP/Units/SystemOfUnits.h"
64#include "CLHEP/Units/PhysicalConstants.h"
68G4mplAtlasIonisation::G4mplAtlasIonisation(G4double mCharge,
const G4String& name)
69 : G4VEnergyLossProcess(
name),
70 magneticCharge(mCharge),
74 G4cout <<
"!!! G4mplAtlasIonisation constructor"<<G4endl;
76 SetProcessSubType( fIonisation );
79 if(magneticCharge == 0.0) magneticCharge = CLHEP::eplus*0.5/CLHEP::fine_structure_const;
82#if G4VERSION_NUMBER < 1010
83 SetLambdaBinning(120);
85 SetMinKinEnergy(0.1*CLHEP::keV);
86 SetMaxKinEnergy(100.0*CLHEP::TeV);
92G4mplAtlasIonisation::~G4mplAtlasIonisation()
94 G4cout <<
"!!! G4mplAtlasIonisation destructor"<<G4endl;
99void G4mplAtlasIonisation::InitialiseEnergyLossProcess(
const G4ParticleDefinition*,
100 const G4ParticleDefinition*)
102 if(isInitialised)
return;
104 G4cout <<
"!!! G4mplAtlasIonisation::InitialiseEnergyLossProcess"<<G4endl;
107 SetSecondaryParticle(G4Electron::Electron());
112 G4mplAtlasIonisationWithDeltaModel* ion =
new G4mplAtlasIonisationWithDeltaModel(magneticCharge,
"PAI");
113 ion->SetLowEnergyLimit(0.1*CLHEP::keV);
116 ion->SetHighEnergyLimit(7.*CLHEP::TeV);
117 AddEmModel(0,ion,ion);
119 SetStepFunction(0.2, 1*CLHEP::mm);
121 isInitialised =
true;
123 G4cout <<
"!!! G4mplAtlasIonisation::InitialiseEnergyLossProcess done"<<G4endl;
129void G4mplAtlasIonisation::PrintInfo()
132 G4cout <<
"!!! G4mplAtlasIonisation: Delta-electron production"