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)