91   if(t0 >= tm) 
return 0.0;
    94                            Shell(Z, shell)->BindingEnergy();
    96   if(e <= bindingEnergy) 
return 0.0;
   103   if(
verbose > 1 || (Z==4 && e>= 1.0 && e<= 0.0)) {
   104     G4cout << 
"G4RDeIonisationSpectrum::Probability: Z= " << Z
   105            << 
"; shell= " << shell
   106            << 
"; E(keV)= " << e/
keV   107            << 
"; Eb(keV)= " << bindingEnergy/
keV   124   if(p[3] > 0.5) p[3] = 0.5;
   127   p.push_back((2.0*g - 1.0)/(g*g));
   131   if(e >= 1. && e <= 0. && Z == 4) p.push_back(0.0);
   138   if(
verbose > 1 || (Z==4 && e>= 1.0 && e<= 0.0)) {
   139     G4cout << 
"tcut= " << tMin 
   140            << 
"; tMax= " << tMax 
   156   if(nor > 0.0) val /= nor;
   177   if(t0 >= tm) 
return 0.0;
   180                            Shell(Z, shell)->BindingEnergy();
   182   if(e <= bindingEnergy) 
return 0.0;
   190     G4cout << 
"G4RDeIonisationSpectrum::AverageEnergy: Z= " << Z
   191            << 
"; shell= " << shell
   192            << 
"; E(keV)= " << e/
keV   193            << 
"; bindingE(keV)= " << bindingEnergy/
keV   209   if(p[3] > 0.5) p[3] = 0.5;
   212   p.push_back((2.0*g - 1.0)/(g*g));
   223            << 
"; tMax(MeV)= " << tMax/
MeV    238   if(nor > 0.0) val /= nor;
   256   if(t0 > tm) 
return tDelta;
   259                            Shell(Z, shell)->BindingEnergy();
   261   if(e <= bindingEnergy) 
return 0.0;
   267   if(x1 >= x2) 
return tDelta;
   270     G4cout << 
"G4RDeIonisationSpectrum::SampleEnergy: Z= " << Z
   271            << 
"; shell= " << shell
   272            << 
"; E(keV)= " << e/
keV   287   if(p[3] > 0.5) p[3] = 0.5;
   290   p.push_back((2.0*g - 1.0)/(g*g));
   304   G4double amaj, fun, q, 
x, z1, z2, dx, dx1;
   312       if(p[j] > amaj) amaj = p[j];
   324       dx = (p[2] - p[1]) / 3.0;
   325       dx1= std::exp(std::log(p[3]/p[2]) / 16.0);
   326       for (i=4; i<iMax-1; i++) {
   330         } 
else if(iMax-2 == i) {
   336         if(x >= z1 && x <= z2) 
break;
   339       fun = p[i] + (x - z1) * (p[i+1] - p[i])/(z2 - z1);
   342           G4cout << 
"WARNING in G4RDeIonisationSpectrum::SampleEnergy:"    343                  << 
" Majoranta " << amaj 
   345                  << 
" in the first aria at x= " << x
   367           G4cout << 
"WARNING in G4RDeIonisationSpectrum::SampleEnergy:"    368                  << 
" Majoranta " << amaj 
   370                  << 
" in the second aria at x= " << x
   382   tDelta = x*energy - bindingEnergy;
   386            << 
"; tMax(MeV)= " << tMax/
MeV    392            << 
"; be= " << bindingEnergy 
   394            << 
"; tDelta= " << tDelta 
   409   if(xMin >= xMax) 
return sum;
   420     G4double dx1= std::exp(std::log(p[3]/p[2]) / 16.0);
   422     for (
size_t i=0; i<19; i++) {
   437       } 
else if (xMin < x2) {
   447             ys1 += (xs1 - 
x1)*(y2 - y1)/(x2 - 
x1);
   451             ys2 += (xs2 - 
x2)*(y1 - y2)/(x1 - 
x2);
   454             q = (ys1*xs2 - ys2*xs1)/(xs1*xs2) 
   455               +  std::log(xs2/xs1)*(ys2 - ys1)/(xs2 - xs1);
   457             if(p.size() == 26) 
G4cout << 
"i= " << i << 
"  q= " << q << 
" sum= " << sum << 
G4endl;
   469   if(x1 >= xMax) 
return sum;
   474   q = (xs1 - xs2)*(1.0 - p[0]) 
   475        - p[
iMax]*std::log(x2/x1) 
   476        + (1. - p[
iMax])*(x2 - x1)
   477        + 1./(1. - 
x2) - 1./(1. - x1) 
   478        + p[
iMax]*std::log((1. - x2)/(1. - x1))
   479        + 0.25*p[0]*(xs1*xs1 - xs2*xs2);
   481   if(p.size() == 26) 
G4cout << 
"param...  q= " << q <<  
" sum= " << sum << 
G4endl;
   492   if(xMin >= xMax) 
return sum;
   503     G4double dx1= std::exp(std::log(p[3]/p[2]) / 16.0);
   505     for (
size_t i=0; i<19; i++) {
   519       } 
else if (xMin < x2) {
   529             ys1 += (xs1 - 
x1)*(y2 - y1)/(x2 - 
x1);
   533             ys2 += (xs2 - 
x2)*(y1 - y2)/(x1 - 
x2);
   536             sum += std::log(xs2/xs1)*(ys1*xs2 - ys2*xs1)/(xs2 - xs1) 
   550   if(x1 >= xMax) 
return sum;
   556   sum  += std::log(x2/x1)*(1.0 - p[0]) 
   557         + 0.5*(1. - p[
iMax])*(x2*x2 - x1*
x1)
   558         + 1./(1. - x2) - 1./(1. - 
x1) 
   559         + (1. + p[iMax])*std::log((1. - x2)/(1. - x1))
   560         + 0.5*p[0]*(xs1 - xs2);
   575   return 0.5 * kineticEnergy;
 G4double MaxEnergyOfSecondaries(G4double kineticEnergy, G4int Z=0, const G4ParticleDefinition *pd=0) const
 
G4double Probability(G4int Z, G4double tMin, G4double tMax, G4double kineticEnergy, G4int shell, const G4ParticleDefinition *pd=0) const
 
G4RDeIonisationSpectrum()
 
G4double IntSpectrum(G4double xMin, G4double xMax, const G4DataVector &p) const
 
~G4RDeIonisationSpectrum()
 
static G4RDAtomicTransitionManager * Instance()
 
G4double Parameter(G4int Z, G4int shellIndex, G4int parameterIndex, G4double e) const
 
G4GLOB_DLL std::ostream G4cout
 
G4double AverageEnergy(G4int Z, G4double tMin, G4double tMax, G4double kineticEnergy, G4int shell, const G4ParticleDefinition *pd=0) const
 
G4double SampleEnergy(G4int Z, G4double tMin, G4double tMax, G4double kineticEnergy, G4int shell, const G4ParticleDefinition *pd=0) const
 
static const G4double factor
 
G4double Function(G4double x, const G4DataVector &p) const
 
G4double AverageValue(G4double xMin, G4double xMax, const G4DataVector &p) const
 
G4RDeIonisationParameters * theParam