1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
#ifndef DataFormats_JetMatching_JetFlavourInfo_H
#define DataFormats_JetMatching_JetFlavourInfo_H
#include <vector>
#include "DataFormats/HepMCCandidate/interface/GenParticle.h"
#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h"
namespace reco {
/**\class JetFlavourInfo JetFlavourInfo.h DataFormats/JetMatching/interface/JetFlavourInfo.h
* \brief Class storing the jet flavour information
*
* JetFlavourInfo class stores the jet flavour information based on hadrons
* and partons clustered inside the jet. It also provides vectors of
* EDM references to clustered hadrons and partons. The hadron- and parton-based
* flavours are defined in the JetFlavourClustering producer.
*/
class JetFlavourInfo {
public:
JetFlavourInfo(void) : m_hadronFlavour(0), m_partonFlavour(0) {}
JetFlavourInfo(const int hadronFlavour, const int partonFlavour)
: m_hadronFlavour(hadronFlavour), m_partonFlavour(partonFlavour) {}
JetFlavourInfo(const GenParticleRefVector& bHadrons,
const GenParticleRefVector& cHadrons,
const GenParticleRefVector& partons,
const GenParticleRefVector& leptons,
const int hadronFlavour,
const int partonFlavour)
: m_bHadrons(bHadrons),
m_cHadrons(cHadrons),
m_partons(partons),
m_leptons(leptons),
m_hadronFlavour(hadronFlavour),
m_partonFlavour(partonFlavour) {}
/// Return a vector of GenParticleRef's to b hadrons clustered inside the jet
const GenParticleRefVector& getbHadrons() const { return m_bHadrons; }
/// Return a vector of GenParticleRef's to c hadrons clustered inside the jet
const GenParticleRefVector& getcHadrons() const { return m_cHadrons; }
/// Return a vector of GenParticleRef's to partons clustered inside the jet
const GenParticleRefVector& getPartons() const { return m_partons; }
/// Return a vector of GenParticleRef's to leptons clustered inside the jet
const GenParticleRefVector& getLeptons() const { return m_leptons; }
/// Return the hadron-based flavour
const int getHadronFlavour() const { return m_hadronFlavour; }
/// Return the parton-based flavour
const int getPartonFlavour() const { return m_partonFlavour; }
/// Set the hadron-based flavour
void setHadronFlavour(const int hadronFlavour) { m_hadronFlavour = hadronFlavour; }
/// Set the parton-based flavour
void setPartonFlavour(const int partonFlavour) { m_partonFlavour = partonFlavour; }
private:
GenParticleRefVector m_bHadrons;
GenParticleRefVector m_cHadrons;
GenParticleRefVector m_partons;
GenParticleRefVector m_leptons;
int m_hadronFlavour;
int m_partonFlavour;
};
} // namespace reco
#endif
|