32 if ( !( p > 0 ) )
return 0;
37 const double Me = 0.000510999;
39 double bsq = psq / ( psq +
mass *
mass );
43 double w = ( 4 * Me * esq / ( 1 + 2 *
s * sqrt( 1 + esq ) +
s *
s ) );
47 cc = 1 + 2 * log( sqrt( isq_ ) / ( 28.8E-09 * sqrt( rza_ ) ) );
48 if ( cc < 5.215 ) x0 = 0.2;
49 else x0 = 0.326 * cc - 1.5;
50 double x1( 3 ), xa( cc / 4.606 ), aa;
51 aa = 4.606 * ( xa - x0 ) / ( ( x1 - x0 ) * ( x1 - x0 ) * ( x1 - x0 ) );
53 double x( log10( sqrt( esq ) ) );
56 delta = 4.606 * x - cc;
57 if ( x < x1 ) delta = delta + aa * ( x1 - x ) * ( x1 - x ) * ( x1 - x );
61 float f1, f2, f3, f4, f5, ce;
65 f4 = (
f1 * 0.42237 + f2 * 0.0304 - f3 * 0.00038 ) * 1E12;
66 f5 = (
f1 * 3.858 - f2 * 0.1668 + f3 * 0.00158 ) * 1E18;
67 ce = f4 * isq_ + f5 * isq_ * sqrt( isq_ );
69 return ( 0.0001535 * rza_ / bsq *
70 ( log( Me * esq *
w / isq_ ) - 2 * bsq - delta - 2.0 * ce / z_ ) ) *