#include <EvtTwoBodyVertex.hh>
Public Member Functions | |
EvtTwoBodyVertex (const EvtTwoBodyVertex &other) | |
EvtTwoBodyVertex (double mA, double mB, double mAB, int L) | |
EvtTwoBodyVertex () | |
double | formFactor (EvtTwoBodyKine x) const |
int | L () const |
double | mA () const |
double | mAB () const |
double | mB () const |
double | pD () const |
double | phaseSpaceFactor (EvtTwoBodyKine x, EvtTwoBodyKine::Index) const |
void | print (std::ostream &os) const |
void | set_f (double R) |
double | widthFactor (EvtTwoBodyKine x) const |
~EvtTwoBodyVertex () | |
Private Attributes | |
EvtBlattWeisskopf * | _f |
EvtTwoBodyKine | _kine |
int | _LL |
double | _p0 |
|
|
|
00027 : _kine(), _LL(L), _p0(0), _f(0) 00028 { 00029 // Kinematics is initialized only if the decay is above threshold 00030 00031 if(mAB > mA + mB) { 00032 00033 _kine = EvtTwoBodyKine(mA,mB,mAB); 00034 _p0 = _kine.p(); 00035 } 00036 }
|
|
00040 : _kine(other._kine), _LL(other._LL), _p0(other._p0), 00041 _f( (other._f) ? new EvtBlattWeisskopf(*other._f) : 0 ) 00042 {}
|
|
00045 { 00046 if(_f) delete _f; 00047 }
|
|
00078 { 00079 double ff = 1.; 00080 00081 if(_f) { 00082 00083 double p1 = x.p(); 00084 ff = (*_f)(p1); 00085 } 00086 00087 return ff; 00088 }
|
|
00034 { return _LL; }
|
|
|
|
|
|
|
|
00038 { return _p0; }
|
|
00070 { 00071 double p1 = x.p(i); 00072 double factor = pow(p1,_LL); 00073 return factor; 00074 }
|
|
00091 { 00092 os << " mA = " << mA() << endl; 00093 os << " mB = " << mB() << endl; 00094 os << "mAB = " << mAB() << endl; 00095 os << " L = " << _LL << endl; 00096 os << " p0 = " << _p0 << endl; 00097 }
|
|
00051 { 00052 if(_f) delete _f; 00053 _f = new EvtBlattWeisskopf(_LL,R,_p0); 00054 }
|
|
00058 { 00059 assert(_p0 > 0.); 00060 00061 double p1 = x.p(); 00062 double ff = formFactor(x); 00063 double factor = pow(p1/_p0,2*_LL+1)*pow(mAB()/x.mAB(),2) * ff * ff; //pingrg,2008-11-24, in EvtGen Manual Eq 66, (m0/m) should be squared 00064 00065 return factor; 00066 }
|
|
|
|
|
|
|
|
|