43 double cost=(pd*mq2-pq*qd)/sqrt((pq*pq-mq2*mp2)*(qd*qd-mq2*md2));
69 d1_perp=p4_d1p-(D.
dot(p4_d1p)/D.
dot(D))*D;
70 h1_perp=p4_h1p-(D.
dot(p4_h1p)/D.
dot(D))*D;
74 d1_prime=D.
cross(d1_perp);
76 d1_perp= d1_perp/d1_perp.
d3mag();
77 d1_prime= d1_prime/d1_prime.
d3mag();
81 x=d1_perp.
dot(h1_perp);
82 y=d1_prime.
dot(h1_perp);
84 double chi=atan2(y,
x);
114 double eq = (p *
q) / p.
mass();
115 double ed = (p * d) / p.
mass();
116 double mq =
q.mass();
120 double zd = p.
dotr3(z,d);
121 double alpha = (eq - mq)/(q2 * mq) * qd - ed/mq;
124 double x = (zq * (qd +
alpha * q2) - q2 * (zd +
alpha * zq)) / sqrt(q2);
126 double phi = atan2(y,
x);
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
double real(const EvtComplex &c)
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)