ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/plugins/Histos.h
Revision: 1.7
Committed: Fri Jun 22 15:49:50 2012 UTC (12 years, 10 months ago) by bortigno
Content type: text/plain
Branch: MAIN
CVS Tags: lhcp_UnblindFix, hcp_Unblind, lhcp_11April, LHCP_PreAppFixAfterFreeze, LHCP_PreAppFreeze, workingVersionAfterHCP, hcpApproval, hcpPreApp, ICHEP8TeV, HEAD
Changes since 1.6: +85 -98 lines
Log Message:
ichep 8TeV

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