36 double mp2 = p.
mass2();
37 double mq2 =
q.mass2();
38 double md2 = d.
mass2();
41 ( pd * mq2 - pq * qd ) / sqrt( ( pq * pq - mq2 * mp2 ) * ( qd * qd - mq2 * md2 ) );
54 p4_d1p =
boostTo( p4_d1, p4_p );
55 p4_d2p =
boostTo( p4_d2, p4_p );
56 p4_h1p =
boostTo( p4_h1, p4_p );
57 p4_h2p =
boostTo( p4_h2, p4_p );
64 d1_perp = p4_d1p - ( D.
dot( p4_d1p ) / D.
dot( D ) ) * D;
65 h1_perp = p4_h1p - ( D.
dot( p4_h1p ) / D.
dot( D ) ) * D;
69 d1_prime = D.
cross( d1_perp );
71 d1_perp = d1_perp / d1_perp.
d3mag();
72 d1_prime = d1_prime / d1_prime.
d3mag();
76 x = d1_perp.
dot( h1_perp );
77 y = d1_prime.
dot( h1_perp );
79 double chi = atan2( y, x );
96 return q.mass() * ( p * l ) / sqrt( -( pq * pq - p.
mass2() *
q.mass2() ) * l.
mass2() );
102 double eq = ( p *
q ) / p.
mass();
103 double ed = ( p * d ) / p.
mass();
104 double mq =
q.mass();
106 double qd = p.
dotr3(
q, d );
107 double zq = p.
dotr3( z,
q );
108 double zd = p.
dotr3( z, d );
109 double alpha = ( eq - mq ) / ( q2 * mq ) * qd - ed / mq;
112 double x = ( zq * ( qd +
alpha * q2 ) - q2 * ( zd +
alpha * zq ) ) / sqrt( q2 );
114 double phi = atan2( y, x );
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
EvtComplex exp(const EvtComplex &c)
EvtDiracSpinor boostTo(const EvtDiracSpinor &sp, const EvtVector4R p4)
double EvtDecayPlaneNormalAngle(const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d1, const EvtVector4R &d2)
double EvtDecayAnglePhi(const EvtVector4R &z, const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d)
double EvtDecayAngle(const EvtVector4R &p, const EvtVector4R &q, const EvtVector4R &d)
EvtComplex wignerD(int j, int m1, int m2, double phi, double theta, double gamma)
double EvtDecayAngleChi(const EvtVector4R &p4_p, const EvtVector4R &p4_d1, const EvtVector4R &p4_d2, const EvtVector4R &p4_h1, const EvtVector4R &p4_h2)
EvtTensor4C dual(const EvtTensor4C &t2)
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
static const double twoPi
EvtVector4C cont2(const EvtVector4C &v4) const
const EvtComplex & get(int) const
double dot(const EvtVector4R &v2) const
EvtVector4R cross(const EvtVector4R &v2)
double dotr3(const EvtVector4R &p1, const EvtVector4R &p2) const
double scalartripler3(const EvtVector4R &p1, const EvtVector4R &p2, const EvtVector4R &p3) const
double mag2r3(const EvtVector4R &p1) const
static double d(int j, int m1, int m2, double theta)