ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/plugins/Histos.h
Revision: 1.4
Committed: Fri May 11 09:46:37 2012 UTC (13 years ago) by bortigno
Content type: text/plain
Branch: MAIN
CVS Tags: AN-12-181-7TeV_patch1, AN-12-181-7TeV
Changes since 1.3: +8 -1 lines
Log Message:
by hand MET typeIcorr

File Contents

# Content
1 #ifndef HISTOS_H
2 #define HISTOS_H
3
4 #include <TH1F.h>
5 /* #include "DataFormats/GeometryVector/interface/VectorUtil.h" */
6 /* #include "DataFormats/Math/interface/deltaR.h" */
7 #include "../interface/CutsAndHistos.h"
8 #include "TLorentzVector.h"
9 #include <sstream>
10 #include "TKey.h"
11 #include "TMVA/Reader.h"
12 #include "TMVA/Config.h"
13 #include "TMVA/Tools.h"
14 #include "TMVA/MethodCuts.h"
15
16
17 class MCHistos : public Histos {
18
19 public:
20
21 virtual void book(TFile &f, std::string suffix) {
22
23 TDirectory *subDir;
24
25 if( ! f.GetDirectory(suffix.c_str()) )
26 subDir = f.mkdir(suffix.c_str());
27 else
28 subDir = f.GetDirectory(suffix.c_str());
29
30 subDir->cd();
31
32 bin_mass = 500;
33 min_mass = 0;
34 max_mass = 300;
35
36 bin_pt = 500;
37 min_pt = 0;
38 max_pt = 500;
39
40 bin_hel = 50;
41 min_hel = 0;
42 max_hel = 1;
43
44 //from MC
45 McH_simHMass = new TH1F(("simHiggsMass"+suffix).c_str(),("Sim Higgs Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
46 McH_simHPt = new TH1F(("simHiggsPt"+suffix).c_str(),("Sim Higgs Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
47 McH_simZMass = new TH1F(("simZMass"+suffix).c_str(),("Sim Z Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
48 McH_simZPt = new TH1F(("simZPt"+suffix).c_str(),("Sim Z Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
49 McH_simWMass = new TH1F(("simWMass"+suffix).c_str(),("Sim W Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
50 McH_simWPt = new TH1F(("simWPt"+suffix).c_str(),("Sim W Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
51
52 }
53
54 virtual void fill(ntupleReader &iEvent,float w) {
55
56 // McH_simWPt->Fill(iAuxInfo->mcW[0].p4.Pt(), w);
57
58 }
59
60
61 TH1F * McH_simHMass;
62 TH1F * McH_simHPt;
63 TH1F * McH_simWMass;
64 TH1F * McH_simWPt;
65 TH1F * McH_simZMass;
66 TH1F * McH_simZPt;
67
68 private:
69
70 Int_t bin_mass;
71 Double_t min_mass;
72 Double_t max_mass;
73
74 Int_t bin_pt;
75 Double_t min_pt;
76 Double_t max_pt;
77
78 Int_t bin_hel;
79 Double_t min_hel;
80 Double_t max_hel;
81
82
83 };
84
85
86 class BTagHistos : public Histos {
87
88 public:
89
90 virtual void book(TFile &f, std::string suffix) {
91
92 TDirectory *subDir;
93 if( ! f.GetDirectory(suffix.c_str()) )
94 subDir = f.mkdir(suffix.c_str());
95 else
96 subDir = f.GetDirectory(suffix.c_str());
97 subDir->cd();
98
99 bin_btag_prob = 20;
100 min_btag_prob = 0;
101 max_btag_prob = 1;
102
103 bin_btag_count = 10;
104 min_btag_count = 0;
105 max_btag_count = 10;
106
107 //Candidates
108 BTagH_bJet1_csv = new TH1F(("BJet1_CSV"+suffix).c_str(),("BJet1 CSV ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob );
109 BTagH_bJet2_csv = new TH1F(("BJet2_CSV"+suffix).c_str(),("BJet2 CSV ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob );
110 /* BTagH_bJet1_csvmva = new TH1F(("BJet1_CSVMVA"+suffix).c_str(),("BJet1 CSVMVA ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob ); */
111 /* BTagH_bJet2_csvmva = new TH1F(("BJet2_CSVMVA"+suffix).c_str(),("BJet2 CSVMVA ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob ); */
112 /* BTagH_bJet1_ssvhe = new TH1F(("BJet1_SSVHE"+suffix).c_str(),("BJet1 SSVHE ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob ); */
113 /* BTagH_bJet2_ssvhe = new TH1F(("BJet2_SSVHE"+suffix).c_str(),("BJet2 SSVHE ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob ); */
114 /* BTagH_bJet1_jpb = new TH1F(("BJet1_JPB"+suffix).c_str(),("BJet1 JPB ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob ); */
115 /* BTagH_bJet2_jpb = new TH1F(("BJet2_JPB"+suffix).c_str(),("BJet2 JPB ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob ); */
116 /* BTagH_bJet1_tche = new TH1F(("BJet1_TCHE"+suffix).c_str(),("BJet1 TCHE ("+suffix+")").c_str(), bin_btag_count, min_btag_count, max_btag_count ); */
117 /* BTagH_bJet2_tche = new TH1F(("BJet2_TCHE"+suffix).c_str(),("BJet2 TCHE ("+suffix+")").c_str(), bin_btag_count, min_btag_count, max_btag_count ); */
118 /* BTagH_bJet1_jp = new TH1F(("BJet1_JP"+suffix).c_str(),("BJet1 JP ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob ); */
119 /* BTagH_bJet2_jp = new TH1F(("BJet2_JP"+suffix).c_str(),("BJet2 JP ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob ); */
120 /* BTagH_bJet1_tchp = new TH1F(("BJet1_TCHP"+suffix).c_str(),("BJet1 TCHP ("+suffix+")").c_str(), bin_btag_count, min_btag_count, max_btag_count ); */
121 /* BTagH_bJet2_tchp = new TH1F(("BJet2_TCHP"+suffix).c_str(),("BJet2 TCHP ("+suffix+")").c_str(), bin_btag_count, min_btag_count, max_btag_count ); */
122
123 }
124
125 virtual void fill(ntupleReader &iEvent,float w) {
126
127 BTagH_bJet1_csv->Fill(iEvent.hJet_csv[0], w);
128 BTagH_bJet2_csv->Fill(iEvent.hJet_csv[1], w);
129 /* BTagH_bJet1_csvmva->Fill(iEvent.H.jets.at(0).csvmva, w); */
130 /* BTagH_bJet2_csvmva->Fill(iEvent.H.jets.at(1).csvmva, w); */
131 /* BTagH_bJet1_ssvhe->Fill(iEvent.H.jets.at(0).ssvhe, w); */
132 /* BTagH_bJet2_ssvhe->Fill(iEvent.H.jets.at(1).ssvhe, w); */
133 /* BTagH_bJet1_tche->Fill(iEvent.H.jets.at(0).tche, w); */
134 /* BTagH_bJet2_tche->Fill(iEvent.H.jets.at(1).tche, w); */
135 /* BTagH_bJet1_tchp->Fill(iEvent.H.jets.at(0).tchp, w); */
136 /* BTagH_bJet2_tchp->Fill(iEvent.H.jets.at(1).tchp, w); */
137 /* BTagH_bJet1_jpb->Fill(iEvent.H.jets.at(0).jpb, w); */
138 /* BTagH_bJet2_jpb->Fill(iEvent.H.jets.at(1).jpb, w); */
139 /* BTagH_bJet1_jp->Fill(iEvent.H.jets.at(0).jp, w); */
140 /* BTagH_bJet2_jp->Fill(iEvent.H.jets.at(1).jp, w); */
141
142
143 }
144
145 TH1F * BTagH_bJet1_csv;
146 TH1F * BTagH_bJet2_csv;
147 /* TH1F * BTagH_bJet1_csvmva; */
148 /* TH1F * BTagH_bJet2_csvmva; */
149 /* TH1F * BTagH_bJet1_ssvhe; */
150 /* TH1F * BTagH_bJet2_ssvhe; */
151 /* TH1F * BTagH_bJet1_jpb; */
152 /* TH1F * BTagH_bJet2_jpb; */
153 /* TH1F * BTagH_bJet1_tche; */
154 /* TH1F * BTagH_bJet2_tche; */
155 /* TH1F * BTagH_bJet1_jp; */
156 /* TH1F * BTagH_bJet2_jp; */
157 /* TH1F * BTagH_bJet1_tchp; */
158 /* TH1F * BTagH_bJet2_tchp; */
159
160 private:
161
162 Int_t bin_btag_prob;
163 Double_t min_btag_prob;
164 Double_t max_btag_prob;
165
166 Int_t bin_btag_count;
167 Double_t min_btag_count;
168 Double_t max_btag_count;
169
170 };
171
172
173 class CountHisto : public Histos {
174 virtual void book(TFile &f, std::string suffix) {
175
176 TDirectory *subDir;
177 if( ! f.GetDirectory(suffix.c_str()) )
178 subDir = f.mkdir(suffix.c_str());
179 else
180 subDir = f.GetDirectory(suffix.c_str());
181 subDir->cd();
182 count = new TH1F(("Count"+suffix).c_str(),("Count ("+suffix+")").c_str(), 1,0,2 );
183 }
184 virtual void fill( ntupleReader & event, float w){
185 count->Fill(1, w);
186 }
187
188 TH1F * count;
189 };
190
191
192 class StandardHistos : public Histos {
193
194 public:
195
196 virtual void book(TFile &f, std::string suffix) {
197
198 TDirectory *subDir;
199 if( ! f.GetDirectory(suffix.c_str()) )
200 subDir = f.mkdir(suffix.c_str());
201 else
202 subDir = f.GetDirectory(suffix.c_str());
203 subDir->cd();
204
205 bin_mass = 30;
206 min_mass = 0;
207 max_mass = 300;
208
209 bin_SVmass = 50;
210 min_SVmass = 0;
211 max_SVmass = 10;
212
213 bin_pt = 50;
214 min_pt = 0;
215 max_pt = 500;
216
217 bin_hel = 20;
218 min_hel = -1;
219 max_hel = 1;
220
221 bin_dxy = 20;
222 min_dxy = -0.2;
223 max_dxy = 0.2;
224
225 bin_iso = 20;
226 min_iso = 0;
227 max_iso = 0.5;
228
229 bin_btag = 20;
230 min_btag = 0;
231 max_btag = 1;
232
233 bin_npvs = 30;
234 min_npvs = 0;
235 max_npvs = 30;
236
237 bin_addJets = 10;
238 min_addJets = 0;
239 max_addJets = 10;
240
241 bin_eta = bin_phi = 20;
242 min_eta = min_phi = -5;
243 max_eta = max_phi = 5;
244
245 bin_deltaR = bin_deltaPhi = bin_deltaEta = 20;
246 min_deltaR = min_deltaPhi = min_deltaEta = 0;
247 max_deltaR = max_deltaPhi = max_deltaEta = 5;
248
249 //Candidates
250 StH_nPVs = new TH1F(("nPVs"+suffix).c_str(),("Number of reconstructed PV ("+suffix+")").c_str(), bin_npvs, min_npvs, max_npvs );
251 StH_addJets = new TH1F(("addJets"+suffix).c_str(),("Number of additional AK5 ("+suffix+")").c_str(), bin_addJets, min_addJets, max_addJets );
252
253 StH_typeImet_et = new TH1F(("typeIMET_et"+suffix).c_str(),("Type corrected missing transverse energy ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.5 );
254 StH_met_et = new TH1F(("MET_et"+suffix).c_str(),("Missing transverse energy ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.5 );
255 StH_met_sig = new TH1F(("MET_sig"+suffix).c_str(),("MET significance("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.1 );
256
257 StH_vectorLepton1_pt = new TH1F(("vectorLepton1_pt"+suffix).c_str(),("Vector Lepton1 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
258 StH_vectorLepton2_pt = new TH1F(("vectorLepton2_pt"+suffix).c_str(),("Vector Lepton2 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
259 StH_vectorLepton1_phi = new TH1F(("vectorLepton1_phi"+suffix).c_str(),("Vector Lepton1 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
260 StH_vectorLepton2_phi = new TH1F(("vectorLepton2_phi"+suffix).c_str(),("Vector Lepton2 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
261 StH_vectorLepton1_eta = new TH1F(("vectorLepton1_eta"+suffix).c_str(),("Vector Lepton1 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
262 StH_vectorLepton2_eta = new TH1F(("vectorLepton2_eta"+suffix).c_str(),("Vector Lepton2 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
263 StH_vectorLepton1_pfCombRelIso = new TH1F(("vectorLepton1_pfCombRelIso"+suffix).c_str(),("Vector Lepton1 pfCombRelIso ("+suffix+")").c_str(), bin_iso, min_iso, max_iso );
264 StH_vectorLepton2_pfCombRelIso = new TH1F(("vectorLepton2_pfCombRelIso"+suffix).c_str(),("Vector Lepton2 pfCombRelIso ("+suffix+")").c_str(), bin_iso, min_iso, max_iso );
265 StH_vectorLepton1_dxy = new TH1F(("vectorLepton1_dxy"+suffix).c_str(),("Vector Lepton1 dxy ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
266 StH_vectorLepton2_dxy = new TH1F(("vectorLepton2_dxy"+suffix).c_str(),("Vector Lepton2 dxy ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
267 StH_vectorLepton1_dz = new TH1F(("vectorLepton1_dz"+suffix).c_str(),("Vector Lepton1 dz ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
268 StH_vectorLepton2_dz = new TH1F(("vectorLepton2_dz"+suffix).c_str(),("Vector Lepton2 dz ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
269
270 StH_simpleJet1_pt = new TH1F(("SimpleJet1_pt"+suffix).c_str(),("Simple Jet1 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
271 StH_simpleJet2_pt = new TH1F(("SimpleJet2_pt"+suffix).c_str(),("Simple Jet2 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
272 StH_simpleJet1_phi = new TH1F(("SimpleJet1_phi"+suffix).c_str(),("Simple Jet1 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
273 StH_simpleJet2_phi = new TH1F(("SimpleJet2_phi"+suffix).c_str(),("Simple Jet2 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
274 StH_simpleJet1_eta = new TH1F(("SimpleJet1_eta"+suffix).c_str(),("Simple Jet1 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
275 StH_simpleJet2_eta = new TH1F(("SimpleJet2_eta"+suffix).c_str(),("Simple Jet2 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
276 StH_simpleJet1_bTag = new TH1F(("SimpleJet1_bTag"+suffix).c_str(),("Simple Jet1 bTag ("+suffix+")").c_str(), bin_btag, min_btag, max_btag );
277 StH_simpleJet2_bTag = new TH1F(("SimpleJet2_bTag"+suffix).c_str(),("Simple Jet2 bTag ("+suffix+")").c_str(), bin_btag, min_btag, max_btag );
278 StH_simpleJet1_vtxMass = new TH1F(("SimpleJet1_vtxMass"+suffix).c_str(),("Simple Jet1 vtxMass ("+suffix+")").c_str(), bin_SVmass, min_SVmass, max_SVmass );
279 StH_simpleJet2_vtxMass = new TH1F(("SimpleJet2_vtxMass"+suffix).c_str(),("Simple Jet2 vtxMass ("+suffix+")").c_str(), bin_SVmass, min_SVmass, max_SVmass );
280
281 StH_simpleJets_bTag = new TH1F(("SimpleJets_bTag"+suffix).c_str(),("Simple Jets bTag ("+suffix+")").c_str(), bin_btag, min_btag, max_btag );
282 StH_simpleJets_bTagSum = new TH1F(("SimpleJets_bTagSum"+suffix).c_str(),("Simple Jets bTagSum ("+suffix+")").c_str(), bin_btag*2, min_btag, max_btag*2 );
283 StH_simpleJets_vtxMass = new TH1F(("SimpleJets_vtxMass"+suffix).c_str(),("Simple Jets vtxMass ("+suffix+")").c_str(), bin_SVmass, min_SVmass, max_SVmass );
284
285 StH_addJet1_pt = new TH1F(("AddJet1_pt"+suffix).c_str(),("Additional Jet1 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
286 StH_addJet1_phi = new TH1F(("AddJet1_phi"+suffix).c_str(),("Additional Jet1 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
287 StH_addJet1_eta = new TH1F(("AddJet1_eta"+suffix).c_str(),("Additional Jet1 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
288 StH_addJet1_bTag = new TH1F(("AddJet1_bTag"+suffix).c_str(),("Additional Jet1 bTag ("+suffix+")").c_str(), bin_btag, min_btag, max_btag );
289 StH_addJet1_vtxMass = new TH1F(("AddJet1_vtxMass"+suffix).c_str(),("Additional Jet1 vtxMass ("+suffix+")").c_str(), bin_SVmass, min_SVmass, max_SVmass );
290 StH_addJet1_nconstituents = new TH1F(("AddJet1_nConstituent"+suffix).c_str(),(" AddJet1 nConstituents ("+suffix+")").c_str(), 50 , 0, 50 );
291
292 StH_HMass = new TH1F(("HiggsMass"+suffix).c_str(),(" Higgs Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
293 StH_HPt = new TH1F(("HiggsPt"+suffix).c_str(),(" Higgs Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
294 StH_HdR = new TH1F(("HdR"+suffix).c_str(),("Higgs deltaR ("+suffix+")").c_str(), bin_deltaR, min_deltaR, max_deltaR );
295 StH_HdPhi = new TH1F(("HdPhi"+suffix).c_str(),("Higgs deltaPhi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
296 StH_HdEta = new TH1F(("HdEta"+suffix).c_str(),("Higgs deltaEta ("+suffix+")").c_str(), bin_deltaEta, min_deltaEta, max_deltaEta );
297 StH_HHel = new TH1F(("HiggsHel"+suffix).c_str(),("Higgs helicity angle ("+suffix+")").c_str(), bin_hel, min_hel, max_hel );
298 StH_HPullAngle = new TH1F(("HiggsPullAngle"+suffix).c_str(),("Higgs pull angle ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
299 StH_HdR_addJets = new TH1F(("HdR_addJets"+suffix).c_str(),("Higgs deltaR addJets ("+suffix+")").c_str(), bin_deltaR, min_deltaR, max_deltaR );
300 StH_HdR_leading_addJets = new TH1F(("HdR_leading_addJets"+suffix).c_str(),("Higgs deltaR leading-add Jets ("+suffix+")").c_str(), bin_deltaR, min_deltaR, max_deltaR );
301 StH_HdR_following_addJets = new TH1F(("HdR_following_addJets"+suffix).c_str(),("Higgs deltaR following-add Jets ("+suffix+")").c_str(), bin_deltaR, min_deltaR, max_deltaR );
302 StH_HdRnorm_addJets = new TH1F(("HdRnorm_addJets"+suffix).c_str(),("Higgs normalized deltaR addJets ("+suffix+")").c_str(), bin_deltaR, min_deltaR, max_deltaR );
303 StH_HMass_addJets = new TH1F(("HiggsMass_addJets"+suffix).c_str(),(" Higgs Mass with addJet ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
304 StH_HMass_leading_addJets = new TH1F(("HiggsMass_leading_addJets"+suffix).c_str(),(" Higgs Mass with leading addJet ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
305 StH_HMass_following_addJets = new TH1F(("HiggsMass_following_addJets"+suffix).c_str(),(" Higgs Mass with following addJet ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
306 StH_HMass_both_addJets = new TH1F(("HiggsMass_both_addJets"+suffix).c_str(),(" Higgs Mass with both addJet ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
307
308 StH_massDrop = new TH1F(("MassDrop"+suffix).c_str(),(" Higgs Mass Drop ("+suffix+")").c_str(), bin_btag, min_btag, max_btag );
309 StH_y12 = new TH1F(("Y12"+suffix).c_str(),(" Higgs Y12 ("+suffix+")").c_str(), bin_btag, min_btag, max_btag*1.2 );
310
311
312 StH_ZMass = new TH1F(("ZMass"+suffix).c_str(),(" Z Mass ("+suffix+")").c_str(), 100, 50, 150 );
313 StH_ZPt = new TH1F(("ZPt"+suffix).c_str(),(" Z Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
314 StH_ZH_dPhi = new TH1F(("ZH_dPhi"+suffix).c_str(),(" ZH delta Phi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
315 StH_WMass = new TH1F(("WMass"+suffix).c_str(),(" W Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
316 StH_WPt = new TH1F(("WPt"+suffix).c_str(),(" W Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
317 StH_WH_dPhi = new TH1F(("WH_dPhi"+suffix).c_str(),(" WH delta Phi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
318
319 }
320
321 virtual void fill(ntupleReader &iEvent,float w) {
322
323 StH_nPVs->Fill(iEvent.nPVs, w);
324 StH_addJets->Fill(iEvent.CountAddJets(), w);
325
326 StH_typeImet_et->Fill(iEvent.typeIcorrMET(), w);
327 // StH_met_et->Fill( TMath::Min(iEvent.METnoPUCh_et, iEvent.METnoPU_et ), w);
328 StH_met_et->Fill( iEvent.MET_et, w);
329 StH_met_sig->Fill(iEvent.MET_sig, w);
330
331 StH_vectorLepton1_pt->Fill(iEvent.vLepton_pt[0], w);
332 StH_vectorLepton2_pt->Fill(iEvent.vLepton_pt[1], w);
333 StH_vectorLepton1_phi->Fill(iEvent.vLepton_phi[0], w);
334 StH_vectorLepton2_phi->Fill(iEvent.vLepton_phi[1], w);
335 StH_vectorLepton1_eta->Fill(iEvent.vLepton_eta[0], w);
336 StH_vectorLepton2_eta->Fill(iEvent.vLepton_eta[1], w);
337 StH_vectorLepton1_pfCombRelIso->Fill(iEvent.vLepton_pfCombRelIso[0], w);
338 StH_vectorLepton2_pfCombRelIso->Fill(iEvent.vLepton_pfCombRelIso[1], w);
339 StH_vectorLepton1_dxy->Fill(iEvent.vLepton_dxy[0], w);
340 StH_vectorLepton2_dxy->Fill(iEvent.vLepton_dxy[1], w);
341 StH_vectorLepton1_dz->Fill(iEvent.vLepton_dz[0], w);
342 StH_vectorLepton2_dz->Fill(iEvent.vLepton_dz[1], w);
343
344 StH_simpleJet1_pt->Fill(iEvent.hJet_pt[0], w);
345 StH_simpleJet2_pt->Fill(iEvent.hJet_pt[1], w);
346 StH_simpleJet1_phi->Fill(iEvent.hJet_phi[0], w);
347 StH_simpleJet2_phi->Fill(iEvent.hJet_phi[1], w);
348 StH_simpleJet1_eta->Fill(iEvent.hJet_eta[0], w);
349 StH_simpleJet2_eta->Fill(iEvent.hJet_eta[1], w);
350 //vertex mas and btag sorted by btag
351 if( iEvent.hJet_csv[0] > iEvent.hJet_csv[1] ){
352 StH_simpleJet1_bTag->Fill(iEvent.hJet_csv[0], w);
353 StH_simpleJet2_bTag->Fill(iEvent.hJet_csv[1], w);
354 StH_simpleJet1_vtxMass->Fill(iEvent.hJet_vtxMass[0], w);
355 }
356 else{
357 StH_simpleJet1_bTag->Fill(iEvent.hJet_csv[1], w);
358 StH_simpleJet2_bTag->Fill(iEvent.hJet_csv[0], w);
359 StH_simpleJet2_vtxMass->Fill(iEvent.hJet_vtxMass[1], w);
360 }
361 //here I fill both jets in one histo
362 StH_simpleJets_bTagSum->Fill(iEvent.hJet_csv[0]+iEvent.hJet_csv[1], w);
363 StH_simpleJets_bTag->Fill(iEvent.hJet_csv[0], w);
364 StH_simpleJets_bTag->Fill(iEvent.hJet_csv[1], w);
365 StH_simpleJets_vtxMass->Fill(iEvent.hJet_vtxMass[0], w);
366 StH_simpleJets_vtxMass->Fill(iEvent.hJet_vtxMass[1], w);
367
368 StH_HMass->Fill(iEvent.H_mass, w);
369 StH_HPt->Fill(iEvent.H_pt, w);
370 StH_HdR->Fill(iEvent.H_dR, w);
371 StH_HdPhi->Fill(TMath::Abs(iEvent.H_dPhi), w);
372 StH_HdEta->Fill(iEvent.H_dEta, w);
373
374 StH_HHel->Fill(iEvent.hJet_cosTheta[0], w);
375 StH_HPullAngle->Fill(iEvent.deltaPullAngle, w);
376
377 bool debug_ = false;
378 TLorentzVector higgs, hJet1, hJet2, addJet;
379 std::vector<TLorentzVector> addJets;
380 hJet1.SetPtEtaPhiE( iEvent.hJet_pt[0], iEvent.hJet_eta[0], iEvent.hJet_phi[0], iEvent.hJet_e[0] );
381 hJet2.SetPtEtaPhiE( iEvent.hJet_pt[1], iEvent.hJet_eta[1], iEvent.hJet_phi[1], iEvent.hJet_e[1] );
382 higgs = hJet1 + hJet2;
383 if(debug_){
384 std::cout << "Higgs pt = " << higgs.Pt() << " eta = " << higgs.Eta() << " phi = " << higgs.Phi() << " energy = " << higgs.M() << std::endl;
385 std::cout << "Higgs pt = " << iEvent.H_pt << " eta = " << iEvent.H_eta << " phi = " << iEvent.H_phi << " energy = " << iEvent.H_mass << std::endl;
386 std::cout << "Higgs jet 1 pt = " << iEvent.hJet_pt[0] << " eta = " << iEvent.hJet_eta[0] << " phi = " << iEvent.hJet_phi[0] << " energy = " << iEvent.hJet_e[0] << std::endl;
387 std::cout << "Higgs jet 2 pt = " << iEvent.hJet_pt[1] << " eta = " << iEvent.hJet_eta[1] << " phi = " << iEvent.hJet_phi[1] << " energy = " << iEvent.hJet_e[1] << std::endl;
388 }
389 double dRmin = 1e10;
390 unsigned int dRmin_idx = 100;
391 unsigned int addj = 0;
392 for(unsigned int j = 0; j < iEvent.naJets; ++j ){
393 if( iEvent.aJet_pt[j] <= 20. || TMath::Abs(iEvent.aJet_eta[j]) >= 2.4 ) continue; // condition of CountAddJets()
394 if(debug_)
395 std::cout << "[j : " << j << "] pt = " << iEvent.aJet_pt[j] << " eta = " << iEvent.aJet_eta[j] << " phi = " << iEvent.aJet_phi[j] << " energy = " << iEvent.aJet_e[j] << std::endl;
396 addJet.SetPtEtaPhiE(iEvent.aJet_pt[j],iEvent.aJet_eta[j],iEvent.aJet_phi[j],iEvent.aJet_e[j]);
397 if(higgs.DeltaR(addJet) < dRmin) dRmin_idx = addj;
398 addJets.push_back( addJet );
399 addj++;
400 }
401 if(debug_){
402 std::cout << "Count add jets = " << iEvent.CountAddJets() << " vector size = " << addJets.size() << std::endl;
403 std::cout << "index = " << dRmin_idx << std::endl;
404 for(unsigned int j=0; j<addJets.size();++j) std::cout << "[j : " << j << "] pt = " << addJets[j].Pt() << " eta = " << addJets[j].Eta() << " phi = " << addJets[j].Phi() << " energy = " << addJets[j].Energy() << std::endl;
405 }
406 if(iEvent.CountAddJets() > 0 ){
407 StH_HdR_addJets->Fill(higgs.DeltaR(addJets.at(dRmin_idx)), w);
408 StH_HdR_leading_addJets->Fill(hJet1.DeltaR(addJets.at(dRmin_idx)), w);
409 StH_HdR_following_addJets->Fill(hJet2.DeltaR(addJets.at(dRmin_idx)), w);
410 StH_HdRnorm_addJets->Fill(higgs.DeltaR(addJets.at(dRmin_idx)) / iEvent.H_dR, w);
411 if( iEvent.aJet_csv[dRmin_idx] > 0.8 || hJet1.DeltaR(addJets.at(dRmin_idx)) < 2 )
412 StH_HMass_leading_addJets->Fill((higgs+addJets.at(dRmin_idx)).M(), w);
413 else StH_HMass_leading_addJets->Fill(higgs.M(), w);
414 if( iEvent.aJet_csv[dRmin_idx] > 0.8 || hJet2.DeltaR(addJets.at(dRmin_idx)) < 2 )
415 StH_HMass_following_addJets->Fill((higgs+addJets.at(dRmin_idx)).M(), w);
416 else StH_HMass_following_addJets->Fill(higgs.M(), w);
417 if( iEvent.aJet_csv[dRmin_idx] > 0.8 || hJet2.DeltaR(addJets.at(dRmin_idx)) < 2 || hJet1.DeltaR(addJets.at(dRmin_idx)) < 2 )
418 StH_HMass_both_addJets->Fill((higgs+addJets.at(dRmin_idx)).M(), w);
419 else StH_HMass_both_addJets->Fill(higgs.M(), w);
420 if( iEvent.aJet_csv[dRmin_idx] > 0.8 || higgs.DeltaR(addJets.at(dRmin_idx)) < 2 )
421 StH_HMass_addJets->Fill((higgs+addJets.at(dRmin_idx)).M(), w);
422 else StH_HMass_addJets->Fill(higgs.M(), w);
423 StH_addJet1_pt->Fill(iEvent.aJet_pt[dRmin_idx], w);
424 StH_addJet1_phi->Fill(iEvent.aJet_phi[dRmin_idx], w);
425 StH_addJet1_eta->Fill(iEvent.aJet_eta[dRmin_idx], w);
426 StH_addJet1_bTag->Fill(iEvent.aJet_csv[dRmin_idx], w);
427 StH_addJet1_vtxMass->Fill(iEvent.aJet_vtxMass[dRmin_idx], w);
428 StH_addJet1_nconstituents->Fill( iEvent.aJet_nconstituents[dRmin_idx], w);
429 }
430 else StH_HMass_addJets->Fill(higgs.M(), w);
431
432 //idea from subjets
433 StH_massDrop->Fill(TMath::Max(hJet1.M(),hJet2.M())/higgs.M() , w);
434 StH_y12->Fill( TMath::Power(hJet1.DeltaR(hJet2),2) * TMath::Min( TMath::Power(hJet1.Pt(),2),TMath::Power(hJet2.Pt(),2) )/ TMath::Power(higgs.M(),2) , w);
435
436 iType = (VType)iEvent.Vtype;
437 if( iType == Zmm || iType == Zee || iType == Znn ){
438 StH_ZMass->Fill(iEvent.V_mass, w);
439 StH_ZPt->Fill(iEvent.V_pt, w);
440 StH_ZH_dPhi->Fill(iEvent. HVdPhi, w);
441 }
442 else{
443 StH_WMass->Fill(iEvent.V_mass, w);
444 StH_WPt->Fill(iEvent.V_pt, w);
445 StH_WH_dPhi->Fill(iEvent.HVdPhi, w);
446 }
447
448
449 }
450
451 TH1F * StH_nPVs;
452 TH1F * StH_addJets;
453 TH1F * StH_typeImet_et;
454 TH1F * StH_met_et;
455 TH1F * StH_met_sig;
456
457 TH1F * StH_vectorLepton1_pt;
458 TH1F * StH_vectorLepton2_pt;
459 TH1F * StH_vectorLepton1_phi;
460 TH1F * StH_vectorLepton2_phi;
461 TH1F * StH_vectorLepton1_eta;
462 TH1F * StH_vectorLepton2_eta;
463 TH1F * StH_vectorLepton1_pfCombRelIso;
464 TH1F * StH_vectorLepton2_pfCombRelIso;
465 TH1F * StH_vectorLepton1_dxy;
466 TH1F * StH_vectorLepton2_dxy;
467 TH1F * StH_vectorLepton1_dz;
468 TH1F * StH_vectorLepton2_dz;
469
470 TH1F * StH_simpleJet1_pt;
471 TH1F * StH_simpleJet2_pt;
472 TH1F * StH_simpleJet1_phi;
473 TH1F * StH_simpleJet2_phi;
474 TH1F * StH_simpleJet1_eta;
475 TH1F * StH_simpleJet2_eta;
476 TH1F * StH_simpleJet1_bTag;
477 TH1F * StH_simpleJet2_bTag;
478 TH1F * StH_simpleJet1_vtxMass;
479 TH1F * StH_simpleJet2_vtxMass;
480
481 TH1F * StH_simpleJets_bTag;
482 TH1F * StH_simpleJets_bTagSum;
483 TH1F * StH_simpleJets_vtxMass;
484
485 TH1F * StH_addJet1_pt;
486 TH1F * StH_addJet1_phi;
487 TH1F * StH_addJet1_eta;
488 TH1F * StH_addJet1_bTag;
489 TH1F * StH_addJet1_vtxMass;
490 TH1F * StH_addJet1_nconstituents;
491
492 TH1F * StH_HMass;
493 TH1F * StH_HPt;
494 TH1F * StH_HdR;
495 TH1F * StH_HdPhi;
496 TH1F * StH_HdEta;
497 TH1F * StH_HHel;
498 TH1F * StH_HPullAngle;
499 TH1F * StH_HdR_addJets;
500 TH1F * StH_HdR_leading_addJets;
501 TH1F * StH_HdR_following_addJets;
502
503 TH1F * StH_HdRnorm_addJets;
504 TH1F * StH_HMass_addJets;
505 TH1F * StH_HMass_leading_addJets;
506 TH1F * StH_HMass_following_addJets;
507 TH1F * StH_HMass_both_addJets;
508
509 TH1F * StH_massDrop;
510 TH1F * StH_y12;
511
512 TH1F * StH_WMass;
513 TH1F * StH_WPt;
514 TH1F * StH_WH_dPhi;
515
516 TH1F * StH_ZMass;
517 TH1F * StH_ZPt;
518 TH1F * StH_ZH_dPhi;
519
520 private:
521
522 Int_t bin_btag;
523 Double_t min_btag;
524 Double_t max_btag;
525
526 Int_t bin_SVmass;
527 Double_t min_SVmass;
528 Double_t max_SVmass;
529
530 Int_t bin_eta;
531 Double_t min_eta;
532 Double_t max_eta;
533
534 Int_t bin_phi;
535 Double_t min_phi;
536 Double_t max_phi;
537
538 Int_t bin_deltaEta;
539 Double_t min_deltaEta;
540 Double_t max_deltaEta;
541
542 Int_t bin_deltaPhi;
543 Double_t min_deltaPhi;
544 Double_t max_deltaPhi;
545
546 Int_t bin_deltaR;
547 Double_t min_deltaR;
548 Double_t max_deltaR;
549
550 Int_t bin_mass;
551 Double_t min_mass;
552 Double_t max_mass;
553
554 Int_t bin_pt;
555 Double_t min_pt;
556 Double_t max_pt;
557
558 Int_t bin_npvs;
559 Double_t min_npvs;
560 Double_t max_npvs;
561
562 Int_t bin_addJets;
563 Double_t min_addJets;
564 Double_t max_addJets;
565
566 Int_t bin_hel;
567 Double_t min_hel;
568 Double_t max_hel;
569
570 Int_t bin_iso;
571 Double_t min_iso;
572 Double_t max_iso;
573
574 Int_t bin_dxy;
575 Double_t min_dxy;
576 Double_t max_dxy;
577
578 };
579
580
581
582 class SystematicsHistos : public Histos {
583
584 public:
585
586 virtual void book(TFile &f, std::string suffix) {
587
588 TDirectory *subDir;
589 if( ! f.GetDirectory(suffix.c_str()) )
590 subDir = f.mkdir(suffix.c_str());
591 else
592 subDir = f.GetDirectory(suffix.c_str());
593 subDir->cd();
594
595 bin_mass = 30;
596 min_mass = 0;
597 max_mass = 300;
598
599 bin_SVmass = 50;
600 min_SVmass = 0;
601 max_SVmass = 10;
602
603 bin_pt = 50;
604 min_pt = 0;
605 max_pt = 500;
606
607 bin_hel = 10;
608 min_hel = 0;
609 max_hel = 1;
610
611 bin_dxy = 20;
612 min_dxy = -0.2;
613 max_dxy = 0.2;
614
615 bin_iso = 20;
616 min_iso = 0;
617 max_iso = 0.5;
618
619 bin_btag = 20;
620 min_btag = 0;
621 max_btag = 1;
622
623 bin_npvs = 30;
624 min_npvs = 0;
625 max_npvs = 30;
626
627 bin_addJets = 10;
628 min_addJets = 0;
629 max_addJets = 10;
630
631 bin_eta = bin_phi = 20;
632 min_eta = min_phi = -5;
633 max_eta = max_phi = 5;
634
635 bin_deltaR = bin_deltaPhi = bin_deltaEta = 20;
636 min_deltaR = min_deltaPhi = min_deltaEta = 0;
637 max_deltaR = max_deltaPhi = max_deltaEta = 5;
638
639 //Candidates
640
641 SystUPH_addJets = new TH1F(("addJets"+suffix+"SystUP").c_str(),("Number of additional AK5 ("+suffix+"SystUP"+")").c_str(), bin_addJets, min_addJets, max_addJets );
642 SystUPH_simpleJet1_pt = new TH1F(("SimpleJet1_pt"+suffix+"SystUP").c_str(),("Simple Jet1 pt ("+suffix+"SystUP"+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
643 SystUPH_simpleJet2_pt = new TH1F(("SimpleJet2_pt"+suffix+"SystUP").c_str(),("Simple Jet2 pt ("+suffix+"SystUP"+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
644 SystUPH_HMass = new TH1F(("HiggsMass"+suffix+"SystUP").c_str(),(" Higgs Mass ("+suffix+"SystUP"+")").c_str(), bin_mass, min_mass, max_mass );
645 SystUPH_HPt = new TH1F(("HiggsPt"+suffix+"SystUP").c_str(),(" Higgs Pt ("+suffix+"SystUP"+")").c_str(), bin_pt, min_pt, max_pt );
646 SystUPH_ZH_dPhi = new TH1F(("ZH_dPhi"+suffix+"SystUP").c_str(),(" ZH delta Phi ("+suffix+"SystUP"+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
647 SystUPH_HdR_addJets = new TH1F(("HdR_addJets"+suffix+"SystUP").c_str(),("Higgs deltaR addJets ("+suffix+"SystUP"+")").c_str(), bin_deltaR, min_deltaR, max_deltaR );
648
649 SystJERUPH_simpleJet1_pt = new TH1F(("SimpleJet1_pt"+suffix+"SystJERUP").c_str(),("Simple Jet1 pt ("+suffix+"SystJERUP"+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
650 SystJERUPH_simpleJet2_pt = new TH1F(("SimpleJet2_pt"+suffix+"SystJERUP").c_str(),("Simple Jet2 pt ("+suffix+"SystJERUP"+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
651 SystJERUPH_HMass = new TH1F(("HiggsMass"+suffix+"SystJERUP").c_str(),(" Higgs Mass ("+suffix+"SystJERUP"+")").c_str(), bin_mass, min_mass, max_mass );
652 SystJERUPH_HPt = new TH1F(("HiggsPt"+suffix+"SystJERUP").c_str(),(" Higgs Pt ("+suffix+"SystJERUP"+")").c_str(), bin_pt, min_pt, max_pt );
653 SystJERUPH_ZH_dPhi = new TH1F(("ZH_dPhi"+suffix+"SystJERUP").c_str(),(" ZH delta Phi ("+suffix+"SystJERUP"+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
654
655 SystUPH_simpleJet1_bTag = new TH1F(("SimpleJet1_bTag"+suffix+"SystUP").c_str(),("Simple Jet1 bTag ("+suffix+"SystUP"+")").c_str(), bin_btag, min_btag, max_btag );
656 SystUPH_simpleJet2_bTag = new TH1F(("SimpleJet2_bTag"+suffix+"SystUP").c_str(),("Simple Jet2 bTag ("+suffix+"SystUP"+")").c_str(), bin_btag, min_btag, max_btag );
657 SystUPH_simpleJets_bTag = new TH1F(("SimpleJets_bTag"+suffix+"SystUP").c_str(),("Simple Jets bTag ("+suffix+"SystUP"+")").c_str(), bin_btag, min_btag, max_btag );
658 SystFUPH_simpleJet1_bTag = new TH1F(("SimpleJet1_bTag"+suffix+"SystFUP").c_str(),("Simple Jet1 bTag ("+suffix+"SystFUP"+")").c_str(), bin_btag, min_btag, max_btag );
659 SystFUPH_simpleJet2_bTag = new TH1F(("SimpleJet2_bTag"+suffix+"SystFUP").c_str(),("Simple Jet2 bTag ("+suffix+"SystFUP"+")").c_str(), bin_btag, min_btag, max_btag );
660 SystFUPH_simpleJets_bTag = new TH1F(("SimpleJets_bTag"+suffix+"SystFUP").c_str(),("Simple Jets bTag ("+suffix+"SystFUP"+")").c_str(), bin_btag, min_btag, max_btag );
661
662 SystDOWNH_addJets = new TH1F(("addJets"+suffix+"SystDOWN").c_str(),("Number of additional AK5 ("+suffix+"SystDOWN"+")").c_str(), bin_addJets, min_addJets, max_addJets );
663 SystDOWNH_simpleJet1_pt = new TH1F(("SimpleJet1_pt"+suffix+"SystDOWN").c_str(),("Simple Jet1 pt ("+suffix+"SystDOWN"+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
664 SystDOWNH_simpleJet2_pt = new TH1F(("SimpleJet2_pt"+suffix+"SystDOWN").c_str(),("Simple Jet2 pt ("+suffix+"SystDOWN"+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
665 SystDOWNH_HMass = new TH1F(("HiggsMass"+suffix+"SystDOWN").c_str(),(" Higgs Mass ("+suffix+"SystDOWN"+")").c_str(), bin_mass, min_mass, max_mass );
666 SystDOWNH_HPt = new TH1F(("HiggsPt"+suffix+"SystDOWN").c_str(),(" Higgs Pt ("+suffix+"SystDOWN"+")").c_str(), bin_pt, min_pt, max_pt );
667 SystDOWNH_ZH_dPhi = new TH1F(("ZH_dPhi"+suffix+"SystDOWN").c_str(),(" ZH delta Phi ("+suffix+"SystDOWN"+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
668 SystDOWNH_HdR_addJets = new TH1F(("HdR_addJets"+suffix+"SystDWON").c_str(),("Higgs deltaR addJets ("+suffix+"SystDOWN"+")").c_str(), bin_deltaR, min_deltaR, max_deltaR );
669
670 SystJERDOWNH_simpleJet1_pt = new TH1F(("SimpleJet1_pt"+suffix+"SystJERDOWN").c_str(),("Simple Jet1 pt ("+suffix+"SystJERDOWN"+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
671 SystJERDOWNH_simpleJet2_pt = new TH1F(("SimpleJet2_pt"+suffix+"SystJERDOWN").c_str(),("Simple Jet2 pt ("+suffix+"SystJERDOWN"+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
672 SystJERDOWNH_HMass = new TH1F(("HiggsMass"+suffix+"SystJERDOWN").c_str(),(" Higgs Mass ("+suffix+"SystJERDOWN"+")").c_str(), bin_mass, min_mass, max_mass );
673 SystJERDOWNH_HPt = new TH1F(("HiggsPt"+suffix+"SystJERDOWN").c_str(),(" Higgs Pt ("+suffix+"SystJERDOWN"+")").c_str(), bin_pt, min_pt, max_pt );
674 SystJERDOWNH_ZH_dPhi = new TH1F(("ZH_dPhi"+suffix+"SystJERDOWN").c_str(),(" ZH delta Phi ("+suffix+"SystJERDOWN"+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
675
676 SystDOWNH_simpleJet1_bTag = new TH1F(("SimpleJet1_bTag"+suffix+"SystDOWN").c_str(),("Simple Jet1 bTag ("+suffix+"SystDOWN"+")").c_str(), bin_btag, min_btag, max_btag );
677 SystDOWNH_simpleJet2_bTag = new TH1F(("SimpleJet2_bTag"+suffix+"SystDOWN").c_str(),("Simple Jet2 bTag ("+suffix+"SystDOWN"+")").c_str(), bin_btag, min_btag, max_btag );
678 SystDOWNH_simpleJets_bTag = new TH1F(("SimpleJets_bTag"+suffix+"SystDOWN").c_str(),("Simple Jets bTag ("+suffix+"SystDOWN"+")").c_str(), bin_btag, min_btag, max_btag );
679 SystFDOWNH_simpleJet1_bTag = new TH1F(("SimpleJet1_bTag"+suffix+"SystFDOWN").c_str(),("Simple Jet1 bTag ("+suffix+"SystFDOWN"+")").c_str(), bin_btag, min_btag, max_btag );
680 SystFDOWNH_simpleJet2_bTag = new TH1F(("SimpleJet2_bTag"+suffix+"SystFDOWN").c_str(),("Simple Jet2 bTag ("+suffix+"SystFDOWN"+")").c_str(), bin_btag, min_btag, max_btag );
681 SystFDOWNH_simpleJets_bTag = new TH1F(("SimpleJets_bTag"+suffix+"SystFDOWN").c_str(),("Simple Jets bTag ("+suffix+"SystFDOWN"+")").c_str(), bin_btag, min_btag, max_btag );
682
683 }
684
685 virtual void fill(ntupleReader &iEvent,float w) {
686
687 TLorentzVector higgs, addJet;
688
689 //UPSCALE
690 SystUPH_addJets->Fill(iEvent.CountAddJets_jec(+1), w);
691 SystUPH_simpleJet1_pt->Fill(iEvent.hJet_pt_jecUP(0), w);
692 SystUPH_simpleJet2_pt->Fill(iEvent.hJet_pt_jecUP(1), w);
693 SystJERUPH_simpleJet1_pt->Fill(iEvent.hJet_jer(0,+1).Pt(), w);
694 SystJERUPH_simpleJet2_pt->Fill(iEvent.hJet_jer(1,+1).Pt(), w);
695
696 //btag sorted by btag
697 if( iEvent.hJet_csv_cUP(0) > iEvent.hJet_csv_cUP(1) ){
698 SystUPH_simpleJet1_bTag->Fill(iEvent.hJet_csv_cUP(0), w);
699 SystUPH_simpleJet2_bTag->Fill(iEvent.hJet_csv_cUP(1), w);
700 }
701 else{
702 SystUPH_simpleJet1_bTag->Fill(iEvent.hJet_csv_cUP(1), w);
703 SystUPH_simpleJet2_bTag->Fill(iEvent.hJet_csv_cUP(0), w);
704 }
705 if( iEvent.hJet_csv_cFUP(0) > iEvent.hJet_csv_cFUP(1) ){
706 SystFUPH_simpleJet1_bTag->Fill(iEvent.hJet_csv_cFUP(0), w);
707 SystFUPH_simpleJet2_bTag->Fill(iEvent.hJet_csv_cFUP(1), w);
708 }
709 else{
710 SystFUPH_simpleJet1_bTag->Fill(iEvent.hJet_csv_cFUP(1), w);
711 SystFUPH_simpleJet2_bTag->Fill(iEvent.hJet_csv_cFUP(0), w);
712 }
713
714 //here I fill both jets in one histo
715 SystUPH_simpleJets_bTag->Fill(iEvent.hJet_csv_cUP(0), w);
716 SystUPH_simpleJets_bTag->Fill(iEvent.hJet_csv_cUP(1), w);
717 SystFUPH_simpleJets_bTag->Fill(iEvent.hJet_csv_cFUP(0), w);
718 SystFUPH_simpleJets_bTag->Fill(iEvent.hJet_csv_cFUP(1), w);
719
720 SystUPH_HMass->Fill(iEvent.H_jecUP().M(), w);
721 SystUPH_HPt->Fill(iEvent.H_jecUP().Pt(), w);
722 SystUPH_ZH_dPhi->Fill( TMath::Abs(iEvent.H_jecUP().DeltaPhi( iEvent.VectorBoson() ) ), w);
723
724 SystJERUPH_HMass->Fill(iEvent.H_jer(+1).M(), w);
725 SystJERUPH_HPt->Fill(iEvent.H_jer(+1).Pt(), w);
726 SystJERUPH_ZH_dPhi->Fill( TMath::Abs(iEvent.H_jer(+1).DeltaPhi( iEvent.VectorBoson() ) ), w);
727
728 higgs=iEvent.H_jecUP();
729 addJet.SetPtEtaPhiE(iEvent.aJet_pt_jecUP(0),iEvent.aJet_eta[0],iEvent.aJet_phi[0],iEvent.aJet_e[0]);
730 SystUPH_HdR_addJets->Fill(higgs.DeltaR(addJet), w);
731
732 //DOWNSCALE
733 SystDOWNH_addJets->Fill(iEvent.CountAddJets_jec(-1), w);
734 SystDOWNH_simpleJet1_pt->Fill(iEvent.hJet_pt_jecDOWN(0), w);
735 SystDOWNH_simpleJet2_pt->Fill(iEvent.hJet_pt_jecDOWN(1), w);
736 SystJERDOWNH_simpleJet1_pt->Fill(iEvent.hJet_jer(0,-1).Pt(), w);
737 SystJERDOWNH_simpleJet2_pt->Fill(iEvent.hJet_jer(1,-1).Pt(), w);
738
739 //btag sorted by btag
740 if( iEvent.hJet_csv_cDOWN(0) > iEvent.hJet_csv_cDOWN(1) ){
741 SystDOWNH_simpleJet1_bTag->Fill(iEvent.hJet_csv_cDOWN(0), w);
742 SystDOWNH_simpleJet2_bTag->Fill(iEvent.hJet_csv_cDOWN(1), w);
743 }
744 else{
745 SystDOWNH_simpleJet1_bTag->Fill(iEvent.hJet_csv_cDOWN(1), w);
746 SystDOWNH_simpleJet2_bTag->Fill(iEvent.hJet_csv_cDOWN(0), w);
747 }
748 if( iEvent.hJet_csv_cFDOWN(0) > iEvent.hJet_csv_cFDOWN(1) ){
749 SystFDOWNH_simpleJet1_bTag->Fill(iEvent.hJet_csv_cFDOWN(0), w);
750 SystFDOWNH_simpleJet2_bTag->Fill(iEvent.hJet_csv_cFDOWN(1), w);
751 }
752 else{
753 SystFDOWNH_simpleJet1_bTag->Fill(iEvent.hJet_csv_cFDOWN(1), w);
754 SystFDOWNH_simpleJet2_bTag->Fill(iEvent.hJet_csv_cFDOWN(0), w);
755 }
756
757 //here I fill both jets in one histo
758 SystDOWNH_simpleJets_bTag->Fill(iEvent.hJet_csv_cDOWN(0), w);
759 SystDOWNH_simpleJets_bTag->Fill(iEvent.hJet_csv_cDOWN(1), w);
760 SystFDOWNH_simpleJets_bTag->Fill(iEvent.hJet_csv_cFDOWN(0), w);
761 SystFDOWNH_simpleJets_bTag->Fill(iEvent.hJet_csv_cFDOWN(1), w);
762 SystDOWNH_HMass->Fill(iEvent.H_jecDOWN().M(), w);
763 SystDOWNH_HPt->Fill(iEvent.H_jecDOWN().Pt(), w);
764 SystDOWNH_ZH_dPhi->Fill( TMath::Abs( iEvent.H_jecDOWN().DeltaPhi( iEvent.VectorBoson() ) ), w);
765
766 SystJERDOWNH_HMass->Fill(iEvent.H_jer(-1).M(), w);
767 SystJERDOWNH_HPt->Fill(iEvent.H_jer(-1).Pt(), w);
768 SystJERDOWNH_ZH_dPhi->Fill( TMath::Abs(iEvent.H_jer(-1).DeltaPhi( iEvent.VectorBoson() ) ), w);
769
770 higgs=iEvent.H_jecDOWN();
771 addJet.SetPtEtaPhiE(iEvent.aJet_pt_jecDOWN(0),iEvent.aJet_eta[0],iEvent.aJet_phi[0],iEvent.aJet_e[0]);
772 SystDOWNH_HdR_addJets->Fill(higgs.DeltaR(addJet), w);
773
774 }
775
776 TH1F * SystUPH_addJets;
777 TH1F * SystUPH_simpleJet1_pt;
778 TH1F * SystUPH_simpleJet2_pt;
779 TH1F * SystUPH_HMass;
780 TH1F * SystUPH_HPt;
781 TH1F * SystUPH_ZH_dPhi;
782 TH1F * SystUPH_HdR_addJets;
783 TH1F * SystUPH_simpleJet1_bTag;
784 TH1F * SystUPH_simpleJet2_bTag;
785 TH1F * SystUPH_simpleJets_bTag;
786 TH1F * SystFUPH_simpleJet1_bTag;
787 TH1F * SystFUPH_simpleJet2_bTag;
788 TH1F * SystFUPH_simpleJets_bTag;
789 TH1F * SystJERUPH_simpleJet1_pt;
790 TH1F * SystJERUPH_simpleJet2_pt;
791 TH1F * SystJERUPH_HMass;
792 TH1F * SystJERUPH_HPt;
793 TH1F * SystJERUPH_ZH_dPhi;
794
795 TH1F * SystDOWNH_addJets;
796 TH1F * SystDOWNH_simpleJet1_pt;
797 TH1F * SystDOWNH_simpleJet2_pt;
798 TH1F * SystDOWNH_HMass;
799 TH1F * SystDOWNH_HPt;
800 TH1F * SystDOWNH_ZH_dPhi;
801 TH1F * SystDOWNH_HdR_addJets;
802 TH1F * SystDOWNH_simpleJet1_bTag;
803 TH1F * SystDOWNH_simpleJet2_bTag;
804 TH1F * SystDOWNH_simpleJets_bTag;
805 TH1F * SystFDOWNH_simpleJet1_bTag;
806 TH1F * SystFDOWNH_simpleJet2_bTag;
807 TH1F * SystFDOWNH_simpleJets_bTag;
808 TH1F * SystJERDOWNH_simpleJet1_pt;
809 TH1F * SystJERDOWNH_simpleJet2_pt;
810 TH1F * SystJERDOWNH_HMass;
811 TH1F * SystJERDOWNH_HPt;
812 TH1F * SystJERDOWNH_ZH_dPhi;
813
814
815 private:
816
817 Int_t bin_btag;
818 Double_t min_btag;
819 Double_t max_btag;
820
821 Int_t bin_SVmass;
822 Double_t min_SVmass;
823 Double_t max_SVmass;
824
825 Int_t bin_eta;
826 Double_t min_eta;
827 Double_t max_eta;
828
829 Int_t bin_phi;
830 Double_t min_phi;
831 Double_t max_phi;
832
833 Int_t bin_deltaEta;
834 Double_t min_deltaEta;
835 Double_t max_deltaEta;
836
837 Int_t bin_deltaPhi;
838 Double_t min_deltaPhi;
839 Double_t max_deltaPhi;
840
841 Int_t bin_deltaR;
842 Double_t min_deltaR;
843 Double_t max_deltaR;
844
845 Int_t bin_mass;
846 Double_t min_mass;
847 Double_t max_mass;
848
849 Int_t bin_pt;
850 Double_t min_pt;
851 Double_t max_pt;
852
853 Int_t bin_npvs;
854 Double_t min_npvs;
855 Double_t max_npvs;
856
857 Int_t bin_addJets;
858 Double_t min_addJets;
859 Double_t max_addJets;
860
861 Int_t bin_hel;
862 Double_t min_hel;
863 Double_t max_hel;
864
865 Int_t bin_iso;
866 Double_t min_iso;
867 Double_t max_iso;
868
869 Int_t bin_dxy;
870 Double_t min_dxy;
871 Double_t max_dxy;
872
873 };
874
875
876 class BDTHistos : public Histos {
877
878 public:
879
880 virtual void book(TFile &f, std::string suffix) {
881
882 TDirectory *subDir;
883 if( ! f.GetDirectory(suffix.c_str()) )
884 subDir = f.mkdir(suffix.c_str());
885 else
886 subDir = f.GetDirectory(suffix.c_str());
887 subDir->cd();
888
889 bin_BDT = 100;
890 min_BDT = -1;
891 max_BDT = 1;
892
893 BDTH_BDT = new TH1F(("BDT"+suffix).c_str(),("BDT output ("+suffix+")").c_str(), bin_BDT, min_BDT, max_BDT );
894
895 }
896
897 virtual void fill(ntupleReader &iEvent,float w) {
898
899 // BDTH_BDT->Fill( iEvent.MVA, w );
900 BDTH_BDT->Fill( 1 , w );
901
902 }
903
904 TH1F * BDTH_BDT;
905
906 private:
907
908 Int_t bin_BDT;
909 Double_t min_BDT;
910 Double_t max_BDT;
911
912 };
913
914
915 class MVAHistos : public Histos {
916
917 public:
918 MVAHistos( const std::string &channel_):
919 channel(channel_) {}
920
921 virtual void book(TFile &f, std::string suffix) {
922
923 suffix+=channel;
924 // std::clog << "Start booking" << std::endl;
925
926 TDirectory *subDir;
927 if( ! f.GetDirectory(suffix.c_str()) )
928 subDir = f.mkdir(suffix.c_str());
929 else
930 subDir = f.GetDirectory(suffix.c_str());
931 subDir->cd();
932
933 bin_BDT = 100;
934 min_BDT = -0.8;
935 max_BDT = 0.8;
936
937 MVAH_BDT = new TH1F(("MVA"+suffix).c_str(),("MVA output ("+suffix+")").c_str(), bin_BDT, min_BDT, max_BDT );
938
939 }
940
941 virtual void fill(ntupleReader &iEvent,float w) {
942
943 TMVA::Reader * reader = new TMVA::Reader();
944
945 float bbMass,bbPt,btag1,btag2,NaddJet,DeltaRbb,helicity,DeltaPhiVH,bPt1,bPt2,VMass,VPt,pullAngle,DeltaEtabb,deltaPhipfMETjet,pfMET,pfMETsig;
946 std::string analysis("Zee");
947
948 if(analysis == "Zmm"){
949 reader->AddVariable( "bbMass", &bbMass );
950 reader->AddVariable( "VMass", &VMass );
951 reader->AddVariable( "bbPt", &bbPt );
952 reader->AddVariable( "VPt", &VPt );
953 reader->AddVariable( "btag1", &btag1 );
954 reader->AddVariable( "btag2", &btag2 );
955 reader->AddVariable( "DeltaPhiVH", &DeltaPhiVH);
956 reader->AddVariable( "DeltaEtabb", &DeltaEtabb);
957 }
958 else if(analysis == "Zee"){
959 reader->AddVariable( "H.mass", &bbMass );
960 reader->AddVariable( "H.pt", &bbPt );
961 reader->AddVariable( "H.dEta", &DeltaEtabb);
962 reader->AddVariable( "HVdPhi", &DeltaPhiVH);
963 reader->AddVariable( "V.mass", &VMass );
964 reader->AddVariable( "V.pt", &VPt );
965 reader->AddVariable( "hJet_csv[0]", &btag1 );
966 reader->AddVariable( "hJet_csv[1]", &btag2 );
967 }
968 else if(analysis == "Znn"){
969 reader->AddVariable( "bbMass", &bbMass );
970 reader->AddVariable( "bbPt", &bbPt );
971 reader->AddVariable( "pfMET", &pfMET );
972 reader->AddVariable( "btag1", &btag1 );
973 reader->AddVariable( "btag2", &btag2 );
974 reader->AddVariable( "DeltaPhiVH", &DeltaPhiVH);
975 }
976 else if(analysis == "We"){
977 reader->AddVariable( "bbMass", &bbMass );
978 reader->AddVariable( "bbPt", &bbPt );
979 reader->AddVariable( "VPt", &VPt );
980 reader->AddVariable( "btag1", &btag1 );
981 reader->AddVariable( "btag2", &btag2 );
982 reader->AddVariable( "DeltaPhiVH", &DeltaPhiVH);
983 reader->AddVariable( "DeltaEtabb", &DeltaEtabb);
984 }
985 else if(analysis == "Wm"){
986 reader->AddVariable( "bbMass", &bbMass );
987 reader->AddVariable( "bbPt", &bbPt );
988 reader->AddVariable( "VPt", &VPt );
989 reader->AddVariable( "btag1", &btag1 );
990 reader->AddVariable( "btag2", &btag2 );
991 reader->AddVariable( "DeltaPhiVH", &DeltaPhiVH);
992 reader->AddVariable( "DeltaEtabb", &DeltaEtabb);
993 }
994
995 // --- Book the MVA methods
996
997 std::vector<std::string> methods;
998 methods.push_back("BDT");
999 TString dir = "weights/";
1000 TString prefix = "MVA";
1001 // std::clog << "Booking MVA method..." << std::endl;
1002 for (size_t it = 0; it < methods.size(); ++it) {
1003 TString methodName = methods.at(it)+ " method";
1004 TString weightfile = dir + prefix + "_" + methods.at(it) + "_" + channel + TString(".weights.xml");
1005 reader->BookMVA( methodName, weightfile );
1006 }
1007
1008 bbMass = iEvent.H_mass;
1009 bbPt = iEvent.H_pt;
1010 btag1 = iEvent.hJet_csv[0];
1011 btag2 = iEvent.hJet_csv[1];
1012 NaddJet = iEvent.naJets; // FIX ME
1013 DeltaRbb = iEvent.H_dR;
1014 helicity = iEvent.hJet_cosTheta[0];
1015 DeltaPhiVH = iEvent.HVdPhi;
1016 bPt1 = iEvent.hJet_pt[0];
1017 bPt2 = iEvent.hJet_pt[1];
1018 VMass = iEvent.V_mass;
1019 VPt = iEvent.V_pt;
1020 pullAngle = iEvent.deltaPullAngle;
1021 DeltaEtabb = iEvent.H_dEta;
1022 deltaPhipfMETjet = iEvent.minDeltaPhijetMET;
1023 pfMET = iEvent.MET_et;
1024 pfMETsig = iEvent.MET_sig;
1025
1026 MVAH_BDT->Fill( reader->EvaluateMVA( "BDT method" ) );
1027
1028 }
1029
1030 TH1F * MVAH_BDT;
1031
1032 private:
1033
1034 const std::string channel;
1035 Int_t bin_BDT;
1036 Double_t min_BDT;
1037 Double_t max_BDT;
1038
1039 };
1040
1041
1042
1043 class IVFHistos : public Histos {
1044
1045 public:
1046
1047 virtual void book(TFile &f, std::string suffix) {
1048
1049 TDirectory *subDir;
1050 if( ! f.GetDirectory(suffix.c_str()) )
1051 subDir = f.mkdir(suffix.c_str());
1052 else
1053 subDir = f.GetDirectory(suffix.c_str());
1054 subDir->cd();
1055
1056 bin_mass = 30;
1057 min_mass = 0;
1058 max_mass = 300;
1059
1060 bin_SVmass = 50;
1061 min_SVmass = 0;
1062 max_SVmass = 10;
1063
1064 bin_pt = 50;
1065 min_pt = 0;
1066 max_pt = 500;
1067
1068 bin_SVpt = 50;
1069 min_SVpt = 0;
1070 max_SVpt = 100;
1071
1072 bin_hel = 10;
1073 min_hel = 0;
1074 max_hel = 1;
1075
1076 bin_dxy = 20;
1077 min_dxy = -0.2;
1078 max_dxy = 0.2;
1079
1080 bin_iso = 20;
1081 min_iso = 0;
1082 max_iso = 0.5;
1083
1084 bin_btag = 20;
1085 min_btag = 0;
1086 max_btag = 1;
1087
1088 bin_npvs = 30;
1089 min_npvs = 0;
1090 max_npvs = 30;
1091
1092 bin_jets = 10;
1093 min_jets = 0;
1094 max_jets = 10;
1095
1096 bin_eta = bin_phi = 20;
1097 min_eta = min_phi = -5;
1098 max_eta = max_phi = 5;
1099
1100 bin_deltaR = bin_deltaPhi = bin_deltaEta = 8;
1101 min_deltaR = min_deltaPhi = min_deltaEta = 0;
1102 max_deltaR = max_deltaPhi = max_deltaEta = 5;
1103
1104 //Candidates
1105 IVFH_nPVs = new TH1F(("nPVs"+suffix).c_str(),("Number of reconstructed PV ("+suffix+")").c_str(), bin_npvs, min_npvs, max_npvs );
1106 IVFH_nSvs = new TH1F(("nSvs"+suffix).c_str(),("Number of reconstructed PV ("+suffix+")").c_str(), bin_npvs, min_npvs, max_npvs );
1107 IVFH_numOfJets = new TH1F(("NumOfJets"+suffix).c_str(),("Number of AK5 ("+suffix+")").c_str(), bin_jets, min_jets, max_jets );
1108
1109 IVFH_met_et = new TH1F(("MET_et"+suffix).c_str(),("Missing transverse energy ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.5 );
1110 IVFH_met_sig = new TH1F(("MET_sig"+suffix).c_str(),("MET significance("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.1 );
1111
1112 IVFH_vectorLepton1_pt = new TH1F(("vectorLepton1_pt"+suffix).c_str(),("Vector Lepton1 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
1113 IVFH_vectorLepton2_pt = new TH1F(("vectorLepton2_pt"+suffix).c_str(),("Vector Lepton2 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
1114 IVFH_vectorLepton1_phi = new TH1F(("vectorLepton1_phi"+suffix).c_str(),("Vector Lepton1 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
1115 IVFH_vectorLepton2_phi = new TH1F(("vectorLepton2_phi"+suffix).c_str(),("Vector Lepton2 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
1116 IVFH_vectorLepton1_eta = new TH1F(("vectorLepton1_eta"+suffix).c_str(),("Vector Lepton1 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
1117 IVFH_vectorLepton2_eta = new TH1F(("vectorLepton2_eta"+suffix).c_str(),("Vector Lepton2 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
1118 IVFH_vectorLepton1_pfCombRelIso = new TH1F(("vectorLepton1_pfCombRelIso"+suffix).c_str(),("Vector Lepton1 pfCombRelIso ("+suffix+")").c_str(), bin_iso, min_iso, max_iso );
1119 IVFH_vectorLepton2_pfCombRelIso = new TH1F(("vectorLepton2_pfCombRelIso"+suffix).c_str(),("Vector Lepton2 pfCombRelIso ("+suffix+")").c_str(), bin_iso, min_iso, max_iso );
1120 IVFH_vectorLepton1_dxy = new TH1F(("vectorLepton1_dxy"+suffix).c_str(),("Vector Lepton1 dxy ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
1121 IVFH_vectorLepton2_dxy = new TH1F(("vectorLepton2_dxy"+suffix).c_str(),("Vector Lepton2 dxy ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
1122 IVFH_vectorLepton1_dz = new TH1F(("vectorLepton1_dz"+suffix).c_str(),("Vector Lepton1 dz ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
1123 IVFH_vectorLepton2_dz = new TH1F(("vectorLepton2_dz"+suffix).c_str(),("Vector Lepton2 dz ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
1124
1125 IVFH_simpleJet1_pt = new TH1F(("SimpleJet1_pt"+suffix).c_str(),("Simple Jet1 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
1126 IVFH_simpleJet2_pt = new TH1F(("SimpleJet2_pt"+suffix).c_str(),("Simple Jet2 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
1127 IVFH_simpleJet1_phi = new TH1F(("SimpleJet1_phi"+suffix).c_str(),("Simple Jet1 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
1128 IVFH_simpleJet2_phi = new TH1F(("SimpleJet2_phi"+suffix).c_str(),("Simple Jet2 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
1129 IVFH_simpleJet1_eta = new TH1F(("SimpleJet1_eta"+suffix).c_str(),("Simple Jet1 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
1130 IVFH_simpleJet2_eta = new TH1F(("SimpleJet2_eta"+suffix).c_str(),("Simple Jet2 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
1131 IVFH_simpleJet1_bTag = new TH1F(("SimpleJet1_bTag"+suffix).c_str(),("Simple Jet1 bTag ("+suffix+")").c_str(), bin_btag, min_btag, max_btag );
1132 IVFH_simpleJet2_bTag = new TH1F(("SimpleJet2_bTag"+suffix).c_str(),("Simple Jet2 bTag ("+suffix+")").c_str(), bin_btag, min_btag, max_btag );
1133
1134 IVFH_SV1_pt = new TH1F(("SV1_pt"+suffix).c_str(),("SV 1 pt ("+suffix+")").c_str(), bin_SVpt, min_SVpt, max_SVpt );
1135 IVFH_SV2_pt = new TH1F(("SV2_pt"+suffix).c_str(),("SV 2 pt ("+suffix+")").c_str(), bin_SVpt, min_SVpt, max_SVpt );
1136 IVFH_SV1_eta = new TH1F(("SV1_eta"+suffix).c_str(),("SV 1 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
1137 IVFH_SV2_eta = new TH1F(("SV2_eta"+suffix).c_str(),("SV 2 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
1138 IVFH_SV1_phi = new TH1F(("SV1_phi"+suffix).c_str(),("SV 1 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
1139 IVFH_SV2_phi = new TH1F(("SV2_phi"+suffix).c_str(),("SV 2 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
1140 IVFH_SV1_massBCand = new TH1F(("SV1_massBCand"+suffix).c_str(),("SV 1 massBCand ("+suffix+")").c_str(), bin_SVmass, min_SVmass, max_SVmass );
1141 IVFH_SV2_massBCand = new TH1F(("SV2_massBCand"+suffix).c_str(),("SV 2 massBCand ("+suffix+")").c_str(), bin_SVmass, min_SVmass, max_SVmass );
1142
1143 IVFH_SVHMass = new TH1F(("SVHMass"+suffix).c_str(),(" SVH Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass*0.5 );
1144 IVFH_SVHPt = new TH1F(("SVHPt"+suffix).c_str(),(" SVH Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.5 );
1145 IVFH_SVHdR = new TH1F(("SVHdR"+suffix).c_str(),("SVH deltaR ("+suffix+")").c_str(), bin_deltaR, min_deltaR, max_deltaR );
1146 IVFH_SVHdR->GetXaxis()->SetTitle("SV #DeltaR");
1147 IVFH_SVHdPhi = new TH1F(("SVHdPhi"+suffix).c_str(),("SVH deltaPhi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
1148 IVFH_SVHdPhi->GetXaxis()->SetTitle("SV #Delta #phi");
1149 IVFH_SVHdEta = new TH1F(("SVHdEta"+suffix).c_str(),("SVH deltaEta ("+suffix+")").c_str(), bin_deltaEta, min_deltaEta, max_deltaEta );
1150 IVFH_SVHdEta->GetXaxis()->SetTitle("SV #Delta #eta");
1151
1152 IVFH_HMass = new TH1F(("HiggsMass"+suffix).c_str(),(" Higgs Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
1153 IVFH_HPt = new TH1F(("HiggsPt"+suffix).c_str(),(" Higgs Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
1154 IVFH_HdR = new TH1F(("HiggsdR"+suffix).c_str(),("Higgs deltaR ("+suffix+")").c_str(), bin_deltaR, min_deltaR, max_deltaR );
1155 IVFH_HdPhi = new TH1F(("HiggsdPhi"+suffix).c_str(),("Higgs deltaPhi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
1156 IVFH_HdEta = new TH1F(("HiggsdEta"+suffix).c_str(),("Higgs deltaEta ("+suffix+")").c_str(), bin_deltaEta, min_deltaEta, max_deltaEta );
1157
1158 IVFH_HHel = new TH1F(("HiggsHel"+suffix).c_str(),("Higgs helicity angle ("+suffix+")").c_str(), bin_hel, min_hel, max_hel );
1159 IVFH_HPullAngle = new TH1F(("HiggsPullAngle"+suffix).c_str(),("Higgs pull angle ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
1160
1161 IVFH_ZMass = new TH1F(("ZMass"+suffix).c_str(),(" Z Mass ("+suffix+")").c_str(), 100, 50, 150 );
1162 IVFH_ZPt = new TH1F(("ZPt"+suffix).c_str(),(" Z Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
1163 IVFH_ZH_dPhi = new TH1F(("ZH_dPhi"+suffix).c_str(),(" ZH delta Phi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
1164 IVFH_WMass = new TH1F(("WMass"+suffix).c_str(),(" W Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
1165 IVFH_WPt = new TH1F(("WPt"+suffix).c_str(),(" W Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
1166 IVFH_WH_dPhi = new TH1F(("WH_dPhi"+suffix).c_str(),(" WH delta Phi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
1167
1168 }
1169
1170 virtual void fill(ntupleReader &iEvent,float w) {
1171
1172 IVFH_nPVs->Fill(iEvent.nPVs, w);
1173 IVFH_nSvs->Fill(iEvent.nSvs, w);
1174 IVFH_numOfJets->Fill(iEvent.CountJets(), w);
1175
1176 IVFH_met_et->Fill(TMath::Min(iEvent.METnoPUCh_et, iEvent.METnoPU_et ), w);
1177 IVFH_met_sig->Fill(iEvent.MET_sig, w);
1178
1179 IVFH_vectorLepton1_pt->Fill(iEvent.vLepton_pt[0], w);
1180 IVFH_vectorLepton2_pt->Fill(iEvent.vLepton_pt[1], w);
1181 IVFH_vectorLepton1_phi->Fill(iEvent.vLepton_phi[0], w);
1182 IVFH_vectorLepton2_phi->Fill(iEvent.vLepton_phi[1], w);
1183 IVFH_vectorLepton1_eta->Fill(iEvent.vLepton_eta[0], w);
1184 IVFH_vectorLepton2_eta->Fill(iEvent.vLepton_eta[1], w);
1185 IVFH_vectorLepton1_pfCombRelIso->Fill(iEvent.vLepton_pfCombRelIso[0], w);
1186 IVFH_vectorLepton2_pfCombRelIso->Fill(iEvent.vLepton_pfCombRelIso[1], w);
1187 IVFH_vectorLepton1_dxy->Fill(iEvent.vLepton_dxy[0], w);
1188 IVFH_vectorLepton2_dxy->Fill(iEvent.vLepton_dxy[1], w);
1189 IVFH_vectorLepton1_dz->Fill(iEvent.vLepton_dz[0], w);
1190 IVFH_vectorLepton2_dz->Fill(iEvent.vLepton_dz[1], w);
1191
1192
1193 IVFH_simpleJet1_pt->Fill(iEvent.hJet_pt[0], w);
1194 IVFH_simpleJet2_pt->Fill(iEvent.hJet_pt[1], w);
1195 IVFH_simpleJet1_phi->Fill(iEvent.hJet_phi[0], w);
1196 IVFH_simpleJet2_phi->Fill(iEvent.hJet_phi[1], w);
1197 IVFH_simpleJet1_eta->Fill(iEvent.hJet_eta[0], w);
1198 IVFH_simpleJet2_eta->Fill(iEvent.hJet_eta[1], w);
1199 IVFH_simpleJet1_bTag->Fill(iEvent.hJet_csv[0], w);
1200 IVFH_simpleJet2_bTag->Fill(iEvent.hJet_csv[1], w);
1201
1202 IVFH_SV1_pt->Fill(iEvent.Sv_pt[0], w);
1203 IVFH_SV2_pt->Fill(iEvent.Sv_pt[1], w);
1204 IVFH_SV1_eta->Fill(iEvent.Sv_eta[0], w);
1205 IVFH_SV2_eta->Fill(iEvent.Sv_eta[1], w);
1206 IVFH_SV1_phi->Fill(iEvent.Sv_phi[0], w);
1207 IVFH_SV2_phi->Fill(iEvent.Sv_phi[1], w);
1208 IVFH_SV1_massBCand->Fill(iEvent.Sv_massBCand[0], w);
1209 IVFH_SV2_massBCand->Fill(iEvent.Sv_massBCand[1], w);
1210
1211 IVFH_SVHMass->Fill(iEvent.SVH_mass, w);
1212 IVFH_SVHPt->Fill(iEvent.SVH_pt, w);
1213 IVFH_SVHdR->Fill(iEvent.SVH_dR, w);
1214 IVFH_SVHdPhi->Fill(TMath::Abs(iEvent.SVH_dPhi), w);
1215 IVFH_SVHdEta->Fill(iEvent.SVH_dEta, w);
1216
1217 IVFH_HMass->Fill(iEvent.H_mass, w);
1218 IVFH_HPt->Fill(iEvent.H_pt, w);
1219 IVFH_HdR->Fill(iEvent.H_dR, w);
1220 IVFH_HdPhi->Fill(TMath::Abs(iEvent.H_dPhi), w);
1221 IVFH_HdEta->Fill(iEvent.H_dEta, w);
1222 IVFH_HHel->Fill(iEvent.hJet_cosTheta[0], w);
1223 IVFH_HPullAngle->Fill(iEvent.deltaPullAngle, w);
1224
1225 iType = (VType)iEvent.Vtype;
1226 if( iType == Zmm || iType == Zee || iType == Znn ){
1227 IVFH_ZMass->Fill(iEvent.V_mass, w);
1228 IVFH_ZPt->Fill(iEvent.V_pt, w);
1229 IVFH_ZH_dPhi->Fill(TMath::Abs(iEvent. HVdPhi), w);
1230 }
1231 else{
1232 IVFH_WMass->Fill(iEvent.V_mass, w);
1233 IVFH_WPt->Fill(iEvent.V_pt, w);
1234 IVFH_WH_dPhi->Fill(TMath::Abs(iEvent.HVdPhi), w);
1235 }
1236
1237
1238 }
1239
1240 TH1F * IVFH_nPVs;
1241 TH1F * IVFH_nSvs;
1242 TH1F * IVFH_numOfJets;
1243 TH1F * IVFH_met_et;
1244 TH1F * IVFH_met_sig;
1245
1246 TH1F * IVFH_vectorLepton1_pt;
1247 TH1F * IVFH_vectorLepton2_pt;
1248 TH1F * IVFH_vectorLepton1_phi;
1249 TH1F * IVFH_vectorLepton2_phi;
1250 TH1F * IVFH_vectorLepton1_eta;
1251 TH1F * IVFH_vectorLepton2_eta;
1252 TH1F * IVFH_vectorLepton1_pfCombRelIso;
1253 TH1F * IVFH_vectorLepton2_pfCombRelIso;
1254 TH1F * IVFH_vectorLepton1_dxy;
1255 TH1F * IVFH_vectorLepton2_dxy;
1256 TH1F * IVFH_vectorLepton1_dz;
1257 TH1F * IVFH_vectorLepton2_dz;
1258
1259 TH1F * IVFH_simpleJet1_pt;
1260 TH1F * IVFH_simpleJet2_pt;
1261 TH1F * IVFH_simpleJet1_phi;
1262 TH1F * IVFH_simpleJet2_phi;
1263 TH1F * IVFH_simpleJet1_eta;
1264 TH1F * IVFH_simpleJet2_eta;
1265 TH1F * IVFH_simpleJet1_bTag;
1266 TH1F * IVFH_simpleJet2_bTag;
1267
1268 TH1F * IVFH_SV1_pt;
1269 TH1F * IVFH_SV2_pt;
1270 TH1F * IVFH_SV1_eta;
1271 TH1F * IVFH_SV2_eta;
1272 TH1F * IVFH_SV1_phi;
1273 TH1F * IVFH_SV2_phi;
1274 TH1F * IVFH_SV1_massBCand;
1275 TH1F * IVFH_SV2_massBCand;
1276
1277 TH1F * IVFH_SVHMass;
1278 TH1F * IVFH_SVHPt;
1279 TH1F * IVFH_SVHdR;
1280 TH1F * IVFH_SVHdPhi;
1281 TH1F * IVFH_SVHdEta;
1282
1283 TH1F * IVFH_HMass;
1284 TH1F * IVFH_HPt;
1285 TH1F * IVFH_HdR;
1286 TH1F * IVFH_HdPhi;
1287 TH1F * IVFH_HdEta;
1288 TH1F * IVFH_HHel;
1289 TH1F * IVFH_HPullAngle;
1290
1291 TH1F * IVFH_WMass;
1292 TH1F * IVFH_WPt;
1293 TH1F * IVFH_WH_dPhi;
1294
1295 TH1F * IVFH_ZMass;
1296 TH1F * IVFH_ZPt;
1297 TH1F * IVFH_ZH_dPhi;
1298
1299 private:
1300
1301 Int_t bin_btag;
1302 Double_t min_btag;
1303 Double_t max_btag;
1304
1305 Int_t bin_deltaEta;
1306 Double_t min_deltaEta;
1307 Double_t max_deltaEta;
1308
1309 Int_t bin_deltaPhi;
1310 Double_t min_deltaPhi;
1311 Double_t max_deltaPhi;
1312
1313 Int_t bin_deltaR;
1314 Double_t min_deltaR;
1315 Double_t max_deltaR;
1316
1317 Int_t bin_mass;
1318 Double_t min_mass;
1319 Double_t max_mass;
1320
1321 Int_t bin_SVmass;
1322 Double_t min_SVmass;
1323 Double_t max_SVmass;
1324
1325 Int_t bin_pt;
1326 Double_t min_pt;
1327 Double_t max_pt;
1328
1329 Int_t bin_SVpt;
1330 Double_t min_SVpt;
1331 Double_t max_SVpt;
1332
1333 Int_t bin_phi;
1334 Double_t min_phi;
1335 Double_t max_phi;
1336
1337 Int_t bin_eta;
1338 Double_t min_eta;
1339 Double_t max_eta;
1340
1341 Int_t bin_npvs;
1342 Double_t min_npvs;
1343 Double_t max_npvs;
1344
1345 Int_t bin_jets;
1346 Double_t min_jets;
1347 Double_t max_jets;
1348
1349 Int_t bin_hel;
1350 Double_t min_hel;
1351 Double_t max_hel;
1352
1353 Int_t bin_iso;
1354 Double_t min_iso;
1355 Double_t max_iso;
1356
1357 Int_t bin_dxy;
1358 Double_t min_dxy;
1359 Double_t max_dxy;
1360
1361
1362 };
1363
1364
1365
1366 class ZZHistos : public Histos {
1367
1368 public:
1369
1370 virtual void book(TFile &f, std::string suffix) {
1371
1372 TDirectory *subDir;
1373 if( ! f.GetDirectory(suffix.c_str()) )
1374 subDir = f.mkdir(suffix.c_str());
1375 else
1376 subDir = f.GetDirectory(suffix.c_str());
1377 subDir->cd();
1378
1379 bin_mass = 30;
1380 min_mass = 0;
1381 max_mass = 300;
1382
1383 bin_pt = 50;
1384 min_pt = 0;
1385 max_pt = 500;
1386
1387 bin_hel = 10;
1388 min_hel = 0;
1389 max_hel = 1;
1390
1391 bin_dxy = 20;
1392 min_dxy = -0.2;
1393 max_dxy = 0.2;
1394
1395 bin_iso = 20;
1396 min_iso = 0;
1397 max_iso = 0.5;
1398
1399 bin_btag = 20;
1400 min_btag = 0;
1401 max_btag = 1;
1402
1403 bin_npvs = 30;
1404 min_npvs = 0;
1405 max_npvs = 30;
1406
1407 bin_addJets = 10;
1408 min_addJets = 0;
1409 max_addJets = 10;
1410
1411 bin_eta = bin_phi = 20;
1412 min_eta = min_phi = -5;
1413 max_eta = max_phi = 5;
1414
1415 bin_deltaR = bin_deltaPhi = bin_deltaEta = 20;
1416 min_deltaR = min_deltaPhi = min_deltaEta = 0;
1417 max_deltaR = max_deltaPhi = max_deltaEta = 5;
1418
1419 //Candidates
1420 ZZH_nPVs = new TH1F(("nPVs"+suffix).c_str(),("Number of reconstructed PV ("+suffix+")").c_str(), bin_npvs, min_npvs, max_npvs );
1421 ZZH_addJets = new TH1F(("addJets"+suffix).c_str(),("Number of additional AK5 ("+suffix+")").c_str(), bin_addJets, min_addJets, max_addJets );
1422
1423 ZZH_met_et = new TH1F(("MET_et"+suffix).c_str(),("Missing transverse energy ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.5 );
1424 ZZH_met_sig = new TH1F(("MET_sig"+suffix).c_str(),("MET significance("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.1 );
1425
1426 ZZH_vectorLepton1_pt = new TH1F(("vectorLepton1_pt"+suffix).c_str(),("Vector Lepton1 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
1427 ZZH_vectorLepton2_pt = new TH1F(("vectorLepton2_pt"+suffix).c_str(),("Vector Lepton2 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
1428 ZZH_vectorLepton1_phi = new TH1F(("vectorLepton1_phi"+suffix).c_str(),("Vector Lepton1 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
1429 ZZH_vectorLepton2_phi = new TH1F(("vectorLepton2_phi"+suffix).c_str(),("Vector Lepton2 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
1430 ZZH_vectorLepton1_eta = new TH1F(("vectorLepton1_eta"+suffix).c_str(),("Vector Lepton1 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
1431 ZZH_vectorLepton2_eta = new TH1F(("vectorLepton2_eta"+suffix).c_str(),("Vector Lepton2 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
1432 ZZH_vectorLepton1_pfCombRelIso = new TH1F(("vectorLepton1_pfCombRelIso"+suffix).c_str(),("Vector Lepton1 pfCombRelIso ("+suffix+")").c_str(), bin_iso, min_iso, max_iso );
1433 ZZH_vectorLepton2_pfCombRelIso = new TH1F(("vectorLepton2_pfCombRelIso"+suffix).c_str(),("Vector Lepton2 pfCombRelIso ("+suffix+")").c_str(), bin_iso, min_iso, max_iso );
1434 ZZH_vectorLepton1_dxy = new TH1F(("vectorLepton1_dxy"+suffix).c_str(),("Vector Lepton1 dxy ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
1435 ZZH_vectorLepton2_dxy = new TH1F(("vectorLepton2_dxy"+suffix).c_str(),("Vector Lepton2 dxy ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
1436 ZZH_vectorLepton1_dz = new TH1F(("vectorLepton1_dz"+suffix).c_str(),("Vector Lepton1 dz ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
1437 ZZH_vectorLepton2_dz = new TH1F(("vectorLepton2_dz"+suffix).c_str(),("Vector Lepton2 dz ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
1438
1439 ZZH_additionalLepton1_pt = new TH1F(("additionalLepton1_pt"+suffix).c_str(),("Additional Lepton1 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
1440 ZZH_additionalLepton2_pt = new TH1F(("additionalLepton2_pt"+suffix).c_str(),("Additional Lepton2 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt*0.8 );
1441 ZZH_additionalLepton1_phi = new TH1F(("additionalLepton1_phi"+suffix).c_str(),("Additional Lepton1 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
1442 ZZH_additionalLepton2_phi = new TH1F(("additionalLepton2_phi"+suffix).c_str(),("Additional Lepton2 phi ("+suffix+")").c_str(), bin_phi, min_phi, max_phi );
1443 ZZH_additionalLepton1_eta = new TH1F(("additionalLepton1_eta"+suffix).c_str(),("Additional Lepton1 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
1444 ZZH_additionalLepton2_eta = new TH1F(("additionalLepton2_eta"+suffix).c_str(),("Additional Lepton2 eta ("+suffix+")").c_str(), bin_eta, min_eta, max_eta );
1445 ZZH_additionalLepton1_pfCombRelIso = new TH1F(("additionalLepton1_pfCombRelIso"+suffix).c_str(),("Additional Lepton1 pfCombRelIso ("+suffix+")").c_str(), bin_iso, min_iso, max_iso );
1446 ZZH_additionalLepton2_pfCombRelIso = new TH1F(("additionalLepton2_pfCombRelIso"+suffix).c_str(),("Additional Lepton2 pfCombRelIso ("+suffix+")").c_str(), bin_iso, min_iso, max_iso );
1447 ZZH_additionalLepton1_dxy = new TH1F(("additionalLepton1_dxy"+suffix).c_str(),("Additional Lepton1 dxy ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
1448 ZZH_additionalLepton2_dxy = new TH1F(("additionalLepton2_dxy"+suffix).c_str(),("Additional Lepton2 dxy ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
1449 ZZH_additionalLepton1_dz = new TH1F(("additionalLepton1_dz"+suffix).c_str(),("Additional Lepton1 dz ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
1450 ZZH_additionalLepton2_dz = new TH1F(("additionalLepton2_dz"+suffix).c_str(),("Additional Lepton2 dz ("+suffix+")").c_str(), bin_dxy, min_dxy, max_dxy );
1451
1452 ZZH_ZMass = new TH1F(("ZMass"+suffix).c_str(),(" Z Mass ("+suffix+")").c_str(), 100, 50, 150 );
1453 ZZH_ZPt = new TH1F(("ZPt"+suffix).c_str(),(" Z Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
1454 ZZH_WMass = new TH1F(("WMass"+suffix).c_str(),(" W Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
1455 ZZH_WPt = new TH1F(("WPt"+suffix).c_str(),(" W Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
1456
1457 ZZH_ZZMass = new TH1F(("ZZMass"+suffix).c_str(),(" ZZ Mass ("+suffix+")").c_str(), 100, 50, 150 );
1458 ZZH_ZZPt = new TH1F(("ZZPt"+suffix).c_str(),(" ZZ Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
1459 ZZH_WZMass = new TH1F(("WZMass"+suffix).c_str(),(" WZ Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
1460 ZZH_WZPt = new TH1F(("WZPt"+suffix).c_str(),(" WZ Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
1461
1462 ZZH_ZZ_dPhi = new TH1F(("ZZ_dPhi"+suffix).c_str(),(" ZZ delta Phi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
1463 ZZH_ZZ_dEta = new TH1F(("ZZ_dEta"+suffix).c_str(),(" ZZ delta Eta ("+suffix+")").c_str(), bin_deltaEta, min_deltaEta, max_deltaEta );
1464 ZZH_ZZ_dR = new TH1F(("ZZ_dR"+suffix).c_str(),(" ZZ delta R ("+suffix+")").c_str(), bin_deltaR, min_deltaR, max_deltaR );
1465 ZZH_WZ_dPhi = new TH1F(("WZ_dPhi"+suffix).c_str(),(" WZ delta Phi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
1466 ZZH_WZ_dEta = new TH1F(("WZ_dEta"+suffix).c_str(),(" WZ delta Eta ("+suffix+")").c_str(), bin_deltaEta, min_deltaEta, max_deltaEta );
1467 ZZH_WZ_dR = new TH1F(("WZ_dR"+suffix).c_str(),(" WZ delta R ("+suffix+")").c_str(), bin_deltaR, min_deltaR, max_deltaR );
1468
1469
1470 }
1471
1472 virtual void fill(ntupleReader &iEvent,float w) {
1473
1474 ZZH_nPVs->Fill(iEvent.nPVs, w);
1475 ZZH_addJets->Fill(iEvent.CountAddJets(), w);
1476
1477 ZZH_met_et->Fill(TMath::Min(iEvent.METnoPUCh_et, iEvent.METnoPU_et ), w);
1478 ZZH_met_sig->Fill(iEvent.MET_sig, w);
1479
1480 ZZH_vectorLepton1_pt->Fill(iEvent.vLepton_pt[0], w);
1481 ZZH_vectorLepton2_pt->Fill(iEvent.vLepton_pt[1], w);
1482 ZZH_vectorLepton1_phi->Fill(iEvent.vLepton_phi[0], w);
1483 ZZH_vectorLepton2_phi->Fill(iEvent.vLepton_phi[1], w);
1484 ZZH_vectorLepton1_eta->Fill(iEvent.vLepton_eta[0], w);
1485 ZZH_vectorLepton2_eta->Fill(iEvent.vLepton_eta[1], w);
1486 ZZH_vectorLepton1_pfCombRelIso->Fill(iEvent.vLepton_pfCombRelIso[0], w);
1487 ZZH_vectorLepton2_pfCombRelIso->Fill(iEvent.vLepton_pfCombRelIso[1], w);
1488 ZZH_vectorLepton1_dxy->Fill(iEvent.vLepton_dxy[0], w);
1489 ZZH_vectorLepton2_dxy->Fill(iEvent.vLepton_dxy[1], w);
1490 ZZH_vectorLepton1_dz->Fill(iEvent.vLepton_dz[0], w);
1491 ZZH_vectorLepton2_dz->Fill(iEvent.vLepton_dz[1], w);
1492
1493 ZZH_additionalLepton1_pt->Fill(iEvent.aLepton_pt[0], w);
1494 ZZH_additionalLepton2_pt->Fill(iEvent.aLepton_pt[1], w);
1495 ZZH_additionalLepton1_phi->Fill(iEvent.aLepton_phi[0], w);
1496 ZZH_additionalLepton2_phi->Fill(iEvent.aLepton_phi[1], w);
1497 ZZH_additionalLepton1_eta->Fill(iEvent.aLepton_eta[0], w);
1498 ZZH_additionalLepton2_eta->Fill(iEvent.aLepton_eta[1], w);
1499 ZZH_additionalLepton1_pfCombRelIso->Fill(iEvent.aLepton_pfCombRelIso[0], w);
1500 ZZH_additionalLepton2_pfCombRelIso->Fill(iEvent.aLepton_pfCombRelIso[1], w);
1501 ZZH_additionalLepton1_dxy->Fill(iEvent.aLepton_dxy[0], w);
1502 ZZH_additionalLepton2_dxy->Fill(iEvent.aLepton_dxy[1], w);
1503 ZZH_additionalLepton1_dz->Fill(iEvent.aLepton_dz[0], w);
1504 ZZH_additionalLepton2_dz->Fill(iEvent.aLepton_dz[1], w);
1505
1506 iType = (VType)iEvent.Vtype;
1507
1508 V1.SetPtEtaPhiM( iEvent.V_pt,
1509 iEvent.V_eta,
1510 iEvent.V_phi,
1511 iEvent.V_mass );
1512 addLep1.SetPtEtaPhiM( iEvent.aLepton_pt[0],
1513 iEvent.aLepton_eta[0],
1514 iEvent.aLepton_phi[0],
1515 iEvent.aLepton_mass[0] );
1516 addLep2.SetPtEtaPhiM( iEvent.aLepton_pt[1],
1517 iEvent.aLepton_eta[1],
1518 iEvent.aLepton_phi[1],
1519 iEvent.aLepton_mass[1] );
1520 V2 = addLep1 + addLep2;
1521
1522 if( iType == Zmm || iType == Zee || iType == Znn ){
1523 ZZH_ZMass->Fill(iEvent.V_mass, w);
1524 ZZH_ZPt->Fill(iEvent.V_pt, w);
1525 ZZH_ZZMass->Fill(V2.M(), w);
1526 ZZH_ZZPt->Fill(V2.Pt(), w);
1527 ZZH_ZZ_dPhi->Fill(TMath::Abs(V1.DeltaPhi(V2)), w);
1528 ZZH_ZZ_dEta->Fill(TMath::Abs(V1.Eta() - V2.Eta() ), w);
1529 ZZH_ZZ_dR->Fill(V1.DeltaR(V2), w);
1530 }
1531 else{
1532 ZZH_WMass->Fill(iEvent.V_mass, w);
1533 ZZH_WPt->Fill(iEvent.V_pt, w);
1534 ZZH_WZMass->Fill(V2.M(), w);
1535 ZZH_WZPt->Fill(V2.Pt(), w);
1536 ZZH_WZ_dPhi->Fill(TMath::Abs(V1.DeltaPhi(V2)), w);
1537 ZZH_WZ_dEta->Fill(TMath::Abs(V1.Eta() - V2.Eta() ), w);
1538 ZZH_WZ_dR->Fill(V1.DeltaR(V2), w);
1539 }
1540
1541
1542 }
1543
1544 TLorentzVector addLep1,addLep2,V1,V2;
1545
1546 TH1F * ZZH_nPVs;
1547 TH1F * ZZH_addJets;
1548 TH1F * ZZH_met_et;
1549 TH1F * ZZH_met_sig;
1550
1551 TH1F * ZZH_vectorLepton1_pt;
1552 TH1F * ZZH_vectorLepton2_pt;
1553 TH1F * ZZH_vectorLepton1_phi;
1554 TH1F * ZZH_vectorLepton2_phi;
1555 TH1F * ZZH_vectorLepton1_eta;
1556 TH1F * ZZH_vectorLepton2_eta;
1557 TH1F * ZZH_vectorLepton1_pfCombRelIso;
1558 TH1F * ZZH_vectorLepton2_pfCombRelIso;
1559 TH1F * ZZH_vectorLepton1_dxy;
1560 TH1F * ZZH_vectorLepton2_dxy;
1561 TH1F * ZZH_vectorLepton1_dz;
1562 TH1F * ZZH_vectorLepton2_dz;
1563
1564 TH1F * ZZH_additionalLepton1_pt;
1565 TH1F * ZZH_additionalLepton2_pt;
1566 TH1F * ZZH_additionalLepton1_phi;
1567 TH1F * ZZH_additionalLepton2_phi;
1568 TH1F * ZZH_additionalLepton1_eta;
1569 TH1F * ZZH_additionalLepton2_eta;
1570 TH1F * ZZH_additionalLepton1_pfCombRelIso;
1571 TH1F * ZZH_additionalLepton2_pfCombRelIso;
1572 TH1F * ZZH_additionalLepton1_dxy;
1573 TH1F * ZZH_additionalLepton2_dxy;
1574 TH1F * ZZH_additionalLepton1_dz;
1575 TH1F * ZZH_additionalLepton2_dz;
1576
1577 TH1F * ZZH_WMass;
1578 TH1F * ZZH_WPt;
1579 TH1F * ZZH_WZMass;
1580 TH1F * ZZH_WZPt;
1581 TH1F * ZZH_ZMass;
1582 TH1F * ZZH_ZPt;
1583 TH1F * ZZH_ZZMass;
1584 TH1F * ZZH_ZZPt;
1585
1586 TH1F * ZZH_ZZ_dPhi;
1587 TH1F * ZZH_ZZ_dEta;
1588 TH1F * ZZH_ZZ_dR;
1589 TH1F * ZZH_WZ_dPhi;
1590 TH1F * ZZH_WZ_dEta;
1591 TH1F * ZZH_WZ_dR;
1592
1593 private:
1594
1595 Int_t bin_btag;
1596 Double_t min_btag;
1597 Double_t max_btag;
1598
1599 Int_t bin_eta;
1600 Double_t min_eta;
1601 Double_t max_eta;
1602
1603 Int_t bin_phi;
1604 Double_t min_phi;
1605 Double_t max_phi;
1606
1607 Int_t bin_deltaEta;
1608 Double_t min_deltaEta;
1609 Double_t max_deltaEta;
1610
1611 Int_t bin_deltaPhi;
1612 Double_t min_deltaPhi;
1613 Double_t max_deltaPhi;
1614
1615 Int_t bin_deltaR;
1616 Double_t min_deltaR;
1617 Double_t max_deltaR;
1618
1619 Int_t bin_mass;
1620 Double_t min_mass;
1621 Double_t max_mass;
1622
1623 Int_t bin_pt;
1624 Double_t min_pt;
1625 Double_t max_pt;
1626
1627 Int_t bin_npvs;
1628 Double_t min_npvs;
1629 Double_t max_npvs;
1630
1631 Int_t bin_addJets;
1632 Double_t min_addJets;
1633 Double_t max_addJets;
1634
1635 Int_t bin_hel;
1636 Double_t min_hel;
1637 Double_t max_hel;
1638
1639 Int_t bin_iso;
1640 Double_t min_iso;
1641 Double_t max_iso;
1642
1643 Int_t bin_dxy;
1644 Double_t min_dxy;
1645 Double_t max_dxy;
1646
1647 };
1648
1649
1650 // FIX ME
1651
1652 /* class HardJetHistos : public Histos { */
1653
1654 /* public: */
1655
1656 /* virtual void book(TFile &f, std::string suffix) { */
1657
1658 /* TDirectory *subDir; */
1659 /* if( ! f.GetDirectory(suffix.c_str()) ) */
1660 /* subDir = f.mkdir(suffix.c_str()); */
1661 /* else */
1662 /* subDir = f.GetDirectory(suffix.c_str()); */
1663 /* subDir->cd(); */
1664
1665 /* bin_mass = 500; */
1666 /* min_mass = 0; */
1667 /* max_mass = 300; */
1668
1669 /* bin_pt = 500; */
1670 /* min_pt = 0; */
1671 /* max_pt = 500; */
1672
1673 /* bin_hel = 50; */
1674 /* min_hel = 0; */
1675 /* max_hel = 1; */
1676
1677 /* bin_btag = 20; */
1678 /* min_btag = 0; */
1679 /* max_btag = 1; */
1680
1681 /* bin_deltaR = bin_deltaPhi = bin_deltaEta = 20; */
1682 /* min_deltaR = min_deltaPhi = min_deltaEta = 0; */
1683 /* max_deltaR = max_deltaPhi = max_deltaEta = 5; */
1684
1685 /* //Candidates */
1686
1687 /* HardJetH_subJet1_pt = new TH1F(("SubJet1_pt"+suffix).c_str(),("Sub Jet1 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt ); */
1688 /* HardJetH_subJet2_pt = new TH1F(("SubJet2_pt"+suffix).c_str(),("Sub Jet2 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt ); */
1689 /* HardJetH_subJet1_bTag = new TH1F(("SubJet1_bTag"+suffix).c_str(),("Sub Jet1 bTag ("+suffix+")").c_str(), bin_btag, min_btag, max_btag ); */
1690 /* HardJetH_subJet2_bTag = new TH1F(("SubJet2_bTag"+suffix).c_str(),("Sub Jet2 bTag ("+suffix+")").c_str(), bin_btag, min_btag, max_btag ); */
1691 /* HardJetH_subJets_dR = new TH1F(("SubJets_dR"+suffix).c_str(),("Sub Jets deltaR ("+suffix+")").c_str(), bin_deltaR, min_deltaR, max_deltaR ); */
1692 /* HardJetH_subJets_dPhi = new TH1F(("SubJets_dPhi"+suffix).c_str(),("Sub Jets deltaPhi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi ); */
1693 /* HardJetH_subJets_dEta = new TH1F(("SubJets_dEta"+suffix).c_str(),("Sub Jets deltaEta ("+suffix+")").c_str(), bin_deltaEta, min_deltaEta, max_deltaEta ); */
1694
1695 /* HardJetH_HMass = new TH1F(("HiggsMass"+suffix).c_str(),(" Higgs Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass ); */
1696 /* HardJetH_HPt = new TH1F(("HiggsPt"+suffix).c_str(),(" Higgs Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt ); */
1697 /* HardJetH_HHel = new TH1F(("HiggsHel"+suffix).c_str(),("Higgs helicity angle ("+suffix+")").c_str(), bin_hel, min_hel, max_hel ); */
1698
1699 /* HardJetH_ZMass = new TH1F(("ZMass"+suffix).c_str(),(" Z Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass ); */
1700 /* HardJetH_ZPt = new TH1F(("ZPt"+suffix).c_str(),(" Z Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt ); */
1701 /* HardJetH_ZH_dPhi = new TH1F(("ZH_dPhi"+suffix).c_str(),(" ZH delta Phi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi ); */
1702
1703 /* HardJetH_WMass = new TH1F(("WMass"+suffix).c_str(),(" W Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass ); */
1704 /* HardJetH_WPt = new TH1F(("WPt"+suffix).c_str(),(" W Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt ); */
1705 /* HardJetH_WH_dPhi = new TH1F(("WH_dPhi"+suffix).c_str(),(" WH delta Phi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi ); */
1706
1707 /* } */
1708
1709 /* virtual void fill(ntupleReader &iEvent,float w) { */
1710
1711 /* const VHbbEvent *iEvent = entry.getVHbbEvent(); */
1712 /* if(iEvent) */
1713 /* { const std::vector<VHbbCandidate> *iCand = entry.getVHbbCandidate(); */
1714
1715 /* //Candidates */
1716 /* if(iCand->size() > 0){ */
1717 /* VHbbCandidate::CandidateType iCandType = candidateType; */
1718 /* VHbbCandidate::HiggsCandidate H = H; */
1719 /* VHbbCandidate::VectorCandidate V = V; */
1720 /* std::vector<VHbbEvent::HardJet> iHardJets = iEvent->hardJets; */
1721 /* VHbbEvent::HardJet iHardJet = iHardJets; */
1722
1723 /* HardJetH_subJet1_pt->Fill(iEvent.iHardJet.subFourMomentum.at(0).Pt(), w); */
1724 /* HardJetH_subJet2_pt->Fill(iEvent.iHardJet.subFourMomentum.at(1).Pt(), w); */
1725 /* //SubJet information on btag missing */
1726 /* // HardJetH_subJet1_bTag->Fill(iEvent.iHardJet.at(0).csv, w); */
1727 /* // HardJetH_subJet2_bTag->Fill(iEvent.iHardJet.at(1).csv, w); */
1728 /* HardJetH_subJets_dR->Fill(iEvent.iHardJet.subFourMomentum.at(0).DeltaR(iHardJet.subFourMomentum.at(1)), w); */
1729 /* HardJetH_subJets_dPhi->Fill(iEvent.iHardJet.subFourMomentum.at(0).DeltaPhi(iHardJet.subFourMomentum.at(1)), w); */
1730 /* HardJetH_subJets_dEta->Fill(iEvent.TMath::Abs(iHardJet.subFourMomentum.at(0).Eta()-iHardJet.subFourMomentum.at(1).Eta()), w); */
1731
1732 /* //Here there should be the higgs candidate from HardJet */
1733 /* // HardJetH_HMass->Fill(iEvent.H.p4.M(), w); */
1734 /* // HardJetH_HPt->Fill(iEvent.H.p4.Pt(), w); */
1735 /* // // HardJetH_HHel->Fill(iEvent.H.hel(), w); */
1736 /* // if( iCandType == VHbbCandidate::Zmumu || iCandType == VHbbCandidate::Zee || iCandType == VHbbCandidate::Znn ){ */
1737 /* // HardJetH_ZMass->Fill(iEvent.V.p4.M(), w); */
1738 /* // HardJetH_ZPt->Fill(iEvent.V.p4.Pt(), w); */
1739 /* // HardJetH_ZH_dPhi->Fill(iEvent.V.p4.DeltaPhi(H.p4.Phi()), w); */
1740 /* // } */
1741 /* // else if(iCandType == VHbbCandidate::Wen || iCandType == VHbbCandidate::Wmun){ */
1742 /* // HardJetH_WMass->Fill(iEvent.V.p4.M(), w); */
1743 /* // HardJetH_WPt->Fill(iEvent.V.p4.Pt(), w); */
1744 /* // HardJetH_WH_dPhi->Fill(iEvent.V.p4.DeltaPhi(H.p4.Phi()), w); */
1745 /* // } */
1746 /* } */
1747 /* } */
1748 /* } */
1749
1750 /* TH1F * HardJetH_subJet1_pt; */
1751 /* TH1F * HardJetH_subJet2_pt; */
1752 /* TH1F * HardJetH_subJet1_bTag; */
1753 /* TH1F * HardJetH_subJet2_bTag; */
1754 /* TH1F * HardJetH_subJets_dR; */
1755 /* TH1F * HardJetH_subJets_dPhi; */
1756 /* TH1F * HardJetH_subJets_dEta; */
1757
1758 /* TH1F * HardJetH_HMass; */
1759 /* TH1F * HardJetH_HPt; */
1760 /* TH1F * HardJetH_HHel; */
1761 /* TH1F * HardJetH_WMass; */
1762 /* TH1F * HardJetH_WPt; */
1763 /* TH1F * HardJetH_WH_dPhi; */
1764 /* TH1F * HardJetH_ZMass; */
1765 /* TH1F * HardJetH_ZPt; */
1766 /* TH1F * HardJetH_ZH_dPhi; */
1767
1768 /* private: */
1769
1770 /* Int_t bin_btag; */
1771 /* Double_t min_btag; */
1772 /* Double_t max_btag; */
1773
1774 /* Int_t bin_deltaEta; */
1775 /* Double_t min_deltaEta; */
1776 /* Double_t max_deltaEta; */
1777
1778 /* Int_t bin_deltaPhi; */
1779 /* Double_t min_deltaPhi; */
1780 /* Double_t max_deltaPhi; */
1781
1782 /* Int_t bin_deltaR; */
1783 /* Double_t min_deltaR; */
1784 /* Double_t max_deltaR; */
1785
1786 /* Int_t bin_mass; */
1787 /* Double_t min_mass; */
1788 /* Double_t max_mass; */
1789
1790 /* Int_t bin_pt; */
1791 /* Double_t min_pt; */
1792 /* Double_t max_pt; */
1793
1794 /* Int_t bin_hel; */
1795 /* Double_t min_hel; */
1796 /* Double_t max_hel; */
1797
1798 /* }; */
1799
1800
1801 #endif