|
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. 51 double m2 = v[0] * v[0] - v[1] * v[1] - v[2] * v[2] - v[3] * v[3]; 85 double sp = sin( phi ); 86 double st = sin( theta ); 87 double sk = sin( ksi ); 88 double cp = cos( phi ); 89 double ct = cos( theta ); 90 double ck = cos( ksi ); 92 double x = ( ck * ct * cp - sk * sp ) * v[1] + 93 ( -sk * ct * cp - ck * sp ) * v[2] + st * cp * v[3]; 94 double y = ( ck * ct * sp + sk * cp ) * v[1] + 95 ( -sk * ct * sp + ck * cp ) * v[2] + st * sp * v[3]; 96 double z = -ck * st * v[1] + sk * st * v[2] + ct * v[3]; 105 s << "(" << v. v[0] << "," << v. v[1] << "," << v. v[2] << "," << v. v[3] << ")"; 112 double e = p4. get( 0 ); 123 double bx, by, bz, gamma, b2; 129 double bxx = bx * bx; 130 double byy = by * by; 131 double bzz = bz * bz; 133 b2 = bxx + byy + bzz; 135 if ( b2 > 0.0 && b2 < 1.0 ) { 136 gamma = 1.0 / sqrt( 1.0 - b2 ); 138 double gb2 = ( gamma - 1.0 ) / b2; 140 double gb2xy = gb2 * bx * by; 141 double gb2xz = gb2 * bx * bz; 142 double gb2yz = gb2 * by * bz; 144 double gbx = gamma * bx; 145 double gby = gamma * by; 146 double gbz = gamma * bz; 154 v[0] = gamma * e2 - gbx * px2 - gby * py2 - gbz * pz2; 156 v[1] = -gbx * e2 + gb2 * bxx * px2 + px2 + gb2xy * py2 + gb2xz * pz2; 158 v[2] = -gby * e2 + gb2 * byy * py2 + py2 + gb2xy * px2 + gb2yz * pz2; 160 v[3] = -gbz * e2 + gb2 * bzz * pz2 + pz2 + gb2yz * py2 + gb2xz * px2; 162 v[0] = gamma * e2 + gbx * px2 + gby * py2 + gbz * pz2; 164 v[1] = gbx * e2 + gb2 * bxx * px2 + px2 + gb2xy * py2 + gb2xz * pz2; 166 v[2] = gby * e2 + gb2 * byy * py2 + py2 + gb2xy * px2 + gb2yz * pz2; 168 v[3] = gbz * e2 + gb2 * bzz * pz2 + pz2 + gb2yz * py2 + gb2xz * px2; 181 temp. v[1] = v[2] * p2. v[3] - v[3] * p2. v[2]; 182 temp. v[2] = v[3] * p2. v[1] - v[1] * p2. v[3]; 183 temp. v[3] = v[1] * p2. v[2] - v[2] * p2. v[1]; 194 temp = v[1] * v[1] + v[2] * v[2] + v[3] * v[3]; 208 temp = v[1] * p2. v[1]; 209 temp += v[2] * p2. v[2]; 210 temp += v[3] * p2. v[3]; 226 return -1.0 / mass() * ( l * p3 ); 233 return 1 / mass2() * ( ( *this ) * p1 ) * ( ( * this ) * p2 ) - p1 * p2; 246 return sqrt( mag2r3( p1 ) ); EvtTensor3C directProd(const EvtVector3C &c1, const EvtVector3C &c2)
void applyRotateEuler(double alpha, double beta, double gamma)
double dotr3(const EvtVector4R &p1, const EvtVector4R &p2) const
double magr3(const EvtVector4R &p1) const
double Square(double x) const
EvtTensor4C dual(const EvtTensor4C &t2)
EvtVector4R cross(const EvtVector4R &v2)
EvtVector4C cont2(const EvtVector4C &v4) const
ostream & operator<<(ostream &s, const EvtVector4R &v)
double mag2r3(const EvtVector4R &p1) const
EvtVector4R boostTo(const EvtVector4R &rs, const EvtVector4R &p4, bool inverse)
void applyBoostTo(const EvtVector4R &p4, bool inverse=false)
const EvtComplex & get(int) const
double scalartripler3(const EvtVector4R &p1, const EvtVector4R &p2, const EvtVector4R &p3) const
double real(const EvtComplex &c)
double dot(const EvtVector4R &v2) const
EvtVector4R rotateEuler(const EvtVector4R &rs, double alpha, double beta, double gamma)
|