21#include "EvtGenBase/EvtPatches.hh"
25#include "EvtGenBase/EvtComplex.hh"
26#include "EvtGenBase/EvtVector4C.hh"
27#include "EvtGenBase/EvtTensor4C.hh"
81 double alpha,
double beta,
double gamma){
122 double bx,by,bz,gamma,b2;
143 gamma=1.0/sqrt(1-b2);
154 lambda[0][1]=gamma*bx;
155 lambda[1][0]=gamma*bx;
156 lambda[0][2]=gamma*by;
157 lambda[2][0]=gamma*by;
158 lambda[0][3]=gamma*bz;
159 lambda[3][0]=gamma*bz;
161 lambda[1][1]=1.0+(gamma-1.0)*bx*bx/b2;
162 lambda[2][2]=1.0+(gamma-1.0)*by*by/b2;
163 lambda[3][3]=1.0+(gamma-1.0)*bz*bz/b2;
165 lambda[1][2]=(gamma-1.0)*bx*by/b2;
166 lambda[2][1]=(gamma-1.0)*bx*by/b2;
168 lambda[1][3]=(gamma-1.0)*bx*bz/b2;
169 lambda[3][1]=(gamma-1.0)*bx*bz/b2;
171 lambda[3][2]=(gamma-1.0)*bz*by/b2;
172 lambda[2][3]=(gamma-1.0)*bz*by/b2;
178 tt[i][j]=tt[i][j]+lambda[j][k]*t[i][k];
187 t[i][j]=t[i][j]+lambda[i][k]*tt[k][j];
244 t[i][j]+=t2.
get(i,j);
256 t[i][j]-=t2.
get(i,j);
319 sum+=t1.t[i][j]*t2.t[i][j];
372 t[i][j]+=p1.
get(i)*p2.
get(j);
397 temp.
set(1,0,-temp.
get(0,1));
398 temp.
set(2,0,-temp.
get(0,2));
399 temp.
set(3,0,-temp.
get(0,3));
401 temp.
set(2,1,-temp.
get(1,2));
402 temp.
set(3,1,-temp.
get(1,3));
404 temp.
set(3,2,-temp.
get(2,3));
467 temp.
set(i,t[0][i]*v4.
get(0)-t[1][i]*v4.
get(1)
468 -t[2][i]*v4.
get(2)-t[3][i]*v4.
get(3));
480 temp.
set(i,t[i][0]*v4.
get(0)-t[i][1]*v4.
get(1)
481 -t[i][2]*v4.
get(2)-t[i][3]*v4.
get(3));
494 temp.
set(i,t[0][i]*v4.
get(0)-t[1][i]*v4.
get(1)
495 -t[2][i]*v4.
get(2)-t[3][i]*v4.
get(3));
508 temp.
set(i,t[i][0]*v4.
get(0)-t[i][1]*v4.
get(1)
509 -t[i][2]*v4.
get(2)-t[i][3]*v4.
get(3));
520 double sp,st,sk,cp,ct,ck;
539 lambda[1][1]= ck*ct*cp-sk*sp;
540 lambda[1][2]=-sk*ct*cp-ck*sp;
543 lambda[2][1]= ck*ct*sp+sk*cp;
544 lambda[2][2]=-sk*ct*sp+ck*cp;
559 tt[i][j]+=lambda[j][k]*t[i][k];
568 t[i][j]+=lambda[i][k]*tt[k][j];
double sin(const BesAngle a)
double cos(const BesAngle a)
EvtTensor4C dual(const EvtTensor4C &t2)
ostream & operator<<(ostream &s, const EvtTensor4C &t)
EvtComplex cont(const EvtTensor4C &t1, const EvtTensor4C &t2)
EvtTensor4C rotateEuler(const EvtTensor4C &rs, double alpha, double beta, double gamma)
EvtTensor4C cont22(const EvtTensor4C &t1, const EvtTensor4C &t2)
EvtTensor4C cont11(const EvtTensor4C &t1, const EvtTensor4C &t2)
EvtTensor4C boostTo(const EvtTensor4C &rs, const EvtVector4R p4)
EvtTensor4C operator*(const EvtTensor4C &t1, const EvtComplex &c)
EvtTensor4C conj(const EvtTensor4C &t2)
EvtTensor4C directProd(const EvtVector4C &c1, const EvtVector4C &c2)
void setdiag(double t00, double t11, double t22, double t33)
void set(int i, int j, const EvtComplex &c)
const EvtComplex & get(int i, int j) const
EvtTensor4C & operator=(const EvtTensor4C &t1)
EvtTensor4C & operator-=(const EvtTensor4C &t2)
EvtVector4C cont1(const EvtVector4C &v4) const
static const EvtTensor4C & g()
void applyBoostTo(const EvtVector4R &p4)
EvtTensor4C & addDirProd(const EvtVector4R &p1, const EvtVector4R &p2)
EvtTensor4C & operator*=(const EvtComplex &c)
EvtVector4C cont2(const EvtVector4C &v4) const
EvtTensor4C & operator+=(const EvtTensor4C &t2)
void applyRotateEuler(double alpha, double beta, double gamma)
friend EvtTensor4C conj(const EvtTensor4C &t2)
void set(int, const EvtComplex &)
const EvtComplex & get(int) const