8 #ifndef Pythia8_HelicityBasics_H 9 #define Pythia8_HelicityBasics_H 11 #include "Pythia8/Basics.h" 12 #include "Pythia8/Event.h" 13 #include "Pythia8/PythiaComplex.h" 14 #include "Pythia8/PythiaStdlib.h" 31 val[1] = v1; val[2] = v2; val[3] = v3;}
32 Wave4(
Vec4 v) {val[0] = v.e(); val[1] = v.px(); val[2] = v.py();
41 val[1] + w.val[1], val[2] + w.val[2], val[3] + w.val[3]);}
45 val[1] - w.val[1], val[2] - w.val[2], val[3] - w.val[3]);}
52 + val[1] * w.val[1] + val[2] * w.val[2] + val[3] * w.val[3];}
56 val[2] * s, val[3] * s);}
63 val[2] * s, val[3] * s);}
70 val[2] / s, val[3] / s);}
129 else return COMPLEXZERO; }
136 val[2] = s*val[2]; val[3] = s*val[3];
return *
this;}
143 val[2] = val[2] - s; val[3] = val[3] - s;
return *
this;}
150 val[2] = val[2] + s; val[3] = val[3] + s;
return *
this;}
189 int mother2In = 0,
int daughter1In = 0,
int daughter2In = 0,
190 int colIn = 0,
int acolIn = 0,
double pxIn = 0.,
191 double pyIn = 0.,
double pzIn = 0.,
double eIn = 0.,
192 double mIn = 0.,
double scaleIn = 0.,
ParticleData* ptr = 0)
193 :
Particle(idIn, statusIn, mother1In, mother2In, daughter1In, daughter2In,
194 colIn, acolIn, pxIn, pyIn, pzIn, eIn, mIn, scaleIn), indexSave() {
195 if (ptr) setPDEPtr( ptr->particleDataEntryPtr( idIn) );
199 int daughter1In,
int daughter2In,
int colIn,
int acolIn,
Vec4 pIn,
200 double mIn = 0.,
double scaleIn = 0.,
ParticleData* ptr = 0)
201 :
Particle(idIn, statusIn, mother1In, mother2In, daughter1In, daughter2In,
202 colIn, acolIn, pIn, mIn, scaleIn), indexSave() {
203 if (ptr) setPDEPtr( ptr->particleDataEntryPtr( idIn) );
208 indexSave = ptIn.
index();
209 if (ptr) setPDEPtr( ptr->particleDataEntryPtr(
id()) );
215 Wave4 waveBar(
int h);
216 void normalize(vector< vector<complex> >&
m);
220 double m() {
return mSave;}
221 void m(
double mIn) {mSave = mIn; initRhoD();}
224 double pol() {
return polSave;}
225 void pol(
double hIn);
228 int index()
const {
return indexSave;}
229 void index(
int indexIn) {indexSave = indexIn;}
235 vector< vector<complex> >
rho;
238 vector< vector<complex> >
D;
GammaMatrix operator-(complex s)
Gamma5 - I * Scalar.
Definition: HelicityBasics.h:142
std::complex< double > complex
Convenient typedef for double precision complex numbers.
Definition: PythiaComplex.h:17
int index() const
Event record position (redefine from Particle).
Definition: HelicityBasics.h:228
double m()
Return and set mass (redefine from Particle).
Definition: HelicityBasics.h:220
Wave4 operator-(Wave4 w)
Wave4 - Wave4.
Definition: HelicityBasics.h:44
double pol()
Set the helicity state (redefine from Particle).
Definition: HelicityBasics.h:224
GammaMatrix operator*(complex s)
GammaMatrix * Scalar.
Definition: HelicityBasics.h:135
Wave4()
Constructors and destructor.
Definition: HelicityBasics.h:29
Definition: HelicityBasics.h:24
complex COMPLEXZERO
Need to define complex 0 as a variable for operator() to work.
Definition: HelicityBasics.h:164
friend Wave4 epsilon(Wave4 w1, Wave4 w2, Wave4 w3)
Permutation operator.
Definition: HelicityBasics.cc:56
Wave4 operator+(Wave4 w)
Wave4 + Wave4.
Definition: HelicityBasics.h:40
friend ostream & operator<<(ostream &output, Wave4 w)
Wave4 * GammaMatrix multiplication is defined in the GammaMatrix class.
Definition: HelicityBasics.cc:97
Wave4 operator/(double s)
Wave4 / double.
Definition: HelicityBasics.h:73
Wave4 operator/(complex s)
Wave4 / complex.
Definition: HelicityBasics.h:69
Definition: HelicityBasics.h:118
Definition: HelicityBasics.h:182
Wave4 operator*(complex s)
Wave4 * complex.
Definition: HelicityBasics.h:55
int direction
Flag for whether particle is incoming (-1) or outgoing (1).
Definition: HelicityBasics.h:232
GammaMatrix()
Constructors and destructor.
Definition: HelicityBasics.h:123
complex operator*(Wave4 w)
Wave4 * Wave4.
Definition: HelicityBasics.h:51
HelicityParticle()
Constructors.
Definition: HelicityBasics.h:187
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
double m(const Vec4 &v1)
Invariant mass and its square.
Definition: Basics.cc:595
vector< vector< complex > > D
Decay matrix.
Definition: HelicityBasics.h:238
Wave4 operator-()
Definition: HelicityBasics.h:48
GammaMatrix operator+(complex s)
Gamma5 + I * Scalar.
Definition: HelicityBasics.h:149
Wave4 operator*(double s)
Wave4 * double.
Definition: HelicityBasics.h:62
friend Wave4 conj(Wave4 w)
Complex conjugate.
Definition: HelicityBasics.cc:42
This class holds a map of all ParticleDataEntries.
Definition: ParticleData.h:422
friend double m2(Wave4 w)
Invariant squared mass for REAL Wave4 (to save time).
Definition: HelicityBasics.cc:79
complex & operator()(int i)
Access an element of the wave vector.
Definition: HelicityBasics.h:37
vector< vector< complex > > rho
Helicity density matrix.
Definition: HelicityBasics.h:235
virtual int index() const
Methods that can refer back to the event the particle belongs to.
Definition: Event.cc:87