|
EvtGen
2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
|
Go to the documentation of this file. 38 return "YMSTOYNSPIPICLEO"; 62 << "EvtYmSToYnSpipiCLEO generator expected " 63 << " pi+ and pi- (or pi0 and pi0) " 64 << "as 2nd and 3rd daughter. " << endl; 66 << "Will terminate execution!" << endl; 88 double ReB_over_A = getArg( 0 ); 89 double ImB_over_A = getArg( 1 ); 109 bool acceptX = false; 111 while ( false == acceptX ) { 136 masses[0] = s1-> mass(); 137 masses[1] = s2-> mass(); 146 double costheta = -p4[0]. dot( P_YmS_X ) / 147 ( p4[0]. d3mag() * P_YmS_X.d3mag() ); 149 if ( costheta < 0 ) { 150 costheta = -p4[1]. dot( P_YmS_X ) / 151 ( p4[1]. d3mag() * P_YmS_X.d3mag() ); 155 costheta = -p4[1]. dot( P_YmS_X ) / 156 ( p4[1]. d3mag() * P_YmS_X.d3mag() ); 162 P_pi1 = boostTo( p4[0], P_YmS_X ); 163 P_pi2 = boostTo( p4[1], P_YmS_X ); 181 double Q = ( mX * mX - 2.0 * m_pi * m_pi ); 183 double deltaEmax = -2.0 * 184 sqrt( P_nS. get( 0 ) * P_nS. get( 0 ) - M_nS * M_nS ) * 185 sqrt( 0.25 - pow( m_pi / mX, 2.0 ) ); 187 double sumE = ( M_mS * M_mS - M_nS * M_nS + mX * mX ) / ( 2.0 * M_mS ); 190 ( pow( sumE, 2.0 ) - pow( deltaEmax * costheta, 2.0 ) ); 193 ( pow( ReB_over_A, 2.0 ) + pow( ImB_over_A, 2.0 ) ) * E1E2 * 195 2.0 * ReB_over_A * Q * E1E2; 205 double dPS = sqrt( ( M_mS * M_mS - pow( M_nS + mX, 2.0 ) ) * 206 ( M_mS * M_mS - pow( M_nS - mX, 2.0 ) ) ) * 207 sqrt( mX * mX - 4 * m_pi * m_pi ); 210 double dG = M2 * dPS;
static std::string name(EvtId i)
double getProbMax(double prob)
virtual EvtVector4C eps(int i) const
void decay(EvtParticle *p) override
double getArg(unsigned int j)
EvtDecayBase * clone() override
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=0)
virtual void init(EvtId part_n, const EvtVector4R &p4)=0
void initProbMax() override
void makeDaughters(unsigned int ndaug, EvtId *id)
EvtRaritaSchwinger boostTo(const EvtRaritaSchwinger &rs, const EvtVector4R p4)
void setProbMax(double prbmx)
void vertex(const EvtComplex &)
virtual EvtVector4C epsParent(int i) const
void checkNDaug(int d1, int d2=-1)
void checkSpinParent(EvtSpinType::spintype sp)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
std::string getName() override
static EvtId getId(const std::string &name)
const EvtVector4R & getP4() const
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
static double PhaseSpace(int ndaug, double mass[30], EvtVector4R p4[30], double mp)
EvtParticle * getDaug(int i)
double dot(const EvtVector4R &v2) const
EvtId getDaug(int i) const
|