1 #ifndef _PhotosParticle_h_included_
2 #define _PhotosParticle_h_included_
47 static const int Z0 = 23;
50 static const int HIGGS = 25;
65 static const int W_PLUS = 24;
71 static const int GAMMA = 22;
110 static const int UP = 2;
113 static const int ANTIUP = -2;
116 static const int DOWN = 1;
122 static const int OTHER = 0;
163 void rotate(
int axis,
double phi,
int second_axis=
Z_AXIS);
180 double getP(
int axis);
183 void setP(
int axis,
double p_component);
194 virtual double getPx()=0;
197 virtual double getPy()=0;
200 virtual double getPz()=0;
203 virtual double getE()=0;
209 virtual void setPx(
double px )=0;
212 virtual void setPy(
double py )=0;
215 virtual void setPz(
double pz )=0;
218 virtual void setE(
double e )=0;
221 virtual void setMothers(std::vector<PhotosParticle*> mothers)=0;
224 virtual void setDaughters(std::vector<PhotosParticle*> daughters)=0;
230 virtual std::vector<PhotosParticle*>
getMothers()=0;
240 virtual void setPdgID(
int pdg_id)=0;
243 virtual void setMass(
double mass)=0;
265 double mass,
double px,
266 double py,
double pz,
279 virtual void print()=0;
virtual void setPz(double pz)=0
void boostToRestFrame(PhotosParticle *boost)
void boostDaughtersFromRestFrame(PhotosParticle *boost)
void boostAlongZ(double pz, double e)
void rotateDaughters(int axis, double phi, int second_axis=Z_AXIS)
double getRotationAngle(int axis, int second_axis=Z_AXIS)
PhotosParticle * findLastSelf()
virtual PhotosParticle * createNewParticle(int pdg_id, int status, double mass, double px, double py, double pz, double e)=0
void boostDaughtersToRestFrame(PhotosParticle *boost)
static const int TAU_MINUS
static const int ANTIDOWN
virtual void setPx(double px)=0
virtual double getVirtuality()
std::vector< PhotosParticle * > findProductionMothers()
static const int TAU_ANTINEUTRINO
virtual int getBarcode()=0
virtual void setPy(double py)=0
static const int ELECTRON_NEUTRINO
virtual void setMothers(std::vector< PhotosParticle * > mothers)=0
static const int ELECTRON
static const int TAU_PLUS
void boostFromRestFrame(PhotosParticle *boost)
std::vector< PhotosParticle * > getDecayTree()
static const int HIGGS_MINUS
virtual void addDaughter(PhotosParticle *daughter)=0
virtual void setE(double e)=0
static const int TAU_NEUTRINO
static const int MUON_PLUS
virtual std::vector< PhotosParticle * > getAllDecayProducts()=0
void setP(int axis, double p_component)
Abstract base class for particle in the event. This class also handles boosting.
virtual int getStatus()=0
virtual void setMass(double mass)=0
virtual void setDaughters(std::vector< PhotosParticle * > daughters)=0
static const int MUON_ANTINEUTRINO
static const int MUON_NEUTRINO
virtual bool checkMomentumConservation()=0
static const int ELECTRON_ANTINEUTRINO
static const int HIGGS_PLUS
virtual void setPdgID(int pdg_id)=0
static const int POSITRON
static const int MUON_MINUS
virtual void createHistoryEntry()=0
virtual std::vector< PhotosParticle * > getMothers()=0
virtual void setStatus(int status)=0
virtual std::vector< PhotosParticle * > getDaughters()=0
virtual void createSelfDecayVertex(PhotosParticle *out)=0
virtual double getMass()=0
void rotate(int axis, double phi, int second_axis=Z_AXIS)