8 |
|
#include "DataFormats/Common/interface/Handle.h" |
9 |
|
#include "DataFormats/PatCandidates/interface/Muon.h" |
10 |
|
|
11 |
< |
#include "UserCode/HbbAnalysis/interface/HistosBase.hh" |
11 |
> |
#include "UserCode/HbbAnalysis/interface/HistosMuonsBase.hh" |
12 |
|
#include "UserCode/HbbAnalysis/interface/EffUtility.hh" |
13 |
|
|
14 |
– |
|
15 |
– |
|
14 |
|
#include "TH1F.h" |
15 |
|
#include "TH2F.h" |
16 |
|
|
18 |
|
namespace HbbAnalysis {//namespace |
19 |
|
|
20 |
|
|
21 |
< |
class HistosMuons: public HistosBase { |
21 |
> |
class HistosMuons: public HistosMuonsBase { |
22 |
|
|
23 |
|
public: |
24 |
|
|
25 |
< |
HistosMuons(): |
26 |
< |
doGenMatched_(false), |
29 |
< |
nVar_(4) |
30 |
< |
{}; |
31 |
< |
~HistosMuons(){}; |
32 |
< |
|
33 |
< |
void Initialise(TFileDirectory & aDir, std::string aName, bool aDoGenMatched=false); |
34 |
< |
|
35 |
< |
void FillEventHistograms(edm::Handle<std::vector<pat::Muon> > aMuCol); |
36 |
< |
|
25 |
> |
void FillEventHistograms(const edm::Handle<std::vector<pat::Muon> >& aMuCol); |
26 |
> |
|
27 |
|
void FillHistograms(const pat::Muon & aMuon, bool isLead=true); |
28 |
< |
|
39 |
< |
void FillEffHistograms(); |
40 |
< |
|
28 |
> |
|
29 |
|
bool MatchesGenMuon(const pat::Muon & aMuon); |
30 |
< |
|
43 |
< |
inline const unsigned short getNVar() const { |
44 |
< |
return nVar_; |
45 |
< |
} |
46 |
< |
|
47 |
< |
private: |
48 |
< |
|
49 |
< |
|
50 |
< |
bool doGenMatched_; |
51 |
< |
unsigned short nVar_; |
52 |
< |
|
53 |
< |
TH1F *p_nMuons; |
54 |
< |
|
55 |
< |
TH1F *p_caloCompat; |
56 |
< |
TH1F *p_segCompat; |
57 |
< |
TH1F *p_nChambers; |
58 |
< |
TH1F *p_nMatchesLoose;//NoArbitration |
59 |
< |
TH1F *p_nMatchesMedium;//SegmentArbitration |
60 |
< |
TH1F *p_nMatchesTight;//SegmentAndTrackArbitration |
61 |
< |
TH1F *p_type; |
62 |
< |
TH1F *p_muonType; |
63 |
< |
TH1F *p_muonID; |
64 |
< |
|
65 |
< |
TH2F *p_caloCompatvsPt; |
66 |
< |
TH2F *p_segCompatvsPt; |
67 |
< |
TH2F *p_nChambersvsPt; |
68 |
< |
TH2F *p_nMatchesvsPt;//SegmentArbitration |
69 |
< |
TH2F *p_muonTypevsPt; |
70 |
< |
TH2F *p_muonIDvsPt; |
71 |
< |
|
72 |
< |
TH2F *p_caloCompatvsEta; |
73 |
< |
TH2F *p_segCompatvsEta; |
74 |
< |
TH2F *p_nChambersvsEta; |
75 |
< |
TH2F *p_nMatchesvsEta;//SegmentArbitration |
76 |
< |
TH2F *p_muonTypevsEta; |
77 |
< |
TH2F *p_muonIDvsEta; |
78 |
< |
|
79 |
< |
TH1F *peff_muID; |
80 |
< |
TH2F *peff_muIDvsEta; |
81 |
< |
EffUtility idEff_; |
82 |
< |
EffUtility idEffEta_[15];//one for each ID.... |
83 |
< |
|
84 |
< |
|
85 |
< |
//isolation variables |
86 |
< |
TH1F *p_isoR03_emEt; |
87 |
< |
TH1F *p_isoR05_emEt; |
88 |
< |
TH1F *p_isoR03_hadEt; |
89 |
< |
TH1F *p_isoR05_hadEt; |
90 |
< |
TH1F *p_isoR03_nTracks; |
91 |
< |
TH1F *p_isoR05_nTracks; |
92 |
< |
TH1F *p_isoR03_nJets; |
93 |
< |
TH1F *p_isoR05_nJets; |
94 |
< |
|
95 |
< |
//sumPt, sumPt/Pt, combIso, combIso/Pt |
96 |
< |
TH1F *p_isoR03[4]; |
97 |
< |
TH1F *p_isoR05[4]; |
98 |
< |
|
99 |
< |
//efficiency histograms |
100 |
< |
TH1F *peff_muIsoR03[4]; |
101 |
< |
TH1F *peff_muIsoR05[4]; |
102 |
< |
|
103 |
< |
EffUtility isoR03Eff_[4]; |
104 |
< |
EffUtility isoR05Eff_[4]; |
105 |
< |
|
106 |
< |
//eff vs pT and eta, with isoR03 only |
107 |
< |
TH1F *peff_muPt[4]; |
108 |
< |
TH1F *peff_muEta[4]; |
109 |
< |
|
110 |
< |
EffUtility isoEffPt_[4]; |
111 |
< |
EffUtility isoEffEta_[4]; |
112 |
< |
|
30 |
> |
|
31 |
|
}; |
32 |
|
|
33 |
|
}//namespace |