81#include "TrkExtAlg/ExthIonisation.h"
82#include "G4Electron.hh"
84#include "G4AntiProton.hh"
85#include "G4BraggModel.hh"
86#include "G4BetheBlochModel.hh"
87#include "G4UniversalFluctuation.hh"
88#include "G4BohrFluctuations.hh"
89#include "G4UnitsTable.hh"
94 : G4VEnergyLossProcess(name),
100 SetLambdaBinning(120);
101 SetMinKinEnergy(0.1*keV);
102 SetMaxKinEnergy(100.0*TeV);
104 SetLossFluctuations(
false);
117 const G4ParticleDefinition* bpart)
119 if(isInitialised)
return;
123 if(part == bpart || part == G4Proton::Proton()) theBaseParticle = 0;
124 else if(bpart == 0) theBaseParticle = G4Proton::Proton();
125 else theBaseParticle = bpart;
127 SetBaseParticle(theBaseParticle);
128 SetSecondaryParticle(G4Electron::Electron());
129 mass = theParticle->GetPDGMass();
130 ratio = electron_mass_c2/mass;
132 G4VEmModel* em =
new G4BraggModel();
133 em->SetLowEnergyLimit(0.1*keV);
134 eth = 2.0*MeV*mass/proton_mass_c2;
135 em->SetHighEnergyLimit(eth);
137 flucModel =
new G4UniversalFluctuation();
139 AddEmModel(1, em, flucModel);
140 G4VEmModel* em1 =
new G4BetheBlochModel();
141 em1->SetLowEnergyLimit(eth);
142 em1->SetHighEnergyLimit(100.0*TeV);
143 AddEmModel(2, em1, flucModel);
145 SetStepFunction(0.2, 1.0*mm);
147 isInitialised =
true;
154 G4cout <<
" Bether-Bloch model for Escaled > 2 MeV, "
155 <<
"parametrisation of Bragg peak below, "
156 <<
"Integral mode " << IsIntegral()
virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition *, const G4ParticleDefinition *)
ExthIonisation(const G4String &name="ExthIoni")