65 double phase =
getArg( 1 );
115 std::string name1 = model1->
getName();
116 std::string name2 = model2->
getName();
118 if ( name1 !=
"PTO3P" ) {
120 <<
"D daughters of EvtBtoKD3P decay must decay via the \"PTO3P\" model"
122 <<
" but found to decay via " << name1.c_str() <<
" or "
123 << name2.c_str() <<
". Will terminate execution!" << endl;
132 for ( d = 0; d < 2; ++d ) {
133 if ( daugs1[d] != daugs2[d] ) {
137 if (
false == idMatch ) {
139 <<
"D daughters of EvtBtoKD3P decay must decay to the same final state"
141 <<
" particles in the same order (not CP-conjugate order),"
143 <<
" but they were found to decay to" << endl;
144 for ( d = 0; d < model1->
getNDaug(); ++d ) {
149 for ( d = 0; d < model1->
getNDaug(); ++d ) {
155 <<
". Will terminate execution!" << endl;
170 <<
"D daughters of EvtBtoKD3P decay should have only 1 decay modes, "
172 <<
" but a new decay mode was found after the first call" << endl
173 <<
" Will terminate execution!" << endl;
203 double comp = sqrt( pc.
evaluate( x ) );
208 if ( massTreeOK ==
false ) {
215 if ( v.size() != theD->
getNDaug() ) {
217 <<
"Number of daughters " << theD->
getNDaug() <<
" != "
218 <<
"Momentum vector size " << v.size() << endl
219 <<
" Terminating execution." << endl;
224 for (
unsigned int i = 0; i < theD->
getNDaug(); ++i ) {
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
void initProbMax() override
void decay(EvtParticle *p) override
std::string getName() const override
const EvtDecayBase * m_model1
EvtDecayBase * clone() const override
const EvtDecayBase * m_model2
void vertex(const EvtComplex &)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
double getArg(unsigned int j)
void setProbMax(double prbmx)
bool m_daugsDecayedByParentModel
EvtId getDaug(int i) const
double getProbMax(double prob)
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
const EvtId * getDaugs() const
static EvtDecayTable & getInstance()
EvtDecayBase * getDecayFunc(EvtParticle *p)
EvtComplex amplNonCP(const T &x)
static std::string name(EvtId i)
virtual void init(EvtId part_n, const EvtVector4R &p4)=0
double initializePhaseSpace(size_t numdaughter, const EvtId *daughters, bool forceResetMasses=false, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
const EvtVector4R & getP4() const
EvtParticle * getDaug(const int i)
void addTerm(double c, const EvtPdf< T > &pdf)
double evaluate(const T &p) const
std::vector< EvtVector4R > initDaughters(const EvtDalitzPoint &p) const override
std::string getName() const override