|
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. 39 double mp2 = p. mass2(); 40 double mq2 = q.mass2(); 41 double md2 = d.mass2(); 43 double cost = ( pd * mq2 - pq * qd ) / 44 std::sqrt( ( pq * pq - mq2 * mp2 ) * ( qd * qd - mq2 * md2 ) ); 58 p4_d1p = boostTo( p4_d1, p4_p, true ); 59 p4_d2p = boostTo( p4_d2, p4_p, true ); 60 p4_h1p = boostTo( p4_h1, p4_p, true ); 61 p4_h2p = boostTo( p4_h2, p4_p, true ); 68 d1_perp = p4_d1p - ( D. dot( p4_d1p ) / D. dot( D ) ) * D; 69 h1_perp = p4_h1p - ( D. dot( p4_h1p ) / D. dot( D ) ) * D; 73 d1_prime = D. cross( d1_perp ); 75 d1_perp = d1_perp / d1_perp. d3mag(); 76 d1_prime = d1_prime / d1_prime.d3mag(); 80 x = d1_perp. dot( h1_perp ); 81 y = d1_prime.dot( h1_perp ); 83 double chi = std::atan2( y, x ); 101 return q. mass() * ( p * l ) / 102 std::sqrt( -( pq * pq - p. mass2() * q.mass2() ) * l. mass2() ); 109 double eq = ( p * q ) / p. mass(); 110 double ed = ( p * d ) / p. mass(); 111 double mq = q. mass(); 112 double q2 = p. mag2r3( q ); 113 double qd = p. dotr3( q, d ); 114 double zq = p. dotr3( z, q ); 115 double zd = p. dotr3( z, d ); 116 double alpha = ( eq - mq ) / ( q2 * mq ) * qd - ed / mq; 119 double x = ( zq * ( qd + alpha * q2 ) - q2 * ( zd + alpha * zq ) ) / 122 double phi = std::atan2( y, x ); 137 const double MSq = M * M; 138 const double mSum = m1 + m2; 139 const double mDiff = m1 - m2; 140 double result = ( MSq - mDiff * mDiff ) * ( MSq - mSum * mSum ); 144 return std::sqrt( result ) / ( 2 * M ); EvtTensor3C directProd(const EvtVector3C &c1, const EvtVector3C &c2)
double dotr3(const EvtVector4R &p1, const EvtVector4R &p2) const
EvtTensor4C dual(const EvtTensor4C &t2)
EvtVector4R cross(const EvtVector4R &v2)
EvtVector4C cont2(const EvtVector4C &v4) const
static const double twoPi
EvtComplex wignerD(int j, int m1, int m2, double phi, double theta, double gamma)
double mag2r3(const EvtVector4R &p1) const
EvtRaritaSchwinger boostTo(const EvtRaritaSchwinger &rs, const EvtVector4R p4)
double EvtDecayAngleChi(const EvtVector4R &p4_p, const EvtVector4R &p4_d1, const EvtVector4R &p4_d2, const EvtVector4R &p4_h1, const EvtVector4R &p4_h2)
EvtComplex exp(const EvtComplex &c)
double twoBodyMomentum(const double M, const double m1, const double m2)
const EvtComplex & get(int) const
double EvtDecayAnglePhi(const EvtVector4R &z, const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d)
static double d(int j, int m1, int m2, double theta)
double scalartripler3(const EvtVector4R &p1, const EvtVector4R &p2, const EvtVector4R &p3) const
double EvtDecayPlaneNormalAngle(const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d1, const EvtVector4R &d2)
double real(const EvtComplex &c)
double EvtDecayAngle(const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d)
double dot(const EvtVector4R &v2) const
|