9#include <generators/evtgen/EvtGenModelRegister.h>
11#include "EvtGenBase/EvtParticle.hh"
12#include "generators/evtgen/models/EvtEtaFullDalitz.h"
29 return "ETA_FULLDALITZ";
49 checkSpinParent(EvtSpinType::SCALAR);
51 checkSpinDaughter(0, EvtSpinType::SCALAR);
52 checkSpinDaughter(1, EvtSpinType::SCALAR);
53 checkSpinDaughter(2, EvtSpinType::SCALAR);
67 const double a = getArg(0);
68 const double b = getArg(1);
69 const double c = getArg(2);
70 const double d = getArg(3);
71 const double e = getArg(4);
72 const double f = getArg(5);
74 p->initializePhaseSpace(getNDaug(), getDaugs());
76 EvtVector4R mompip = p->getDaug(0)->getP4();
77 EvtVector4R mompim = p->getDaug(1)->getP4();
78 EvtVector4R mompi0 = p->getDaug(2)->getP4();
80 double m_eta = p->mass();
81 double m_pip = p->getDaug(0)->mass();
82 double m_pi0 = p->getDaug(2)->mass();
85 double deltaM = m_eta - 2 * m_pip - m_pi0;
90 double Tpip = (mompip.get(0) - m_pip);
91 double Tpim = (mompim.get(0) - m_pip);
92 double Tpi0 = (mompi0.get(0) - m_pip);
95 double X =
sqrt(3.) * (Tpip - Tpim) / deltaM;
96 double Y = 3.*Tpi0 / deltaM - 1. ;
98 double amp2 = 1. + a * Y + b * Y * Y + c * X + d * X * X + e * X * Y + f * Y * Y * Y;
100 EvtComplex amp(
sqrt(amp2), 0.0);
Class for the simulation of the eta -> pi+pi-pi0 decay with an improved dalitz description.
EvtEtaFullDalitz()
Default Constructor.
void init()
Checks that the number of input parameters are correct:
EvtDecayBase * clone()
Makes a copy of the pointer to the class.
virtual ~EvtEtaFullDalitz()
Default Destructor.
void initProbMax()
Sets the Maximum probability for the PHSP reweight.
std::string getName()
Returns the model name: ETA_FULLDALITZ.
#define B2_EVTGEN_REGISTER_MODEL(classname)
Class to register B2_EVTGEN_REGISTER_MODEL.
double sqrt(double a)
sqrt for double
void decay(EvtParticle *p)
Function that implements the energy-dependent Dalitz.
Abstract base class for different kinds of events.