1#include "EvtGenBase/EvtPatches.hh"
14#include "EvtGenBase/EvtComplex.hh"
15#include "EvtGenBase/EvtPto3PAmp.hh"
16#include "EvtGenBase/EvtDalitzCoord.hh"
17#include "EvtGenBase/EvtdFunction.hh"
18#include "EvtGenBase/EvtCyclic3.hh"
28 _pairAng(pairAng), _pairRes(pairRes),
41 _pairAng(other._pairAng),
42 _pairRes(other._pairRes),
45 _prop( (other._prop) ? (
EvtPropagator*) other._prop->clone() : 0),
47 _vb(other._vb), _vd(other._vd)
53 if(_prop)
delete _prop;
72 double m = sqrt(
x.q(_pairRes));
103 double m = sqrt(
x.q(_pairRes));
152 Index iA = other(_pairAng);
153 Index iB = common(_pairRes,_pairAng);
154 Index iC = other(_pairRes);
160 double qAB =
x.q(combine(iA,iB));
161 double qBC =
x.q(combine(iB,iC));
162 double qCA =
x.q(combine(iC,iA));
164 double m0 = _prop->
m0();
170 ret = qBC - qCA + (M*M - mC*mC)*(mA*mA - mB*mB)/m0/m0;;
175 double x1 = qBC - qCA + (M*M - mC*mC)*(mA*mA - mB*mB)/m0/m0;
176 double x2 = M*M - mC*mC;
177 double x3 = qAB - 2*M*M - 2*mC*mC + x2*x2/m0/m0;
178 double x4 = mB*mB - mA*mA;
179 double x5 = qAB - 2*mB*mB - 2*mA*mA + x4*x4/m0/m0;
180 ret = (x1*x1 - 1./3.*x3*x5);
194 double cosTh =
x.cosTh(_pairAng,_pairRes);
195 if(fabs(cosTh) > 1.) {
197 report(
INFO,
"EvtGen") <<
"cosTh " << cosTh << endl;
ostream & report(Severity severity, const char *facility)
EvtComplex evaluate(const T &p) const
double angDep(const EvtDalitzPoint &p) const
EvtComplex numerator(const EvtDalitzPoint &p) const
virtual EvtComplex amplitude(const EvtDalitzPoint &p) const
EvtPto3PAmp(EvtDalitzPlot dp, EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes, EvtSpinType::spintype spin, const EvtPropagator &prop, NumType typeN)
static int getSpin2(spintype stype)
double formFactor(EvtTwoBodyKine x) const
double widthFactor(EvtTwoBodyKine x) const
double phaseSpaceFactor(EvtTwoBodyKine x, EvtTwoBodyKine::Index) const
static double d(int j, int m1, int m2, double theta)
Index other(Index i, Index j)