|
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. 37 for ( i = 0; i < 4; i++ ) { 38 for ( j = 0; j < 4; j++ ) { 46 static EvtTensor4C g_metric( 1.0, -1.0, -1.0, -1.0 ); 55 for ( i = 0; i < 4; i++ ) { 56 for ( j = 0; j < 4; j++ ) { 69 for ( i = 0; i < 4; i++ ) { 70 for ( j = 0; j < 4; j++ ) { 101 double e = p4. get( 0 ); 112 double bx, by, bz, gamma, b2; 120 double bxx = bx * bx; 121 double byy = by * by; 122 double bzz = bz * bz; 124 b2 = bxx + byy + bzz; 132 gamma = 1.0 / sqrt( 1 - b2 ); 141 lambda[0][1] = gamma * bx; 142 lambda[1][0] = gamma * bx; 143 lambda[0][2] = gamma * by; 144 lambda[2][0] = gamma * by; 145 lambda[0][3] = gamma * bz; 146 lambda[3][0] = gamma * bz; 148 lambda[1][1] = 1.0 + ( gamma - 1.0 ) * bx * bx / b2; 149 lambda[2][2] = 1.0 + ( gamma - 1.0 ) * by * by / b2; 150 lambda[3][3] = 1.0 + ( gamma - 1.0 ) * bz * bz / b2; 152 lambda[1][2] = ( gamma - 1.0 ) * bx * by / b2; 153 lambda[2][1] = ( gamma - 1.0 ) * bx * by / b2; 155 lambda[1][3] = ( gamma - 1.0 ) * bx * bz / b2; 156 lambda[3][1] = ( gamma - 1.0 ) * bx * bz / b2; 158 lambda[3][2] = ( gamma - 1.0 ) * bz * by / b2; 159 lambda[2][3] = ( gamma - 1.0 ) * bz * by / b2; 161 for ( i = 0; i < 4; i++ ) { 162 for ( j = 0; j < 4; j++ ) { 164 for ( k = 0; k < 4; k++ ) { 165 tt[i][j] = tt[i][j] + lambda[j][k] * t[i][k]; 170 for ( i = 0; i < 4; i++ ) { 171 for ( j = 0; j < 4; j++ ) { 173 for ( k = 0; k < 4; k++ ) { 174 t[i][j] = t[i][j] + lambda[i][k] * tt[k][j]; 183 for ( i = 0; i < 4; i++ ) { 184 for ( j = 0; j < 4; j++ ) { 194 for ( i = 0; i < 4; i++ ) { 195 for ( j = 0; j < 4; j++ ) { 227 for ( i = 0; i < 4; i++ ) { 228 for ( j = 0; j < 4; j++ ) { 229 t[i][j] += t2. get( i, j ); 239 for ( i = 0; i < 4; i++ ) { 240 for ( j = 0; j < 4; j++ ) { 241 t[i][j] -= t2. get( i, j ); 251 for ( i = 0; i < 4; i++ ) { 252 for ( j = 0; j < 4; j++ ) { 273 for ( i = 0; i < 4; i++ ) { 274 for ( j = 0; j < 4; j++ ) { 296 for ( i = 0; i < 4; i++ ) { 297 for ( j = 0; j < 4; j++ ) { 298 if ( ( i == 0 && j != 0 ) || ( j == 0 && i != 0 ) ) { 299 sum -= t1. t[i][j] * t2. t[i][j]; 301 sum += t1. t[i][j] * t2. t[i][j]; 315 for ( i = 0; i < 4; i++ ) { 316 for ( j = 0; j < 4; j++ ) { 317 temp. set( i, j, c1. get( i ) * c2. get( j ) ); 329 for ( i = 0; i < 4; i++ ) { 330 for ( j = 0; j < 4; j++ ) { 331 temp. set( i, j, c1. get( i ) * c2. get( j ) ); 343 for ( i = 0; i < 4; i++ ) { 344 for ( j = 0; j < 4; j++ ) { 356 for ( i = 0; i < 4; i++ ) { 357 for ( j = 0; j < 4; j++ ) { 358 t[i][j] += p1. get( i ) * p2. get( j ); 373 temp. set( 0, 1, t2. get( 3, 2 ) - t2. get( 2, 3 ) ); 374 temp. set( 0, 2, -t2. get( 3, 1 ) + t2. get( 1, 3 ) ); 375 temp. set( 0, 3, t2. get( 2, 1 ) - t2. get( 1, 2 ) ); 377 temp. set( 1, 2, -t2. get( 3, 0 ) + t2. get( 0, 3 ) ); 378 temp. set( 1, 3, t2. get( 2, 0 ) - t2. get( 0, 2 ) ); 380 temp. set( 2, 3, -t2. get( 1, 0 ) + t2. get( 0, 1 ) ); 382 temp. set( 1, 0, -temp. get( 0, 1 ) ); 383 temp. set( 2, 0, -temp. get( 0, 2 ) ); 384 temp. set( 3, 0, -temp. get( 0, 3 ) ); 386 temp. set( 2, 1, -temp. get( 1, 2 ) ); 387 temp. set( 3, 1, -temp. get( 1, 3 ) ); 389 temp. set( 3, 2, -temp. get( 2, 3 ) ); 400 for ( i = 0; i < 4; i++ ) { 401 for ( j = 0; j < 4; j++ ) { 402 temp. set( i, j, :: conj( ( t2. get( i, j ) ) ) ); 416 for ( i = 0; i < 4; i++ ) { 417 for ( j = 0; j < 4; j++ ) { 418 c = t1. get( i, 0 ) * t2. get( j, 0 ) - 419 t1. get( i, 1 ) * t2. get( j, 1 ) - 420 t1. get( i, 2 ) * t2. get( j, 2 ) - t1. get( i, 3 ) * t2. get( j, 3 ); 435 for ( i = 0; i < 4; i++ ) { 436 for ( j = 0; j < 4; j++ ) { 437 c = t1. get( 0, i ) * t2. get( 0, j ) - 438 t1. get( 1, i ) * t2. get( 1, j ) - 439 t1. get( 2, i ) * t2. get( 2, j ) - t1. get( 3, i ) * t2. get( 3, j ); 453 for ( i = 0; i < 4; i++ ) { 454 temp. set( i, t[0][i] * v4. get( 0 ) - t[1][i] * v4. get( 1 ) - 455 t[2][i] * v4. get( 2 ) - t[3][i] * v4. get( 3 ) ); 467 for ( i = 0; i < 4; i++ ) { 468 temp. set( i, t[i][0] * v4. get( 0 ) - t[i][1] * v4. get( 1 ) - 469 t[i][2] * v4. get( 2 ) - t[i][3] * v4. get( 3 ) ); 481 for ( i = 0; i < 4; i++ ) { 482 temp. set( i, t[0][i] * v4. get( 0 ) - t[1][i] * v4. get( 1 ) - 483 t[2][i] * v4. get( 2 ) - t[3][i] * v4. get( 3 ) ); 495 for ( i = 0; i < 4; i++ ) { 496 temp. set( i, t[i][0] * v4. get( 0 ) - t[i][1] * v4. get( 1 ) - 497 t[i][2] * v4. get( 2 ) - t[i][3] * v4. get( 3 ) ); 506 double sp, st, sk, cp, ct, ck; 524 lambda[1][1] = ck * ct * cp - sk * sp; 525 lambda[1][2] = -sk * ct * cp - ck * sp; 528 lambda[2][1] = ck * ct * sp + sk * cp; 529 lambda[2][2] = -sk * ct * sp + ck * cp; 538 for ( i = 0; i < 4; i++ ) { 539 for ( j = 0; j < 4; j++ ) { 541 for ( k = 0; k < 4; k++ ) { 542 tt[i][j] += lambda[j][k] * t[i][k]; 547 for ( i = 0; i < 4; i++ ) { 548 for ( j = 0; j < 4; j++ ) { 550 for ( k = 0; k < 4; k++ ) { 551 t[i][j] += lambda[i][k] * tt[k][j]; EvtTensor3C directProd(const EvtVector3C &c1, const EvtVector3C &c2)
EvtTensor4C cont11(const EvtTensor4C &t1, const EvtTensor4C &t2)
void set(int i, int j, const EvtComplex &c)
EvtTensor4C & operator *=(const EvtComplex &c)
EvtTensor4C rotateEuler(const EvtTensor4C &rs, double alpha, double beta, double gamma)
void setdiag(double t00, double t11, double t22, double t33)
static const EvtTensor4C & g()
void set(int, const EvtComplex &)
EvtTensor4C dual(const EvtTensor4C &t2)
void applyBoostTo(const EvtVector4R &p4)
EvtComplex cont(const EvtTensor4C &t1, const EvtTensor4C &t2)
EvtVector4C cont2(const EvtVector4C &v4) const
EvtVector4C cont1(const EvtVector4C &v4) const
void applyRotateEuler(double alpha, double beta, double gamma)
EvtTensor4C & operator-=(const EvtTensor4C &t2)
ostream & operator<<(ostream &s, const EvtTensor4C &t)
EvtTensor4C boostTo(const EvtTensor4C &rs, const EvtVector4R p4)
double lambda(double q, double m1, double m2)
EvtTensor4C & operator=(const EvtTensor4C &t1)
const EvtComplex & get(int) const
EvtTensor4C operator *(const EvtTensor4C &t1, const EvtComplex &c)
EvtTensor4C cont22(const EvtTensor4C &t1, const EvtTensor4C &t2)
EvtTensor4C & operator+=(const EvtTensor4C &t2)
EvtTensor4C conj(const EvtTensor4C &t2)
const EvtComplex & get(int i, int j) const
EvtTensor4C & addDirProd(const EvtVector4R &p1, const EvtVector4R &p2)
|