File indexing completed on 2024-04-06 12:04:23
0001 #ifndef DataFormats_JetMatching_JetFlavour_H
0002 #define DataFormats_JetMatching_JetFlavour_H
0003
0004 #include <vector>
0005 #include "DataFormats/Math/interface/Point3D.h"
0006 #include "DataFormats/Math/interface/LorentzVector.h"
0007
0008 namespace reco {
0009
0010
0011
0012
0013
0014
0015
0016 class JetFlavour {
0017 public:
0018
0019 typedef math::XYZTLorentzVector LorentzVector;
0020
0021 typedef math::XYZPoint Point;
0022
0023 struct Leptons {
0024 int electron;
0025 int muon;
0026 int tau;
0027
0028 Leptons() : electron(0), muon(0), tau(0) {}
0029 };
0030
0031 JetFlavour(void) {}
0032 JetFlavour(const LorentzVector& lv, const Point& pt, int fl, const Leptons& le)
0033 : m_partonMomentum(lv), m_partonVertex(pt), m_flavour(fl), m_leptons(le) {}
0034 JetFlavour(const LorentzVector& lv, const Point& pt, int fl)
0035 : m_partonMomentum(lv), m_partonVertex(pt), m_flavour(fl) {}
0036
0037 const LorentzVector getLorentzVector() const { return m_partonMomentum; }
0038 const Point getPartonVertex() const { return m_partonVertex; }
0039 const int getFlavour() const { return m_flavour; }
0040 const Leptons getLeptons() const { return m_leptons; }
0041
0042 private:
0043 LorentzVector m_partonMomentum;
0044 Point m_partonVertex;
0045 int m_flavour;
0046 Leptons m_leptons;
0047 };
0048
0049 }
0050 #endif