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"
90#include "G4SystemOfUnits.hh"
91#include "G4PhysicalConstants.hh"
96 : G4VEnergyLossProcess(name),
103 SetMinKinEnergy(0.1*keV);
104 SetMaxKinEnergy(100.0*TeV);
106 SetLossFluctuations(
false);
119 const G4ParticleDefinition* bpart)
121 if(isInitialised)
return;
125 if(part == bpart || part == G4Proton::Proton()) theBaseParticle = 0;
126 else if(bpart == 0) theBaseParticle = G4Proton::Proton();
127 else theBaseParticle = bpart;
129 SetBaseParticle(theBaseParticle);
130 SetSecondaryParticle(G4Electron::Electron());
131 mass = theParticle->GetPDGMass();
132 ratio = electron_mass_c2/mass;
134 G4VEmModel* em =
new G4BraggModel();
135 em->SetLowEnergyLimit(0.1*keV);
136 eth = 2.0*MeV*mass/proton_mass_c2;
137 em->SetHighEnergyLimit(eth);
139 flucModel =
new G4UniversalFluctuation();
141 AddEmModel(1, em, flucModel);
142 G4VEmModel* em1 =
new G4BetheBlochModel();
143 em1->SetLowEnergyLimit(eth);
144 em1->SetHighEnergyLimit(100.0*TeV);
145 AddEmModel(2, em1, flucModel);
147 SetStepFunction(0.2, 1.0*mm);
149 isInitialised =
true;
156 G4cout <<
" Bether-Bloch model for Escaled > 2 MeV, "
157 <<
"parametrisation of Bragg peak below, "
158 <<
"Integral mode " << IsIntegral()
virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition *, const G4ParticleDefinition *)
ExthIonisation(const G4String &name="ExthIoni")