#ifndef STNTUPLE_TObspParticle #define STNTUPLE_TObspParticle #ifdef __GNUG__ #pragma interface #endif #include "TObject.h" #include "TLorentzVector.h" class TObspParticle : public TObject { protected: TLorentzVector fMomentum; Double_t fPath; Int_t fPdgCode; Int_t fVertexNumber; Int_t fDecayVertexNumber; Int_t fGenpNumber; Int_t fDecayCode; Float_t fCharge; public: //------------------------------------------------------------------------------ // functions //------------------------------------------------------------------------------ // ****** constructors and destructor TObspParticle(); TObspParticle(Int_t IPart, Int_t PdgCode, Float_t Px, Float_t Py, Float_t Pz, Float_t M, Float_t Path, Int_t VertexNumber, Int_t DecayVertexNumber, Int_t GenpNumber, Int_t DecayCode, Float_t Charge = -100); virtual ~TObspParticle(); //----------------------------------------------------------------------------- // init methods: OBSP particles are always on-shell //----------------------------------------------------------------------------- int Init (Int_t IPart, Int_t PdgCode, Float_t Px, Float_t Py, Float_t Pz, Float_t M, Float_t Path, Int_t VertexNumber, Int_t DecayVertexNumber, Int_t GenpNumber, Int_t DecayCode, Float_t Charge = -100); // ****** accessors Int_t Number () const { return GetUniqueID(); } Float_t Charge () const { return fCharge; } Double_t Path () const { return fPath; } TLorentzVector* Momentum () { return &fMomentum; } Int_t GenpNumber () const { return fGenpNumber; } Int_t DecayCode () const { return fDecayCode; } Int_t VertexNumber () const { return fVertexNumber; } Int_t DecayVertexNumber() const { return fDecayVertexNumber; } Int_t PdgCode () const { return fPdgCode; } // ****** overloaded methods of TObject void Print(Option_t* opt = "") const; ClassDef(TObspParticle,1) // OBSP particle }; #endif