#include <EvtFlatte.hh>
Public Member Functions | |
EvtFlatte & | operator= (const EvtFlatte &) |
EvtFlatte (const EvtVector4R &p4_p, const EvtVector4R &p4_d1, const EvtVector4R &p4_d2, double ampl, double theta, double mass, vector< EvtFlatteParam > ¶ms) | |
virtual | ~EvtFlatte () |
const EvtVector4R & | p4_p () |
const EvtVector4R & | p4_d1 () |
const EvtVector4R & | p4_d2 () |
double | amplitude () |
double | theta () |
double | mass () |
EvtComplex | resAmpl () |
Private Member Functions | |
EvtComplex | sqrtCplx (double in) |
Private Attributes | |
EvtVector4R | _p4_p |
EvtVector4R | _p4_d1 |
EvtVector4R | _p4_d2 |
double | _ampl |
double | _theta |
double | _mass |
vector< EvtFlatteParam > | _params |
Definition at line 48 of file EvtFlatte.hh.
EvtFlatte::EvtFlatte | ( | const EvtVector4R & | p4_p, | |
const EvtVector4R & | p4_d1, | |||
const EvtVector4R & | p4_d2, | |||
double | ampl, | |||
double | theta, | |||
double | mass, | |||
vector< EvtFlatteParam > & | params | |||
) |
EvtFlatte::~EvtFlatte | ( | ) | [virtual] |
double EvtFlatte::amplitude | ( | ) | [inline] |
double EvtFlatte::mass | ( | ) | [inline] |
Definition at line 81 of file EvtFlatte.hh.
References _mass.
Referenced by resAmpl().
00081 { return _mass; }
Definition at line 34 of file EvtFlatte.cc.
References _ampl, _mass, _p4_d1, _p4_d2, _p4_p, _params, and _theta.
00035 { 00036 if ( &n == this ) return *this; 00037 _p4_p = n._p4_p; 00038 _p4_d1 = n._p4_d1; 00039 _p4_d2 = n._p4_d2; 00040 _ampl = n._ampl; 00041 _theta = n._theta; 00042 _mass = n._mass; 00043 _params = n._params; 00044 // _m1a = n._m1a; 00045 // _m1b = n._m1b; 00046 // _g1 = n._g1; 00047 // _m2a = n._m2a; 00048 // _m2b = n._m2b; 00049 // _g2 = n._g2; 00050 return *this; 00051 }
const EvtVector4R& EvtFlatte::p4_d1 | ( | ) | [inline] |
const EvtVector4R& EvtFlatte::p4_d2 | ( | ) | [inline] |
const EvtVector4R& EvtFlatte::p4_p | ( | ) | [inline] |
EvtComplex EvtFlatte::resAmpl | ( | ) |
Definition at line 71 of file EvtFlatte.cc.
References _ampl, _mass, _p4_d1, _p4_d2, _params, _theta, cos(), mass(), EvtConst::radToDegrees, sin(), sqrtCplx(), and w.
Referenced by EvtDDalitz::decay().
00071 { 00072 00073 double pi180inv = 1.0/EvtConst::radToDegrees; 00074 00075 // EvtComplex ampl(cos(_theta*pi180inv), sin(_theta*pi180inv)); 00076 // ampl *= _ampl; 00077 00078 // SCALARS ONLY 00079 double mR = (_p4_d1+_p4_d2).mass(); 00080 00081 EvtComplex w; 00082 00083 for (vector<EvtFlatteParam>::const_iterator param = _params.begin(); 00084 param != _params.end(); 00085 ++param) { 00086 00087 double m1 = (*param).m1(); double m2 = (*param).m2(); 00088 double g = (*param).g(); 00089 w += (g*g 00090 *sqrtCplx((1-((m1-m2)*(m1-m2))/(mR*mR))* 00091 (1-((m1+m2)*(m1+m2))/(mR*mR)))); 00092 // cout << m1 << " " << mR << " " << w << endl; 00093 } 00094 00095 EvtComplex denom = _mass*_mass - mR*mR - EvtComplex(0,1)*w; 00096 EvtComplex ampl = _ampl*EvtComplex(cos(_theta*pi180inv), sin(_theta*pi180inv))/denom; 00097 // cout << abs(1/denom) << endl; 00098 return ampl; 00099 }
EvtComplex EvtFlatte::sqrtCplx | ( | double | in | ) | [inline, private] |
Definition at line 90 of file EvtFlatte.hh.
Referenced by resAmpl().
00090 { return (in > 0) ? EvtComplex(sqrt(in), 0) : EvtComplex 00091 (0, sqrt(-in)); }
double EvtFlatte::theta | ( | ) | [inline] |
double EvtFlatte::_ampl [private] |
double EvtFlatte::_mass [private] |
EvtVector4R EvtFlatte::_p4_d1 [private] |
EvtVector4R EvtFlatte::_p4_d2 [private] |
EvtVector4R EvtFlatte::_p4_p [private] |
vector<EvtFlatteParam> EvtFlatte::_params [private] |
double EvtFlatte::_theta [private] |