43 return "FLATSQDALITZ";
78 const double mParent = p->
mass();
82 const double mDaug1 = daug1->
mass();
83 const double mDaug2 = daug2->
mass();
84 const double mDaug3 = daug3->
mass();
85 const double mParentSq = mParent * mParent;
86 const double mDaug1Sq = mDaug1 * mDaug1;
87 const double mDaug2Sq = mDaug2 * mDaug2;
88 const double mDaug3Sq = mDaug3 * mDaug3;
95 const double m12 = 0.5 * ( std::cos( mPrime *
EvtConst::pi ) + 1 ) *
96 ( mParent - ( mDaug1 + mDaug2 + mDaug3 ) ) +
98 const double m12Sq = m12 * m12;
100 const double en1 = ( m12Sq - mDaug2Sq + mDaug1Sq ) / ( 2. * m12 );
101 const double en3 = ( mParentSq - m12Sq - mDaug3Sq ) / ( 2. * m12 );
103 const double p1 = std::sqrt( en1 * en1 - mDaug1Sq );
104 const double p3 = std::sqrt( en3 * en3 - mDaug3Sq );
106 mDaug1Sq + mDaug3Sq +
107 2.0 * ( en1 * en3 - p1 * p3 * std::cos(
EvtConst::pi * thetaPrime ) );
108 const double m23Sq = mParentSq - m12Sq - m13Sq + mDaug1Sq + mDaug2Sq +
void initProbMax() override
double getArg(unsigned int j)
std::string getName() override
EvtDecayBase * clone() override
void makeDaughters(unsigned int ndaug, EvtId *id)
void checkNDaug(int d1, int d2=-1)
static void ThreeBodyKine(const double m12Sq, const double m23Sq, EvtParticle *p)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
EvtParticle * getDaug(int i)
void decay(EvtParticle *p) override