ra4_macros  bede988c286599a3a84b77a4d788ac0a971e89f9
plot_run2015c.cxx
Go to the documentation of this file.
1 // plot_dps: Macro that plots variables both for comissioning DPS
2 
3 #include <iostream>
4 #include <vector>
5 
6 #include "TChain.h"
7 #include "TH1D.h"
8 #include "TCanvas.h"
9 #include "TLegend.h"
10 #include "TLine.h"
11 #include "TString.h"
12 #include "TColor.h"
13 
14 #include "styles.hpp"
15 #include "utilities.hpp"
16 #include "utilities_macros.hpp"
17 
18 namespace {
19  TString minjets("4");
20  TString mjthresh("400");
21  TString metcut("met>175");
22  TString minht("400");
23  TString minbm("1");
24  TString luminosity="0.016"; // in ifb
25  TString plot_type=".pdf";
26  TString plot_style="CMSPaper";
27 }
28 
29 using namespace std;
30 using std::cout;
31 using std::endl;
32 
33 int main(){
34  TString folder_ns = "/cms24r0/jaehyeok/susy_cfa_babies/2015_09_28/skim_1vlht400/";
35  TString folder_nsdata = "/cms24r0/jaehyeok/susy_cfa_babies/2015_09_25/";
36  TString folder_1l = "/cms24r0/jaehyeok/susy_cfa_babies/2015_09_28/skim_1vlht400/";
37  TString folder_1ldata = "/cms24r0/jaehyeok/susy_cfa_babies/2015_09_25/";
38  TString folder_2l = "/cms24r0/jaehyeok/susy_cfa_babies/2015_09_28/skim_2vl/";
39  TString folder_2ldata = "/cms24r0/jaehyeok/susy_cfa_babies/2015_09_25/";
40 
41  vector<TString> s_trig_htmht;
42  s_trig_htmht.push_back(folder_1ldata+"*HTMHT*");
43  vector<TString> s_trig_dl;
44  s_trig_dl.push_back(folder_2ldata+"/*DoubleMu*");
45  s_trig_dl.push_back(folder_2ldata+"/*DoubleE*");
46  vector<TString> s_trig_sl;
47  s_trig_sl.push_back(folder_2ldata+"/*Single*");
48  vector<TString> s_trig_dmu;
49  s_trig_dmu.push_back(folder_2ldata+"/*DoubleMu*");
50  vector<TString> s_trig_del;
51  s_trig_del.push_back(folder_2ldata+"/*DoubleE*");
52 
53 
54  vector<TString> s_t1t;
55  //s_t1t.push_back(folder_1l+"*T1tttt*1500_*PU20*");
56  //s_t1t.push_back("/net/cms2/cms2r0/ald77/archive/2015_07_22/skim_1lht400/*T1tttt*1500_*PU20*");
57  vector<TString> s_t1tc;
58  //s_t1tc.push_back(folder_1l+"*T1tttt*1200_*PU20*");
59  //s_t1tc.push_back("/net/cms2/cms2r0/ald77/archive/2015_07_22/skim_1lht400/*T1tttt*1200_*PU20*");
60  vector<TString> s_t1t_ns;
61  s_t1t_ns.push_back(folder_ns+"*T1tttt*1500_*PU20*");
62  vector<TString> s_t1tc_ns;
63  s_t1tc_ns.push_back(folder_ns+"*T1tttt*1200_*PU20*");
64  vector<TString> s_tt;
65  s_tt.push_back(folder_1l+"*TTJets_SingleLeptFromT*25ns*");
66  s_tt.push_back(folder_1l+"*TTJets_DiLept*25ns*");
67  vector<TString> s_tt_ns;
68  s_tt_ns.push_back(folder_2l+"*TTJets_SingleLeptFromT*25ns*");
69  s_tt_ns.push_back(folder_2l+"*TTJets_DiLept*25ns*");
70  vector<TString> s_wjets;
71  s_wjets.push_back(folder_1l+"*_WJets*");
72  vector<TString> s_singlet;
73  s_singlet.push_back(folder_1l+"*ST_*");
74  vector<TString> s_DY;
75  s_DY.push_back(folder_2l+"*DY*");
76  vector<TString> s_qcd;
77  s_qcd.push_back(folder_1l+"*QCD_Pt*");
78  vector<TString> s_ttv; //negligible
79  s_ttv.push_back(folder_2l+"*TTW*");
80  s_ttv.push_back(folder_2l+"*TTZ*");
81  vector<TString> s_other;
82  s_other.push_back(folder_1l+"*_ZJet*");
83  s_other.push_back(folder_1l+"*DY*");
84  s_other.push_back(folder_1l+"*WH_HToBB*");
85  //s_other.push_back(folder_1l+"*_TTJet*25ns*");
86  s_other.push_back(folder_2l+"*TTW*");
87  s_other.push_back(folder_2l+"*TTZ*");
88  vector<TString> s_qcdDY;
89  s_qcdDY.push_back(folder_2l+"*QCD_Pt*");
90  vector<TString> s_otherDY;
91  s_otherDY.push_back(folder_2l+"*_ZJet*");
92  s_otherDY.push_back(folder_2l+"*WH_HToBB*");
93  s_otherDY.push_back(folder_2l+"*ST_*");
94  s_otherDY.push_back(folder_2l+"*_WJets*");
95 
96  // Reading ntuples
97  vector<sfeats> Samples;
98  TString datatitle = "Data";
99  Samples.push_back(sfeats(s_trig_htmht, datatitle,kBlack,1,"trig[0]&&json_golden")); Samples.back().isData = true;
100  //Samples.push_back(sfeats(s_trig_htmht, datatitle,kBlack,1,"(trig[4]||trig[8])&&json_golden")); Samples.back().isData = true;
101  Samples.push_back(sfeats(s_tt, "t#bar{t}, 1 true lepton", dps::c_tt_1l, 1,"ntruleps<=1"));
102  Samples.push_back(sfeats(s_tt, "t#bar{t}, 2 true leptons", dps::c_tt_2l,1,"ntruleps>=2"));
103  Samples.push_back(sfeats(s_wjets, "W+jets", dps::c_wjets,1));
104  Samples.push_back(sfeats(s_singlet, "Single top", dps::c_singlet));
105  //Samples.push_back(sfeats(s_ttv, "ttV", ra4::c_ttv));
106  Samples.push_back(sfeats(s_qcd, "QCD", dps::c_qcd));
107  // Some of Other has leptons, but very little, and this is the easiest to put had tt with QCD
108  //Samples.push_back(sfeats(s_other, "Other", dps::c_other, 1,"ntruleps==0"));
109  Samples.push_back(sfeats(s_other, "Other", dps::c_other, 1));
110 
111  vector<int> ra4_sam, ra4_sam_ns;
112  unsigned nsam(Samples.size());
113  for(unsigned sam(0); sam < nsam; sam++){
114  ra4_sam.push_back(sam);
115  ra4_sam_ns.push_back(nsam+sam);
116  vector<TString> sam_files = Samples[sam].file;
117  for(unsigned ifile(0); ifile < sam_files.size(); ifile++)
118  if(Samples[sam].isData) sam_files[ifile].ReplaceAll(folder_1ldata, folder_nsdata);
119  else sam_files[ifile].ReplaceAll(folder_1l, folder_ns);
120  Samples.push_back(sfeats(sam_files, Samples[sam].label, Samples[sam].color, Samples[sam].style,
121  Samples[sam].cut));
122  Samples.back().isData = Samples[sam].isData;
123  } // Loop over samples
124 
125  int imj(Samples.size());
126  Samples.push_back(sfeats(s_trig_htmht, "Data 2l, N_{jets} #geq 4",kBlack,1,
127  "trig[0]&&njets>=4&&(nvmus+nvels)==2&&json_golden")); Samples.back().isData = true;
128  //"(trig[4]||trig[8])&&njets>=4&&(nvmus+nvels)==2&&json_golden")); Samples.back().isData = true;
129  Samples.push_back(sfeats(s_trig_htmht, "Data 1l, N_{jets} #geq 5, m_{T}#leq140, n_{b}#geq1",dps::c_tt_1l,1,
130  "trig[0]&&njets>=5&&(nvmus+nvels)==1&&mt<=140&&nbm>=1&&json_golden")); //Samples.back().isData = true;
131  //"(trig[4]||trig[8])&&njets>=5&&(nvmus+nvels)==1&&mt<=140&&nbm>=1&&json_golden")); //Samples.back().isData = true;
132  vector<int> mj_sam;
133  mj_sam.push_back(imj);
134  mj_sam.push_back(imj+1);
135 
136  int idl(Samples.size());
137  // Samples.push_back(sfeats(s_trig_dl, "Data",kBlack,1,
138  // "(trig[10]||trig[9])&&json_golden")); Samples.back().isData = true;
139  Samples.push_back(sfeats(s_trig_sl, "Data",kBlack,1,
140  "(trig[18]||trig[22])&&json_golden")); Samples.back().isData = true;
141  Samples.push_back(sfeats(s_DY, "Z+jets", dps::c_qcd));//12
142  Samples.push_back(sfeats(s_tt_ns, "t#bar{t}, 2 true leptons", dps::c_tt_2l,1,"ntruleps>=2"));
143  Samples.push_back(sfeats(s_tt_ns, "t#bar{t}, 1 true lepton", dps::c_tt_1l, 1,"ntruleps==1"));
144  Samples.push_back(sfeats(s_qcdDY, "QCD", dps::c_singlet));
145  Samples.push_back(sfeats(s_ttv, "ttV", ra4::c_ttv));
146  Samples.push_back(sfeats(s_otherDY, "Other", dps::c_other));
147  vector<int> dl_sam;
148  for(unsigned sam(idl); sam < Samples.size(); sam++) {
149  dl_sam.push_back(sam);
150  }
151  vector<int> dmu_sam(dl_sam), del_sam(dl_sam);
152  Samples.push_back(sfeats(s_trig_dmu, "Data",kBlack,1,
153  "(trig[9])&&json_golden")); Samples.back().isData = true;
154  Samples.push_back(sfeats(s_trig_del, "Data",kBlack,1,
155  "(trig[10])&&json_golden")); Samples.back().isData = true;
156  dmu_sam[0] = Samples.size()-2;
157  del_sam[0] = Samples.size()-1;
158 
159  // Defining samples with signal
160  TString factor_c("100"), factor_nc("300");
161  int isig(Samples.size());
162  Samples.push_back(sfeats(s_t1t, "Sig NC #times "+factor_nc, kRed+2)); Samples.back().factor = factor_nc;
163  Samples.push_back(sfeats(s_t1tc, "Sig C #times "+factor_c, kRed+2,2)); Samples.back().factor = factor_c;
164  vector<int> sig_sam;
165  sig_sam.push_back(ra4_sam[0]);
166  sig_sam.push_back(isig);
167  sig_sam.push_back(isig+1);
168  for(unsigned ind(1); ind<ra4_sam.size(); ind++)
169  sig_sam.push_back(ra4_sam[ind]);
170 
171  // Defining samples with signal, no skim, for log
172  factor_c = "20"; factor_nc = "20";
173  isig = Samples.size();
174  Samples.push_back(sfeats(s_t1t_ns, "Sig NC #times "+factor_nc, kRed+2)); Samples.back().factor = factor_nc;
175  Samples.push_back(sfeats(s_t1tc_ns, "Sig C #times "+factor_c, kRed+2,2)); Samples.back().factor = factor_c;
176  vector<int> sig_sam_ns;
177  sig_sam_ns.push_back(ra4_sam_ns[0]);
178  sig_sam_ns.push_back(isig);
179  sig_sam_ns.push_back(isig+1);
180  for(unsigned ind(1); ind<ra4_sam.size(); ind++)
181  sig_sam_ns.push_back(ra4_sam_ns[ind]);
182 
183  // Defining samples with signal, for log
184  isig = Samples.size();
185  Samples.push_back(sfeats(s_t1t, "Sig NC #times "+factor_nc, kRed+2)); Samples.back().factor = factor_nc;
186  Samples.push_back(sfeats(s_t1tc, "Sig C #times "+factor_c, kRed+2,2)); Samples.back().factor = factor_c;
187  vector<int> sig_sam_log;
188  sig_sam_log.push_back(ra4_sam[0]);
189  sig_sam_log.push_back(isig);
190  sig_sam_log.push_back(isig+1);
191  for(unsigned ind(1); ind<ra4_sam.size(); ind++)
192  sig_sam_log.push_back(ra4_sam[ind]);
193 
194  vector<hfeats> vars;
195 
197 
198  vars.push_back(hfeats("fjets_m[0]",8,0,480, ra4_sam, "m(J_{1}) [GeV]",
199  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+
200  "&&"+metcut+"&&njets>=4&&nbm>=1"));
201  vars.back().whichPlots = "2"; vars.back().normalize = true;
202 
203  vars.push_back(hfeats("fjets_m",8,0,480, ra4_sam, "m(J) [GeV]",
204  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+
205  "&&"+metcut+"&&njets>=4&&nbm>=1"));
206  vars.back().whichPlots = "2"; vars.back().normalize = true;
207 
208  vars.push_back(hfeats("fjets_pt[0]",8,0,800, ra4_sam, "p_{T}(J_{1}) [GeV]",
209  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+
210  "&&"+metcut+"&&njets>=4&&nbm>=1"));
211  vars.back().whichPlots = "2"; vars.back().normalize = true;
212 
213  vars.push_back(hfeats("fjets_pt",8,0,800, ra4_sam, "p_{T}(J) [GeV]",
214  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+
215  "&&"+metcut+"&&njets>=4&&nbm>=1"));
216  vars.back().whichPlots = "2"; vars.back().normalize = true;
217 
218  vars.push_back(hfeats("mj",10,0,600, ra4_sam, "M_{J} [GeV]",
219  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+
220  "&&"+metcut+"&&njets>=4&&nbm>=1"));
221  vars.back().whichPlots = "2"; vars.back().normalize = true;
222  /*
223  float minx, maxx; int nbins;
224  TString mll("(mumuv_m*(mumuv_m>0&&mumu_pt1>25)+elelv_m*(elelv_m>0&&elel_pt1>30))>80&&(mumuv_m*(mumuv_m>0&&mumu_pt1>25)+elelv_m*(elelv_m>0&&elel_pt1>30))<100");
225  minx=0.; maxx=500; nbins=static_cast<int>((maxx-minx)/25.);
226  vars.push_back(hfeats("fjets_m[0]",nbins,minx,maxx, dl_sam, "m(J_{1}) [GeV]",
227  "pass&&ht>250&&(nvmus>=2||nvels>=2)&&njets>=4&&"+mll));
228  vars.back().whichPlots = "2"; vars.back().normalize = true;
229 
230  minx=0.; maxx=600; nbins=static_cast<int>((maxx-minx)/25.);
231  vars.push_back(hfeats("mj",nbins,minx,maxx, dl_sam, "M_{J} [GeV]",
232  "pass&&ht>250&&(nvmus>=2||nvels>=2)&&njets>=4&&"+mll));
233  vars.back().whichPlots = "2"; vars.back().normalize = true;
234  */
236 
237  vars.push_back(hfeats("Max$(mus_mt*(mus_miniso<0.2))+Max$(els_mt*(els_miniso<0.1))",18,0,360, ra4_sam, "m_{T} (veto lepton) [GeV]",
238  "pass&&onht>350&&onmet>100&&((nvels==1 && nvmus==0)||(nvels==0&&nvmus==1))&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
239  vars.back().whichPlots = "1"; vars.back().normalize = true;
240 
241  vars.push_back(hfeats("Max$(mus_mt*(mus_miniso<0.2))",18,0,360, ra4_sam, "m_{T} (veto muon) [GeV]",
242  "pass&&onht>350&&onmet>100&&(nvels==0&&nvmus==1)&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
243  vars.back().whichPlots = "1"; vars.back().normalize = true;
244 
245  vars.push_back(hfeats("Max$(els_mt*(els_miniso<0.1))",18,0,360, ra4_sam, "m_{T} (veto electron) [GeV]",
246  "pass&&onht>350&&onmet>100&&(nvels==1&&nvmus==0)&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
247  vars.back().whichPlots = "1"; vars.back().normalize = true;
248 
249  vars.push_back(hfeats("mt",18,0,360, ra4_sam, "m_{T} [GeV]",
250  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
251  vars.back().whichPlots = "1"; vars.back().normalize = true;
252 
253  vars.push_back(hfeats("met",16,0,800, ra4_sam, "MET [GeV]",
254  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+"&&njets>="+minjets+"&&nbm>="+minbm));
255  vars.back().whichPlots = "1"; vars.back().normalize = true;
256 
257  vars.push_back(hfeats("ht",10,400,1400, ra4_sam, "HT [GeV]",
258  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
259  vars.back().whichPlots = "1"; vars.back().normalize = true;
260 
261  vars.push_back(hfeats("njets",11,-0.5,10.5, ra4_sam, "Number of jets",
262  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+"&&"+metcut+"&&nbm>="+minbm));
263  vars.back().whichPlots = "2"; vars.back().normalize = true;
264 
265  vars.push_back(hfeats("nbm",5,-0.5,4.5, ra4_sam, "Number of b-tags (CSVM)",
266  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets));
267  vars.back().whichPlots = "2"; vars.back().normalize = true;
268 
269  vars.push_back(hfeats("nfjets",8,-0.5,7.5, ra4_sam, "Number of fatjets",
270  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>=4&&nbm>="+minbm));
271  vars.back().whichPlots = "2"; vars.back().normalize = true;
272 
273  vars.push_back(hfeats("jets_pt[0]",16,0,800, ra4_sam, "p_{T}(j_{1}) [GeV]",
274  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>=4&&nbm>="+minbm+"&&jets_islep[0]==0"));
275  vars.back().whichPlots = "2"; vars.back().normalize = true;
276 
277  vars.push_back(hfeats("jets_pt",16,0,800, ra4_sam, "p_{T}(j) [GeV]",
278  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>=4&&nbm>="+minbm+"&&jets_islep==0"));
279  vars.back().whichPlots = "2"; vars.back().normalize = true;
280 
281  vars.push_back(hfeats("jets_eta[0]",10,-2.5,2.5, ra4_sam, "#eta(j_{1}) [GeV]",
282  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>=4&&nbm>="+minbm+"&&jets_islep[0]==0"));
283  vars.back().whichPlots = "2"; vars.back().normalize = true;
284 
285  vars.push_back(hfeats("jets_eta",10,-2.5,2.5, ra4_sam, "#eta(j) [GeV]",
286  "pass&&onht>350&&onmet>100&&(nvels+nvmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>=4&&nbm>="+minbm+"&&jets_islep==0"));
287  vars.back().whichPlots = "2"; vars.back().normalize = true;
288 
289  vars.push_back(hfeats("els_pt",10,0,200, ra4_sam, "p_{T}(veto electron) [GeV]",
290  "pass&&onht>350&&onmet>100&&(nvels==1&&nvmus==0)&&els_miniso<0.1&&ht>"+minht+"&&"+metcut+"&&njets>=4&&nbm>="+minbm));
291  vars.push_back(hfeats("els_pt",10,0,200, ra4_sam, "p_{T}(veto electron) [GeV]",
292  "pass&&onht>350&&onmet>100&&(nvels==1&&nvmus==0)&&els_miniso<0.1&&ht>"+minht+"&&"+metcut+"&&njets>=4&&nbm>="+minbm));
293  vars.back().whichPlots = "2"; vars.back().normalize = true;
294 
295  vars.push_back(hfeats("mus_pt",10,0,200, ra4_sam, "p_{T}(veto muon) [GeV]",
296  "pass&&onht>350&&onmet>100&&(nvels==0&&nvmus==1)&&mus_miniso<0.2&&ht>"+minht+"&&"+metcut+"&&njets>=4&&nbm>="+minbm));
297  vars.back().whichPlots = "2"; vars.back().normalize = true;
298 
299 
300  // // ////////////////////////////// MJ plots for the DPS ////////////////////////////
301  // vars.push_back(hfeats("mj",15,0,600, ra4_sam, "M_{J} [GeV]",
302  // "pass&&onht>350&&onmet>100&&ht>400&&met>150&nbm>=1&&njets>=5&&(nvmus+nvels)==1&&mt<=140"));
303  // vars.back().whichPlots = "2"; vars.back().normalize = true;
304 
305  // vars.push_back(hfeats("mj",15,0,600, ra4_sam, "M_{J} [GeV]",
306  // "pass&&onht>350&&onmet>100&&ht>400&&met>150&&njets>=4&&(nvmus+nvels)==2"));
307  // vars.back().whichPlots = "2"; vars.back().normalize = true;
308 
309  // vars.push_back(hfeats("mj",15,0,600, mj_sam, "M_{J} [GeV]",
310  // "pass&ht>400&&met>150"));
311  // vars.back().whichPlots = "2"; vars.back().normalize = true; //vars.back().maxRatio = 2.2;
312 
313  //TString mll("(mumuv_m*(mumuv_m>0)+elelv_m*(elelv_m>0))>80&&(mumuv_m*(mumuv_m>0)+elelv_m*(elelv_m>0))<100");
314  //vars.push_back(hfeats("mj",15,0,600, dl_sam, "M_{J} [GeV]",
315  // "ht>350&&(nvmus>=2||nvels>=2)&&njets>=4&&"+mll));
316  //vars.back().whichPlots = "2"; // vars.back().normalize = true;
317 
318 
320 /*
321  // // Invariant masses
322  vars.push_back(hfeats("mumuv_m",32,20,180, dmu_sam, "m_{#mu#mu} [GeV]",
323  "ht>350&&nvmus>=2&&njets<=3"));
324  vars.back().whichPlots = "2"; //vars.back().normalize = true;
325  vars.push_back(hfeats("elelv_m",32,20,180, del_sam, "m_{ee} [GeV]",
326  "ht>350&&nvels>=2&&njets<=3"));
327  vars.back().whichPlots = "2"; //vars.back().normalize = true;
328  vars.push_back(hfeats("mumuv_m*(mumuv_m>0)+elelv_m*(elelv_m>0)",32,20,180, dl_sam, "m_{ll} [GeV]",
329  "ht>350&&(nvmus>=2||nvels>=2)&&njets<=3"));
330  vars.back().whichPlots = "2"; //vars.back().normalize = true;
331 
332 
333  vars.push_back(hfeats("mumuv_m",32,20,180, dmu_sam, "m_{#mu#mu} [GeV]",
334  "ht>350&&nvmus>=2&&njets>=4"));
335  vars.back().whichPlots = "2"; //vars.back().normalize = true;
336  vars.push_back(hfeats("elelv_m",32,20,180, del_sam, "m_{ee} [GeV]",
337  "ht>350&&nvels>=2&&njets>=4"));
338  vars.back().whichPlots = "2"; //vars.back().normalize = true;
339  vars.push_back(hfeats("mumuv_m*(mumuv_m>0)+elelv_m*(elelv_m>0)",32,20,180, dl_sam, "m_{ll} [GeV]",
340  "ht>350&&(nvmus>=2||nvels>=2)&&njets>=4"));
341  vars.back().whichPlots = "2"; //vars.back().normalize = true;
342 
343  // Kinematic distributions
344  vars.push_back(hfeats("ht",20,0,1000, dl_sam, "H_{T}^{HLT} [GeV]",
345  "(nvmus>=2||nvels>=2)&&njets>=4&&"+mll));
346  vars.back().whichPlots = "2"; // vars.back().normalize = true;
347  vars.push_back(hfeats("njets",9,-0.5,8.5, dl_sam, "N_{jets} [GeV]",
348  "ht>350&&(nvmus>=2||nvels>=2)&&"+mll));
349  vars.back().whichPlots = "2"; // vars.back().normalize = true;
350  vars.push_back(hfeats("fjets_m[0]",20,0,500, dl_sam, "Most massive fat jet mass [GeV]",
351  "ht>350&&(nvmus>=2||nvels>=2)&&njets>=4&&"+mll));
352  vars.back().whichPlots = "2"; // vars.back().normalize = true;
353  vars.push_back(hfeats("nfjets",10,-0.5,9.5, dl_sam, "N_{fat jets}",
354  "ht>350&&(nvmus>=2||nvels>=2)&&njets>=4&&"+mll));
355  vars.back().whichPlots = "2"; // vars.back().normalize = true;
356 
357 
358  // // MJ distributions
359  vars.push_back(hfeats("mj",20,0,600, dl_sam, "M_{J} [GeV]",
360  "ht>350&&(nvmus>=2||nvels>=2)&&njets<=3&&"+mll));
361  vars.back().whichPlots = "2"; // vars.back().normalize = true;
362  vars.push_back(hfeats("mj",20,0,600, dl_sam, "M_{J} [GeV]",
363  "ht>350&&(nvmus>=2||nvels>=2)&&njets>=4&&"+mll));
364  vars.back().whichPlots = "2"; // vars.back().normalize = true;
365 */
366  plot_distributions(Samples, vars, luminosity, plot_type, plot_style, "1d_2015c",true);
367 
368 
369 }
370 
void plot_distributions(std::vector< sfeats > Samples, std::vector< hfeats > vars, TString luminosity="10", TString filetype=".eps", TString namestyle="LargeLabels", TString dir="1d", bool doRatio=false, bool showcuts=false)
STL namespace.
int main()