65 lowEnergyLimit(1.*
MeV),
66 highEnergyLimit(100.*
GeV),
67 twoln10(2.*
std::log(10.)),
164 G4double rateMass = electron_mass_c2/particleMass ;
167 G4double tau = kineticEnergy/particleMass ;
171 if ( tau < taul ) tau = taul ;
175 G4double gamma,bg2,beta2,tmax,x,delta,sh ;
188 bg2 = tau*(tau+2.0) ;
189 beta2 = bg2/(gamma*gamma) ;
190 tmax = 2.*electron_mass_c2*bg2/(1.+2.*gamma*rateMass+rateMass*rateMass) ;
192 ionloss = std::log(2.0*electron_mass_c2*bg2*tmax/eexc2)-2.0*beta2 ;
201 if ( x < x1den ) delta += aden*std::pow((x1den-x),mden) ;
209 for (
G4int k=0; k<=2; k++) {
211 sh += shellCorrectionVector[k]/x;
215 for (
G4int k=0; k<=2; k++) {
217 sh += shellCorrectionVector[k]/x;
219 sh *= std::log(tau/taul)/std::log(
taulim/taul) ;
224 ionloss -= delta + sh ;
225 ionloss *= twopi_mc2_rcl2*electronDensity/beta2 ;
227 if ( ionloss < 0.0) ionloss = 0.0 ;
G4IonisParamMat * GetIonisation() const
G4double GetAdensity() const
G4double GetKineticEnergy() const
G4double GetX1density() const
G4double BetheBlochFormula(const G4Material *material, G4double kineticEnergy, G4double particleMass) const
G4bool IsInCharge(const G4DynamicParticle *particle, const G4Material *material) const
static const G4double bg2lim
G4double GetElectronDensity() const
G4double HighEnergyLimit(const G4ParticleDefinition *aParticle, const G4Material *material) const
G4double TheValue(const G4DynamicParticle *particle, const G4Material *material)
G4hBetheBlochModel(const G4String &name)
G4double GetX0density() const
G4double GetPDGMass() const
G4double GetCdensity() const
G4double energy(const ThreeVector &p, const G4double m)
G4double * GetShellCorrectionVector() const
G4double GetMeanExcitationEnergy() const
G4double GetMdensity() const
G4double LowEnergyLimit(const G4ParticleDefinition *aParticle, const G4Material *material) const