18 #include <generators/evtgen/EvtGenModelRegister.h>
20 #include "EvtGenBase/EvtParticle.hh"
21 #include "generators/evtgen/models/EvtEtaFullDalitz.h"
38 return "ETA_FULLDALITZ";
58 checkSpinParent(EvtSpinType::SCALAR);
60 checkSpinDaughter(0, EvtSpinType::SCALAR);
61 checkSpinDaughter(1, EvtSpinType::SCALAR);
62 checkSpinDaughter(2, EvtSpinType::SCALAR);
76 const double a = getArg(0);
77 const double b = getArg(1);
78 const double c = getArg(2);
79 const double d = getArg(3);
80 const double e = getArg(4);
81 const double f = getArg(5);
83 p->initializePhaseSpace(getNDaug(), getDaugs());
85 EvtVector4R mompip = p->getDaug(0)->getP4();
86 EvtVector4R mompim = p->getDaug(1)->getP4();
87 EvtVector4R mompi0 = p->getDaug(2)->getP4();
89 double m_eta = p->mass();
90 double m_pip = p->getDaug(0)->mass();
91 double m_pi0 = p->getDaug(2)->mass();
94 double deltaM = m_eta - 2 * m_pip - m_pi0;
99 double Tpip = (mompip.get(0) - m_pip);
100 double Tpim = (mompim.get(0) - m_pip);
101 double Tpi0 = (mompi0.get(0) - m_pip);
104 double X = sqrt(3.) * (Tpip - Tpim) / deltaM;
105 double Y = 3.*Tpi0 / deltaM - 1. ;
107 double amp2 = 1. + a * Y + b * Y * Y + c * X + d * X * X + e * X * Y + f * Y * Y * Y;
109 EvtComplex amp(sqrt(amp2), 0.0);