21#include "EvtGenBase/EvtPatches.hh"
25#include "EvtGenBase/EvtComplex.hh"
26#include "EvtGenBase/EvtRaritaSchwingerParticle.hh"
27#include "EvtGenBase/EvtDiracSpinor.hh"
28#include "EvtGenBase/EvtVector4R.hh"
29#include "EvtGenBase/EvtPDL.hh"
30#include "EvtGenBase/EvtReport.hh"
31#include "EvtGenBase/EvtSpinDensity.hh"
51 report(
ERROR,
"EvtGen") <<
"Error in EvtRaritaSchwingerParticle::init, part_n="
72 _spinorRest[0]=
dirProd(e3,u1+u2);
77 _spinor[0]=
boostTo(_spinorRest[0],p4);
78 _spinor[1]=
boostTo(_spinorRest[1],p4);
79 _spinor[2]=
boostTo(_spinorRest[2],p4);
80 _spinor[3]=
boostTo(_spinorRest[3],p4);
94 _spinorRest[0]=
dirProd(e3,(u1+u2));
99 _spinor[0]=
boostTo(_spinorRest[0],p4);
100 _spinor[1]=
boostTo(_spinorRest[1],p4);
101 _spinor[2]=
boostTo(_spinorRest[2],p4);
102 _spinor[3]=
boostTo(_spinorRest[3],p4);
118 return _spinorRest[i];
126 double sqmt2=sqrt(2.0*(this->
getP4().
mass()));
132 spplus.
set(1.0,0.0,0.0,0.0);
133 spminus.
set(0.0,1.0,0.0,0.0);
135 spplus.
set(0.0,0.0,1.0,0.0);
136 spminus.
set(0.0,0.0,0.0,1.0);
145 dirProd(sqrt(1.0/3.0)*eplus,spminus);
147 dirProd(sqrt(1.0/3.0)*eminus,spplus);
156 for (
int i=0; i<4; i++) {
157 R.Set(0,i,(sppp*_spinorRest[i])/sqmt2);
158 R.Set(1,i,(spp*_spinorRest[i])/sqmt2);
159 R.Set(2,i,(spm*_spinorRest[i])/sqmt2);
160 R.Set(3,i,(spmm*_spinorRest[i])/sqmt2);
176 spplus.
set(1.0,0.0,0.0,0.0);
177 spminus.
set(0.0,1.0,0.0,0.0);
179 spplus.
set(0.0,0.0,1.0,0.0);
180 spminus.
set(0.0,0.0,0.0,1.0);
189 dirProd(sqrt(1.0/3.0)*eplus,spminus);
191 dirProd(sqrt(1.0/3.0)*eminus,spplus);
203 double sqmt2=sqrt(2.0*(this->
getP4().
mass()));
205 for (
int i=0; i<4; i++) {
206 R.Set(0,i,(sppp*_spinorRest[i])/sqmt2);
207 R.Set(1,i,(spp*_spinorRest[i])/sqmt2);
208 R.Set(2,i,(spm*_spinorRest[i])/sqmt2);
209 R.Set(3,i,(spmm*_spinorRest[i])/sqmt2);
EvtDiracSpinor boostTo(const EvtDiracSpinor &sp, const EvtVector4R p4)
EvtRaritaSchwinger dirProd(EvtVector4R v, EvtDiracSpinor u)
ostream & report(Severity severity, const char *facility)
void set(const EvtComplex &sp0, const EvtComplex &sp1, const EvtComplex &sp2, const EvtComplex &sp3)
static int getStdHep(EvtId id)
const EvtVector4R & getP4() const
void setp(double e, double px, double py, double pz)
void setpart_num(EvtId particle_number)
EvtRaritaSchwinger spRS(int) const
EvtRaritaSchwinger spRSParent(int) const
void init(EvtId id, const EvtVector4R &p4)
EvtSpinDensity rotateToHelicityBasis() const
virtual ~EvtRaritaSchwingerParticle()
EvtRaritaSchwingerParticle()
void applyRotateEuler(double alpha, double beta, double gamma)