21#include "EvtGenBase/EvtPatches.hh"
25#include "EvtGenBase/EvtComplex.hh"
26#include "EvtGenBase/EvtVector4R.hh"
27#include "EvtGenBase/EvtTensor4C.hh"
28#include "EvtGenBase/EvtVector4C.hh"
29#include "EvtGenBase/EvtTensorParticle.hh"
30#include "EvtGenBase/EvtReport.hh"
50 eps[0].
setdiag(0.0,-1.0/sqrt(6.0),-1.0/sqrt(6.0),
52 eps[1].
setdiag(0.0,1.0/sqrt(2.0),-1.0/sqrt(2.0),0.0);
53 eps[2].
setdiag(0.0,0.0,0.0,0.0);
54 eps[3].
setdiag(0.0,0.0,0.0,0.0);
55 eps[4].
setdiag(0.0,0.0,0.0,0.0);
105 static EvtTensor4C es2(
conj((1/sqrt(6.0))*dPpm +(2/sqrt(6.0))*dP00 +(1/sqrt(6.0))*dPmp));
113 for (
int j=0; j<5; j++) {
114 R.Set(0,j,
cont(es0,eps[j]));
115 R.Set(1,j,
cont(es1,eps[j]));
116 R.Set(2,j,
cont(es2,eps[j]));
117 R.Set(3,j,
cont(es3,eps[j]));
118 R.Set(4,j,
cont(es4,eps[j]));
135 eplus.applyRotateEuler(
alpha,beta,gamma);
136 ezero.applyRotateEuler(
alpha,beta,gamma);
137 eminus.applyRotateEuler(
alpha,beta,gamma);
139 for (
int i=0; i<5; i++) es[i].
zero();
151 for (
int i=0; i<5; i++) es[i]=
conj(es[i]);
156 for (
int i=0; i<5; i++)
157 for (
int j=0; j<5; j++)
158 R.Set(i,j,
cont(es[i],eps[j]));
Evt3Rank3C conj(const Evt3Rank3C &t2)
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
EvtComplex cont(const EvtTensor4C &t1, const EvtTensor4C &t2)
const EvtVector4R & getP4() const
void setp(double e, double px, double py, double pz)
void setpart_num(EvtId particle_number)
void setdiag(double t00, double t11, double t22, double t33)
void set(int i, int j, const EvtComplex &c)
void applyBoostTo(const EvtVector4R &p4)
EvtTensor4C epsTensorParent(int i) const
EvtTensor4C epsTensor(int i) const
virtual ~EvtTensorParticle()
void init(EvtId part_n, double e, double px, double py, double pz)
EvtSpinDensity rotateToHelicityBasis() const
complex_t R(double Q2, double M2, double G, double Mp2, double Mm2)