453     *t= GetTables(aParticle);
 
  458   if (!propertimeTable) {
 
  459     ParticleHaveNoLoss(aParticle,
"ProperTime");
 
  463   const G4double parlowen=0.4 , ppar=0.5-parlowen ;
 
  464   const G4double dToverT = 0.05 , facT = 1. -dToverT ;
 
  465   G4double timestart,timeend,deltatime,dTT;
 
  469   G4double scaledKineticEnergy = KineticEnergyStart*t->theMassRatio;
 
  471   if (scaledKineticEnergy<t->theLowestKineticEnergy) {
 
  473      timestart = std::exp(ppar*std::log(scaledKineticEnergy/t->theLowestKineticEnergy))*
 
  474                 (*propertimeTable)(materialIndex)->GetValue(
 
  475                 t->theLowestKineticEnergy,isOut);
 
  478   } 
else if (scaledKineticEnergy>t->theHighestKineticEnergy) {
 
  480      timestart = (*propertimeTable)(materialIndex)->GetValue(
 
  481                 t->theHighestKineticEnergy,isOut);
 
  485     timestart = (*propertimeTable)(materialIndex)->GetValue(
 
  486                 scaledKineticEnergy,isOut);
 
  490   dTT = (KineticEnergyStart - KineticEnergyEnd)/KineticEnergyStart ;
 
  493     scaledKineticEnergy = facT*KineticEnergyStart*t->theMassRatio;
 
  495     scaledKineticEnergy = KineticEnergyEnd*t->theMassRatio;
 
  497   if (scaledKineticEnergy<t->theLowestKineticEnergy) {
 
  499      timeend = std::exp(ppar*std::log(scaledKineticEnergy/t->theLowestKineticEnergy))*
 
  500                 (*propertimeTable)(materialIndex)->GetValue(
 
  501                 t->theLowestKineticEnergy,isOut);
 
  504   } 
else if (scaledKineticEnergy>t->theHighestKineticEnergy) {
 
  506      timeend = (*propertimeTable)(materialIndex)->GetValue(
 
  507                 t->theHighestKineticEnergy,isOut);
 
  511     timeend = (*propertimeTable)(materialIndex)->GetValue(
 
  512                 scaledKineticEnergy,isOut);
 
  516   deltatime = timestart - timeend ;
 
  519     deltatime *= dTT/dToverT ;
 
  521   return deltatime/t->theMassRatio ;