64   chargeCorrection = 1.0;
 
   65   energyHighLimit  = 20.0*
MeV;
 
   66   energyLowLimit   = 1.0*
keV;
 
   88   if(p == lastPart && material == lastMat && kineticEnergy == lastKinEnergy)
 
   93   lastKinEnergy = kineticEnergy;
 
   99   chargeCorrection = 1.0;
 
  111   if( reducedEnergy > Zi*energyHighLimit || Zi < 1.5 || !material) 
return charge;
 
  114   reducedEnergy = std::max(reducedEnergy,energyLowLimit);
 
  119     static G4double c[6] = {0.2865,  0.1266, -0.001429,
 
  120                 0.02402,-0.01135, 0.001475} ;
 
  122     G4double Q = std::max(0.0,std::log(reducedEnergy*massFactor));
 
  125     for (
G4int i=1; i<6; i++) {
 
  130     if(x < 0.2) ex = x * (1 - 0.5*
x);
 
  131     else        ex = 1. - std::exp(-x);
 
  136     if(tq2 < 0.2) tt *= (1.0 - tq2 + 0.5*tq2*tq2);
 
  137     else          tt *= std::exp(-tq2);
 
  139     effCharge = charge*(1.0 + tt) * std::sqrt(ex);
 
  156     G4double vF   = std::sqrt(eF/energyBohr);
 
  160       y = vF * std::sqrt(v1sq) * ( 1.0 + 0.2/v1sq ) / zi23 ;
 
  164       y = 0.692308 * vF * (1.0 + 0.666666*v1sq + v1sq*v1sq/15.0) / zi23 ;
 
  170     q = 1.0 - std::exp( 0.803*y3 - 1.3167*y3*y3 - 0.38157*y - 0.008983*y*y ) ;
 
  179     if(q < qmin) q = qmin;
 
  181     effCharge = q*charge;
 
  194     G4double sq = ( 0.18 + 0.0015 * 
z ) / (Zi*Zi);
 
  195     if(tq2 < 0.2) sq *= (1.0 - tq2 + 0.5*tq2*tq2);
 
  196     else          sq *= std::exp(-tq2);
 
  205     if(q < 0.2) lambda *= (1.0 - 0.66666667*q - q*q/9.0);
 
  206     else        lambda *= std::pow(1.0-q, 0.666666);
 
  211     if(lambda2 < 0.2) xx *= lambda2*(1.0 - 0.5*lambda2);
 
  212     else              xx *= std::log(1.0 + lambda2); 
 
  214     chargeCorrection = sq * (1.0 + 
xx);