CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/SimDataFormats/JetMatching/interface/JetFlavour.h

Go to the documentation of this file.
00001 #ifndef SimDataFormats_JetMatching_JetFlavour_H
00002 #define SimDataFormats_JetMatching_JetFlavour_H
00003 
00004 #include <vector>
00005 #include "DataFormats/Math/interface/Point3D.h"
00006 #include "DataFormats/Math/interface/LorentzVector.h"
00007 
00008 namespace reco
00009 {
00017 class JetFlavour
00018 {
00019   public:
00021     typedef math::XYZTLorentzVector LorentzVector;
00023     typedef math::XYZPoint Point;
00025     struct Leptons {
00026       int electron;
00027       int muon;
00028       int tau;
00029 
00030       Leptons() : electron(0), muon(0), tau(0) {}
00031     };
00032 
00033     JetFlavour(void) { }
00034     JetFlavour(LorentzVector lv, const Point &pt, int fl, const Leptons &le)
00035     : m_partonMomentum(lv), m_partonVertex(pt), m_flavour(fl), m_leptons(le) {}
00036     JetFlavour(LorentzVector lv, Point pt, int fl)
00037     : m_partonMomentum(lv), m_partonVertex(pt), m_flavour(fl) {}
00038 
00039     const LorentzVector getLorentzVector() const {return m_partonMomentum;}
00040     const Point         getPartonVertex()  const {return m_partonVertex;  }
00041     const int           getFlavour()       const {return m_flavour;       } 
00042     const Leptons       getLeptons()       const {return m_leptons;       }
00043      
00044   private:
00045     LorentzVector m_partonMomentum;
00046     Point         m_partonVertex;       // is it needed?
00047     int           m_flavour;
00048     Leptons       m_leptons;
00049 };
00050 
00051 }
00052 #endif