Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:23

0001 #ifndef DataFormats_JetMatching_JetFlavourInfo_H
0002 #define DataFormats_JetMatching_JetFlavourInfo_H
0003 
0004 #include <vector>
0005 #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
0006 #include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h"
0007 
0008 namespace reco {
0009   /**\class JetFlavourInfo JetFlavourInfo.h DataFormats/JetMatching/interface/JetFlavourInfo.h
0010  * \brief Class storing the jet flavour information
0011  *
0012  * JetFlavourInfo class stores the jet flavour information based on hadrons
0013  * and partons clustered inside the jet. It also provides vectors of
0014  * EDM references to clustered hadrons and partons. The hadron- and parton-based
0015  * flavours are defined in the JetFlavourClustering producer.
0016  */
0017 
0018   class JetFlavourInfo {
0019   public:
0020     JetFlavourInfo(void) : m_hadronFlavour(0), m_partonFlavour(0) {}
0021     JetFlavourInfo(const int hadronFlavour, const int partonFlavour)
0022         : m_hadronFlavour(hadronFlavour), m_partonFlavour(partonFlavour) {}
0023     JetFlavourInfo(const GenParticleRefVector& bHadrons,
0024                    const GenParticleRefVector& cHadrons,
0025                    const GenParticleRefVector& partons,
0026                    const GenParticleRefVector& leptons,
0027                    const int hadronFlavour,
0028                    const int partonFlavour)
0029         : m_bHadrons(bHadrons),
0030           m_cHadrons(cHadrons),
0031           m_partons(partons),
0032           m_leptons(leptons),
0033           m_hadronFlavour(hadronFlavour),
0034           m_partonFlavour(partonFlavour) {}
0035 
0036     /// Return a vector of GenParticleRef's to b hadrons clustered inside the jet
0037     const GenParticleRefVector& getbHadrons() const { return m_bHadrons; }
0038     /// Return a vector of GenParticleRef's to c hadrons clustered inside the jet
0039     const GenParticleRefVector& getcHadrons() const { return m_cHadrons; }
0040     /// Return a vector of GenParticleRef's to partons clustered inside the jet
0041     const GenParticleRefVector& getPartons() const { return m_partons; }
0042     /// Return a vector of GenParticleRef's to leptons clustered inside the jet
0043     const GenParticleRefVector& getLeptons() const { return m_leptons; }
0044     /// Return the hadron-based flavour
0045     const int getHadronFlavour() const { return m_hadronFlavour; }
0046     /// Return the parton-based flavour
0047     const int getPartonFlavour() const { return m_partonFlavour; }
0048 
0049     /// Set the hadron-based flavour
0050     void setHadronFlavour(const int hadronFlavour) { m_hadronFlavour = hadronFlavour; }
0051     /// Set the parton-based flavour
0052     void setPartonFlavour(const int partonFlavour) { m_partonFlavour = partonFlavour; }
0053 
0054   private:
0055     GenParticleRefVector m_bHadrons;
0056     GenParticleRefVector m_cHadrons;
0057     GenParticleRefVector m_partons;
0058     GenParticleRefVector m_leptons;
0059     int m_hadronFlavour;
0060     int m_partonFlavour;
0061   };
0062 
0063 }  // namespace reco
0064 #endif