1 #ifndef _PhotosParticle_h_included_ 2 #define _PhotosParticle_h_included_ 27 static const int STABLE = 1;
36 static const int X_AXIS = 1;
39 static const int Y_AXIS = 2;
42 static const int Z_AXIS = 3;
45 static const int Z0 = 23;
48 static const int HIGGS = 25;
63 static const int W_PLUS = 24;
69 static const int GAMMA = 22;
108 static const int UP = 2;
111 static const int ANTIUP = -2;
114 static const int DOWN = 1;
120 static const int OTHER = 0;
161 void rotate(
int axis,
double phi,
int second_axis = Z_AXIS);
178 double getP(
int axis);
181 void setP(
int axis,
double p_component);
192 virtual double getPx() = 0;
195 virtual double getPy() = 0;
198 virtual double getPz() = 0;
201 virtual double getE() = 0;
207 virtual void setPx(
double px) = 0;
210 virtual void setPy(
double py) = 0;
213 virtual void setPz(
double pz) = 0;
216 virtual void setE(
double e) = 0;
219 virtual void setMothers(std::vector<PhotosParticle *> mothers) = 0;
222 virtual void setDaughters(std::vector<PhotosParticle *> daughters) = 0;
228 virtual std::vector<PhotosParticle *>
getMothers() = 0;
231 virtual std::vector<PhotosParticle *>
getDaughters() = 0;
238 virtual void setPdgID(
int pdg_id) = 0;
241 virtual void setMass(
double mass) = 0;
274 virtual void print() = 0;
virtual void setPz(double pz)=0
virtual void setMothers(std::vector< PhotosParticle *> mothers)=0
void boostDaughtersFromRestFrame(PhotosParticle *boost)
virtual ~PhotosParticle()
std::vector< PhotosParticle * > getDecayTree()
PhotosParticle * findLastSelf()
virtual PhotosParticle * createNewParticle(int pdg_id, int status, double mass, double px, double py, double pz, double e)=0
virtual std::vector< PhotosParticle * > getAllDecayProducts()=0
static const int TAU_MINUS
double getRotationAngle(int axis, int second_axis=Z_AXIS)
static const int ANTIDOWN
virtual void setPx(double px)=0
static const int TAU_ANTINEUTRINO
virtual int getBarcode()=0
virtual void setPy(double py)=0
static const int ELECTRON_NEUTRINO
static const int ELECTRON
static const int TAU_PLUS
void boostToRestFrame(PhotosParticle *boost)
virtual std::vector< PhotosParticle * > getMothers()=0
static const int HIGGS_MINUS
virtual void addDaughter(PhotosParticle *daughter)=0
virtual void setE(double e)=0
static const int TAU_NEUTRINO
virtual std::vector< PhotosParticle * > getDaughters()=0
static const int MUON_PLUS
void rotateDaughters(int axis, double phi, int second_axis=Z_AXIS)
Abstract base class for particle in the event. This class also handles boosting.
std::vector< PhotosParticle * > findProductionMothers()
virtual int getStatus()=0
virtual void setMass(double mass)=0
static const int MUON_ANTINEUTRINO
virtual double getVirtuality()
static const int MUON_NEUTRINO
virtual bool checkMomentumConservation()=0
static const int ELECTRON_ANTINEUTRINO
void boostFromRestFrame(PhotosParticle *boost)
static const int HIGGS_PLUS
virtual void setPdgID(int pdg_id)=0
static const int POSITRON
void boostAlongZ(double pz, double e)
static const int MUON_MINUS
virtual void createHistoryEntry()=0
virtual void setDaughters(std::vector< PhotosParticle *> daughters)=0
void setP(int axis, double p_component)
virtual void setStatus(int status)=0
virtual void createSelfDecayVertex(PhotosParticle *out)=0
virtual double getMass()=0
void boostDaughtersToRestFrame(PhotosParticle *boost)
void rotate(int axis, double phi, int second_axis=Z_AXIS)