110 G4double reducedEnergy = kineticEnergy * proton_mass_c2/mass ;
114 if( reducedEnergy > Zi*
energyHighLimit || Zi < 1.5 || !material)
return charge;
122 static const G4double c[6] = {0.2865,0.1266,-0.001429,0.02402,-0.01135,0.001475};
127 for (
G4int i=1; i<6; i++) {
132 if(x < 0.2) ex = x * (1 - 0.5*x);
133 else ex = 1. -
G4Exp(-x);
138 if(tq2 < 0.2) tt *= (1.0 - tq2 + 0.5*tq2*tq2);
139 else tt *=
G4Exp(-tq2);
141 effCharge = charge*(1.0 + tt) * std::sqrt(ex);
162 y = vF * std::sqrt(v1sq) * ( 1.0 + 0.2/v1sq ) / zi23 ;
166 y = 0.692308 * vF * (1.0 + 0.666666*v1sq + v1sq*v1sq/15.0) / zi23 ;
172 q = 1.0 -
G4Exp( 0.803*y3 - 1.3167*y3*y3 - 0.38157*y - 0.008983*y*y ) ;
181 if(q < qmin) q = qmin;
static G4Pow * GetInstance()
const G4Material * lastMat
G4IonisParamMat * GetIonisation() const
G4double chargeCorrection
virtual ~G4ionEffectiveCharge()
G4double GetZeffective() const
G4double GetFermiEnergy() const
G4double A23(G4double A) const
const G4ParticleDefinition * lastPart
G4double G4Log(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double EffectiveCharge(const G4ParticleDefinition *p, const G4Material *material, G4double kineticEnergy)
G4double GetPDGMass() const
G4double A13(G4double A) const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
static const double eplus
G4double GetPDGCharge() const