20 : _LL( LL ), _radial( R ), _p0( p0 ) {
24 report(
INFO,
"EvtGen" ) <<
"Radius " << R <<
" negative" << endl;
36 report(
INFO,
"EvtGen" ) <<
"Invalid nominal form factor computed " << _F0 << endl;
42 : _LL( other._LL ), _radial( other._radial ), _p0( other._p0 ), _F0( other._F0 ) {}
47 double ret = compute( p ) / _F0;
65double EvtBlattWeisskopf::compute(
double p )
const {
69 report(
INFO,
"EvtGen" ) <<
"Momentum " << p <<
" negative in form factor calculation"
75 double rp = p * _radial;
77 double rp4 = rp2 * rp2;
78 double rp6 = rp2 * rp4;
79 double rp8 = rp4 * rp4;
81 double x = p * p * _radial * _radial;
83 if ( 0 == _LL )
return 1.;
84 else if ( 1 == _LL )
return sqrt( 1.0 / ( 1.0 +
x ) );
85 else if ( 2 == _LL )
return sqrt( 1.0 / ( 1.0 +
x / 3.0 +
x *
x / 9.0 ) );
86 else if ( 3 == _LL )
return 1.0 / sqrt( 225 + 45 * rp2 + 6 * rp4 + rp6 );
87 else if ( 4 == _LL )
return 1.0 / sqrt( 11025 + 1575 * rp2 + 135 * rp4 + 10 * rp6 + rp8 );
90 report(
INFO,
"EvtGen" ) <<
"Angular momentum " << _LL <<
" not implemented" << endl;
ostream & report(Severity severity, const char *facility)
double operator()(double p) const
EvtBlattWeisskopf(int LL, double R, double p0)