#include <EvtBlattWeisskopf.hh>
Public Member Functions | |
EvtBlattWeisskopf (const EvtBlattWeisskopf &) | |
EvtBlattWeisskopf (int LL, double R, double p0) | |
double | operator() (double p) const |
~EvtBlattWeisskopf () | |
Private Member Functions | |
double | compute (double p) const |
Private Attributes | |
double | _F0 |
int | _LL |
double | _p0 |
double | _radial |
|
00019 : _LL(LL), _radial(R), _p0(p0) 00020 { 00021 if(R < 0) { 00022 00023 report(INFO,"EvtGen") << "Radius " << R << " negative" << endl; 00024 assert(0); 00025 } 00026 00027 _radial = R; 00028 00029 // compute formula for nominal momentum 00030 00031 _F0 = compute(_p0); 00032 if(_F0 <= 0) { 00033 00034 report(INFO,"EvtGen") << "Invalid nominal form factor computed " << _F0 << endl; 00035 assert(0); 00036 } 00037 }
|
|
|
|
00044 {}
|
|
00066 { 00067 if(p < 0) { 00068 00069 report(INFO,"EvtGen") << "Momentum " << p << " negative in form factor calculation" << endl; 00070 assert(0); 00071 } 00072 else { 00073 00074 double x = p*p*_radial*_radial; 00075 00076 if(0 == _LL) return 1.; 00077 else 00078 if(1 == _LL) return sqrt(1.0/(1.0+x)); 00079 else 00080 if(2 == _LL) return sqrt(1.0/(1.0+x/3.0+x*x/9.0)); 00081 else { 00082 report(INFO,"EvtGen") << "Angular momentum " << _LL << " not implemented" << endl; 00083 assert(0); 00084 } 00085 } 00086 }
|
|
00047 { 00048 double ret = compute(p)/_F0; 00049 // report(INFO,"EvtGen") << p << " " << _p0 << " " << _F0 << " " << _LL << " " << _radial << " " << ret << endl; 00050 return ret; 00051 }
|
|
|
|
|
|
|
|
|