#include <EvtFlatte.hh>
Public Member Functions | |
double | amplitude () |
EvtFlatte (const EvtVector4R &p4_p, const EvtVector4R &p4_d1, const EvtVector4R &p4_d2, double ampl, double theta, double mass, vector< EvtFlatteParam > ¶ms) | |
double | mass () |
EvtFlatte & | operator= (const EvtFlatte &) |
const EvtVector4R & | p4_d1 () |
const EvtVector4R & | p4_d2 () |
const EvtVector4R & | p4_p () |
EvtComplex | resAmpl () |
double | theta () |
virtual | ~EvtFlatte () |
Private Member Functions | |
EvtComplex | sqrtCplx (double in) |
Private Attributes | |
double | _ampl |
double | _mass |
EvtVector4R | _p4_d1 |
EvtVector4R | _p4_d2 |
EvtVector4R | _p4_p |
vector< EvtFlatteParam > | _params |
double | _theta |
|
00061 : 00062 _p4_p(p4_p),_p4_d1(p4_d1), _p4_d2(p4_d2), _ampl(ampl), _theta(theta), 00063 _mass(mass), 00064 _params(params) 00065 // _m1a(m1a), _m1b(m1b), _g1(g1), 00066 // _m2a(m2a), _m2b(m2b), _g2(g2) 00067 {}
|
|
00030 {}
|
|
00075 { return _ampl; }
|
|
00081 { return _mass; }
|
|
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 }
|
|
00070 { return _p4_d1; }
|
|
00071 { return _p4_d2; }
|
|
00069 { return _p4_p; }
|
|
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 }
|
|
00090 { return (in > 0) ? EvtComplex(sqrt(in), 0) : EvtComplex 00091 (0, sqrt(-in)); }
|
|
00078 { return _theta; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|