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;
 
  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)
virtual ~PhotosParticle()
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)