1 #ifndef _PhotosParticle_h_included_
2 #define _PhotosParticle_h_included_
45 static const int Z0 = 23;
108 static const int UP = 2;
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);
216 virtual void setE(
double e) = 0;
219 virtual void setMothers(std::vector<PhotosParticle*> mothers) = 0;
263 double mass,
double px,
264 double py,
double pz,
virtual void print()=0
Print some information about this particle to standard output.
static const int TAU_PLUS
tau+ particle
virtual void setDaughters(std::vector< PhotosParticle * > daughters)=0
Set the daughters of this particle via a vector of PhotosParticle.
static const int GAMMA
photon
virtual void setE(double e)=0
Set the energy component of the four vector.
static const int HIGGS_H
H0 particle.
static const int MUON_NEUTRINO
muon neutrino particle
static const int MUON_MINUS
muon- particle
static const int STABLE
Stable particle status.
void rotate(int axis, double phi, int second_axis=Z_AXIS)
rotate this particles 4-momentum by an angle phi from the axisis "axis" towards the axis "second_axis...
static const int Y_AXIS
Y Axis.
static const int W_MINUS
W- particle.
virtual void setMothers(std::vector< PhotosParticle * > mothers)=0
Set the mothers of this particle via a vector of PhotosParticle.
static const int TAU_ANTINEUTRINO
tau antineutrino particle
virtual void setStatus(int status)=0
Set the status of this particle.
static const int DOWN
down quark
static const int ELECTRON
e- particle
static const int HIGGS_PLUS
H+ particle.
static const int ELECTRON_NEUTRINO
e neutrino particle
PhotosParticle * findLastSelf()
Traverse the event structure and find the final version of this particle which does not have a partic...
virtual bool checkMomentumConservation()=0
check that the 4 momentum in conserved at the vertices producing and ending this particle
void boostToRestFrame(PhotosParticle *boost)
Transform this particles four momentum from the lab frome into the rest frame of the paramter PhotosP...
virtual int getBarcode()=0
Get the barcode of this particle.
virtual void setPy(double py)=0
Set the px component of the four vector.
virtual int getPdgID()=0
Get the PDG ID code of this particle.
static const int DECAYED
Decayed particle status.
void rotateDaughters(int axis, double phi, int second_axis=Z_AXIS)
rotate 4-momentum of daughters of this particle by an angle phi from the axisis "axis" towards the ax...
virtual double getPz()=0
Returns the pz component of the four vector.
static const int POSITRON
e+ particle
virtual double getE()=0
Returns the energy component of the four vector.
virtual double getPy()=0
Returns the py component of the four vector.
static const int TAU_MINUS
tau- particle
static const int ANTIUP
anti-up quark
virtual double getPx()=0
Returns the px component of the four vector.
virtual void setMass(double mass)=0
Set the mass of this particle.
void setP(int axis, double p_component)
Set momentum component in the direction of "axis" (x,y,z)
virtual void setPdgID(int pdg_id)=0
Set the PDG ID code of this particle.
static const int MUON_ANTINEUTRINO
muon antineutrino particle
virtual void createHistoryEntry()=0
Create history entry of this particle before modifications of PHOTOS.
std::vector< PhotosParticle * > getDecayTree()
Return whole decay tree starting from this particle.
virtual std::vector< PhotosParticle * > getDaughters()=0
Returns the daughters of this particle via a vector of PhotosParticle.
static const int ANTIDOWN
anti-down quark
virtual std::vector< PhotosParticle * > getMothers()=0
Returns the mothers of this particle via a vector of PhotosParticle.
virtual double getVirtuality()
Get sqrt(e^2-p^2)
static const int ELECTRON_ANTINEUTRINO
e antineutrino particle
std::vector< PhotosParticle * > findProductionMothers()
Traverse the event structure and find the first set of mothers which are not of the same type as this...
static const int TAU_NEUTRINO
tau neutrino particle
virtual void setPx(double px)=0
Set the px component of the four vector.
static const int Z0
Z0 particle.
static const int Z_AXIS
Z Axis.
bool hasDaughters()
Return whether the particle has any chidren.
virtual std::vector< PhotosParticle * > getAllDecayProducts()=0
Returns all particles in the decay tree of this particle via a vector of PhotosParticle.
void boostAlongZ(double pz, double e)
Do a Lorenz transformation along the Z axis.
static const int HIGGS_A
A0 particle.
virtual int getStatus()=0
Get the status of this particle.
static const int MUON_PLUS
muon+ particle
static const int UP
up quark
double getP()
Get scalar momentum.
virtual void setPz(double pz)=0
Set the pz component of the four vector.
static const int W_PLUS
W+ particle.
double getRotationAngle(int axis, int second_axis=Z_AXIS)
Returns the angle around the axis "axis" needed to rotate the four momenum is such a way that the non...
static const int HISTORY
History particle status.
virtual PhotosParticle * createNewParticle(int pdg_id, int status, double mass, double px, double py, double pz, double e)=0
Create a new particle of the same type, with the given properties.
virtual void addDaughter(PhotosParticle *daughter)=0
Add a new daughter to this particle.
virtual void createSelfDecayVertex(PhotosParticle *out)=0
Create a self-decay vertex for this particle with 'out' being the outgoing particle in new vertex.
virtual double getMass()=0
Get the invariant mass from the event record.
static const int X_AXIS
X Axis.
void boostDaughtersFromRestFrame(PhotosParticle *boost)
Transform this particles four momentum from the lab frame to the rest frame of the parameter PhotosPa...
static const int HIGGS
H particle.
static const int HIGGS_MINUS
H- particle.
void boostFromRestFrame(PhotosParticle *boost)
Transform this particles four momentum from the rest frame of the paramter PhotosParticle,...
void boostDaughtersToRestFrame(PhotosParticle *boost)
Transform the four momentum of all the daughters recursively into the frame of the "particle" PhotosP...
static const int OTHER
All other particle types.