9#include <generators/evtgen/EvtGenModelRegister.h>
13#include "EvtGenBase/EvtRandom.hh"
14#include "EvtGenBase/EvtParticle.hh"
15#include "EvtGenBase/EvtGenKine.hh"
16#include "EvtGenBase/EvtPDL.hh"
17#include "EvtGenBase/EvtReport.hh"
18#include "EvtGenBase/EvtConst.hh"
19#include "EvtGenBase/EvtId.hh"
21#include "generators/evtgen/models/EvtFlatDaughter.h"
38 return "FLAT_DAUGHTER";
49 EvtVector4R p4KorKstar;
50 EvtVector4R p4norantin;
51 EvtVector4R p4antinorn;
54 p->makeDaughters(getNDaug(), getDaugs());
56 EvtParticle* KorKstar = p->getDaug(0);
57 EvtParticle* norantin = p->getDaug(1);
58 EvtParticle* antinorn = p->getDaug(2);
62 findMasses(p, getNDaug(), getDaugs(), mass);
64 double m_B = p->mass();
66 double m_norantin = mass[1];
67 double m_antinorn = mass[2];
69 double M_max = m_B - m_K;
70 double M_min = m_norantin + m_antinorn;
73 double Mnn = EvtRandom::Flat(M_min, M_max);
76 EvtVector4R p4Kdin[2];
82 EvtGenKine::PhaseSpace(2, mKdin, p4Kdin, m_B);
91 EvtGenKine::PhaseSpace(2, mnn, p4nn, Mnn);
94 p4norantin = boostTo(p4nn[0], p4Kdin[1]);
95 p4antinorn = boostTo(p4nn[1], p4Kdin[1]);
98 KorKstar->init(getDaug(0), p4Kdin[0]);
99 norantin->init(getDaug(1), p4norantin);
100 antinorn->init(getDaug(2), p4antinorn);
The evtgen model to produce flat invariant mass distribution for 2nd and 3rd daughters.
EvtFlatDaughter()
Constructor.
void init()
The function for an initialization.
EvtDecayBase * clone()
The function which makes a copy of the model.
void initProbMax()
The function to sets a maximum probability.
std::string getName()
The function which returns the name of the model.
#define B2_EVTGEN_REGISTER_MODEL(classname)
Class to register B2_EVTGEN_REGISTER_MODEL.
virtual ~EvtFlatDaughter()
Destructor.
void decay(EvtParticle *p)
The function to determine kinematics of daughter particles.
Abstract base class for different kinds of events.