ra4_macros  bede988c286599a3a84b77a4d788ac0a971e89f9
plot_run2015d.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("6");
20  TString mjthresh("400");
21  TString metcut("met>200");
22  TString minht("500");
23  TString minbm("1");
24  TString luminosity="2.25"/*1.264*//*"0.832"*//*"0.135"*/; // 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 //float njets_reweight(int njets);
34 /*
35 if(njets<0) return 1;
36 if(njets==1) return 1.47;
37 if(njets==2) return 1.182;
38 if(njets==3) return 1.034;
39 if(njets==4) return 1.232;
40 if(njets==5) return 0.913;
41 if(njets==6) return 0.995;
42 if(njets==7) return 0.725;
43 if(njets==8) return 0.486;
44 if(njets==9) return 0.598;
45 if(njets>=10) return 0.516;
46 */
47 
48 
49 int main(){
50 
51  TString folder_ns = "/net/cms2/cms2r0/babymaker/babies/2015_11_28/mc/";
52  TString folder_nsdata = "/net/cms2/cms2r0/babymaker/babies/2015_11_20/data/singlelep/combined/";
53  TString folder_1l = "/net/cms2/cms2r0/babymaker/babies/2015_11_28/mc/skim_1lht500met200/";
54  TString folder_1ldata = "/net/cms2/cms2r0/babymaker/babies/2015_11_20/data/singlelep/combined/skim_1lht500met200/";
55  //TString folder_2l = "/net/cms2/cms2r0/babymaker/babies/2015_11_28/mc/";//skim_2l/";
56  //TString folder_2ldata = "/net/cms2/cms2r0/babymaker/babies/2015_11_20/data/singlelep/combined/";//skim_2l/";
57  TString folder_2l = "/net/cms2/cms2r0/jaehyeok/babies/2015_11_28/mc/skim_2l/";
58  TString folder_2ldata = "/net/cms2/cms2r0/jaehyeok/babies/2015_11_20/data/skim_2l/";
59 
60  TString folder_2vl = "/net/cms24/cms24r0/jaehyeok/susy_cfa_babies/2015_09_28/skim_2vl/";
61 
62  //
63  // L = 1.264 pb-1
64  // /net/cms2/cms2r0/babymaker/babies/2015_10_25/data/singlelep/combined/skim_1lht500met200
65  // /net/cms2/cms2r0/babymaker/babies/2015_10_25/data/hadronic/*
66  //
67 
69  vector<TString> s_trig_htmht;
70  s_trig_htmht.push_back(folder_1ldata+"*HTMHT*root");
71  vector<TString> s_trig_dl;
72  s_trig_dl.push_back(folder_1ldata+"/*DoubleMu*root");
73  s_trig_dl.push_back(folder_1ldata+"/*DoubleE*root");
74  vector<TString> s_trig_sl;
75  s_trig_sl.push_back(folder_1ldata+"/*Single*root");
76  vector<TString> s_trig_dmu;
77  s_trig_dmu.push_back(folder_1ldata+"/*DoubleMu*root");
78  vector<TString> s_trig_del;
79  s_trig_del.push_back(folder_1ldata+"/*DoubleE*root");
80  vector<TString> s_trig_sl_2l;
81  s_trig_sl_2l.push_back(folder_2ldata+"/*Run*SingleElectron_SingleMuon*root");
82 
84  // 1-lepton plots : ra4_sam
85  vector<TString> s_t1t_ns;
86  vector<TString> s_t1tc_ns;
87  vector<TString> s_tt;
88  s_tt.push_back(folder_1l+"*_TTJets*Lept*root");
89  s_tt.push_back(folder_1l+"*_TTJets_HT*root");
90  vector<TString> s_wjets;
91  s_wjets.push_back(folder_1l+"*_WJetsToLNu*root");
92  vector<TString> s_ttv;
93  s_ttv.push_back(folder_1l+"*_TTWJets*root");
94  s_ttv.push_back(folder_1l+"*_TTZTo*root");
95  vector<TString> s_single;
96  s_single.push_back(folder_1l+"*_ST_*root");
97  vector<TString> s_other;
98  s_other.push_back(folder_1l+"*DYJetsToLL*root");
99  s_other.push_back(folder_1l+"*_QCD_HT*root");
100  s_other.push_back(folder_1l+"*_ZJet*root");
101  s_other.push_back(folder_1l+"*_WWTo*root");
102  s_other.push_back(folder_1l+"*ggZH_HToBB*root");
103  s_other.push_back(folder_1l+"*ttHJetTobb*root");
104  vector<TString> s_t1t;
105  s_t1t.push_back(folder_1l+"*T1tttt*1500_*root");
106  vector<TString> s_t1tc;
107  s_t1tc.push_back(folder_1l+"*T1tttt*1200_*root");
108 
109  // 2-lepton plots : dl_sam
110  vector<TString> s_DY;
111  s_DY.push_back(folder_2l+"*DYJetsToLL*root");
112  vector<TString> s_tt_dl;
113  s_tt_dl.push_back(folder_2l+"*_TTJets*Lept*root");
114  s_tt_dl.push_back(folder_2l+"*_TTJets_HT*root");
115  vector<TString> s_singleDY;
116  s_singleDY.push_back(folder_2l+"*ST_*root");
117  vector<TString> s_ttvDY; //negligible
118  s_ttvDY.push_back(folder_2l+"*_TTWJets*root");
119  s_ttvDY.push_back(folder_2l+"*_TTZTo*root");
120  vector<TString> s_otherDY;
121  s_otherDY.push_back(folder_2l+"*_ZJet*root");
122  s_otherDY.push_back(folder_2l+"*QCD_HT*root");
123  s_otherDY.push_back(folder_2l+"*_WJetsToLNu*root");
124  s_otherDY.push_back(folder_2l+"*_WWTo*root");
125  s_otherDY.push_back(folder_2l+"*ggZH_HToBB*root");
126  s_otherDY.push_back(folder_2l+"*ttHJetTobb*root");
127 
128  // Reading ntuples
129  vector<sfeats> Samples;
130  TString datatitle = "Data";
131  //Samples.push_back(sfeats(s_trig_htmht, datatitle,kBlack,1,"trig[0]&&pass")); Samples.back().isData = true;
132  Samples.push_back(sfeats(s_trig_sl, datatitle,kBlack,1,"(trig[4]||trig[8])&&pass")); Samples.back().isData = true;
133  Samples.push_back(sfeats(s_tt, "t#bar{t}, 1 true lepton", dps::c_tt_1l, 1,"ntruleps<=1&&stitch"));
134  Samples.push_back(sfeats(s_tt, "t#bar{t}, 2 true leptons", dps::c_tt_2l,1,"ntruleps>=2&&stitch"));
135  Samples.push_back(sfeats(s_wjets, "W+jets", dps::c_wjets,1));
136  Samples.push_back(sfeats(s_single, "Single top", dps::c_singlet));
137  Samples.push_back(sfeats(s_ttv, "ttV", ra4::c_ttv));
138  //Samples.push_back(sfeats(s_qcd, "QCD", dps::c_qcd));
139  // Some of Other has leptons, but very little, and this is the easiest to put had tt with QCD
140  //Samples.push_back(sfeats(s_other, "Other", dps::c_other, 1,"ntruleps==0"));
141  Samples.push_back(sfeats(s_other, "Other", 1001, 1));
142 
143  vector<int> ra4_sam, ra4_sam_ns;
144  unsigned nsam(Samples.size());
145  for(unsigned sam(0); sam < nsam; sam++){
146  ra4_sam.push_back(sam);
147  ra4_sam_ns.push_back(nsam+sam);
148  vector<TString> sam_files = Samples[sam].file;
149  for(unsigned ifile(0); ifile < sam_files.size(); ifile++)
150  if(Samples[sam].isData) sam_files[ifile].ReplaceAll(folder_1ldata, folder_nsdata);
151  else sam_files[ifile].ReplaceAll(folder_1l, folder_ns);
152  Samples.push_back(sfeats(sam_files, Samples[sam].label, Samples[sam].color, Samples[sam].style,
153  Samples[sam].cut));
154  Samples.back().isData = Samples[sam].isData;
155  } // Loop over samples
156 
157  int imj(Samples.size());
158  Samples.push_back(sfeats(s_trig_sl_2l, "Data 2l, N_{jets} #geq 5", kBlack, 1,
159  "pass&&(trig[4]||trig[8])&&ht>500&&met>200&&met<400&&njets>=5&&nbm<3&&(nmus+nels)==2&&mj>250")); Samples.back().isData = true;
160  Samples.push_back(sfeats(s_trig_sl, "Data 1l, N_{jets} #geq 6, m_{T}#leq140, n_{b}#geq1", dps::c_tt_1l, 1,
161  "pass&&(trig[4]||trig[8])&&ht>500&&met>200&&met<400&&njets>=6&&(nmus+nels)==1&&mt<=140&&nbm>=1&&mj>250")); //Samples.back().isData = true;
162  vector<int> mj_sam;
163  mj_sam.push_back(imj);
164  mj_sam.push_back(imj+1);
165 
166  int idl(Samples.size());
167  // Samples.push_back(sfeats(s_trig_dl, "Data",kBlack,1,
168  // "(trig[10]||trig[9])&&json")); Samples.back().isData = true;
169  Samples.push_back(sfeats(s_trig_sl_2l, "Data",kBlack,1,
170  "(trig[20]||trig[22])&&pass")); Samples.back().isData = true;
171  Samples.push_back(sfeats(s_tt_dl, "t#bar{t}, 2 true leptons", dps::c_tt_2l,1,"ntruleps>=2&&stitch"));
172  Samples.push_back(sfeats(s_tt_dl, "t#bar{t}, 1 true lepton", dps::c_tt_1l, 1,"ntruleps==1&&stitch"));
173  Samples.push_back(sfeats(s_DY, "Z+jets", dps::c_qcd, 1, "stitch"));//12
174  Samples.push_back(sfeats(s_singleDY, "QCD", dps::c_singlet));
175  Samples.push_back(sfeats(s_ttvDY, "ttV", ra4::c_ttv));
176  Samples.push_back(sfeats(s_otherDY, "Other", dps::c_other));
177  vector<int> dl_sam;
178  for(unsigned sam(idl); sam < Samples.size(); sam++) {
179  dl_sam.push_back(sam);
180  }
181  vector<int> dmu_sam(dl_sam), del_sam(dl_sam);
182  //Samples.push_back(sfeats(s_trig_dmu, "Data",kBlack,1,
183  // "(trig[9])&&json")); Samples.back().isData = true;
184  Samples.push_back(sfeats(s_trig_sl, "Data",kBlack,1,
185  "(trig[18])&&pass")); Samples.back().isData = true;
186  //Samples.push_back(sfeats(s_trig_del, "Data",kBlack,1,
187  // "(trig[10])&&json")); Samples.back().isData = true;
188  Samples.push_back(sfeats(s_trig_sl, "Data",kBlack,1,
189  "(trig[22])&&pass")); Samples.back().isData = true;
190  dmu_sam[0] = Samples.size()-2;
191  del_sam[0] = Samples.size()-1;
192 
193  // Defining samples with signal
194  TString factor_c("100"), factor_nc("300");
195  int isig(Samples.size());
196  Samples.push_back(sfeats(s_t1t, "Sig NC #times "+factor_nc, kRed+2)); Samples.back().factor = factor_nc;
197  Samples.push_back(sfeats(s_t1tc, "Sig C #times "+factor_c, kRed+2,2)); Samples.back().factor = factor_c;
198  vector<int> sig_sam;
199  sig_sam.push_back(ra4_sam[0]);
200  sig_sam.push_back(isig);
201  sig_sam.push_back(isig+1);
202  for(unsigned ind(1); ind<ra4_sam.size(); ind++)
203  sig_sam.push_back(ra4_sam[ind]);
204 
205  // Defining samples with signal, no skim, for log
206  factor_c = "20"; factor_nc = "20";
207  isig = Samples.size();
208  Samples.push_back(sfeats(s_t1t_ns, "Sig NC #times "+factor_nc, kRed+2)); Samples.back().factor = factor_nc;
209  Samples.push_back(sfeats(s_t1tc_ns, "Sig C #times "+factor_c, kRed+2,2)); Samples.back().factor = factor_c;
210  vector<int> sig_sam_ns;
211  sig_sam_ns.push_back(ra4_sam_ns[0]);
212  sig_sam_ns.push_back(isig);
213  sig_sam_ns.push_back(isig+1);
214  for(unsigned ind(1); ind<ra4_sam.size(); ind++)
215  sig_sam_ns.push_back(ra4_sam_ns[ind]);
216 
217  // Defining samples with signal, for log
218  isig = Samples.size();
219  Samples.push_back(sfeats(s_t1t, "Sig NC #times "+factor_nc, kRed+2)); Samples.back().factor = factor_nc;
220  Samples.push_back(sfeats(s_t1tc, "Sig C #times "+factor_c, kRed+2,2)); Samples.back().factor = factor_c;
221  vector<int> sig_sam_log;
222  sig_sam_log.push_back(ra4_sam[0]);
223  sig_sam_log.push_back(isig);
224  sig_sam_log.push_back(isig+1);
225  for(unsigned ind(1); ind<ra4_sam.size(); ind++)
226  sig_sam_log.push_back(ra4_sam[ind]);
227 
228  vector<hfeats> vars;
229 
230  // Invariant masses
231  TString mll("(mumu_m*(mumu_m>0&&mumu_pt1>30)+elel_m*(elel_m>0&&elel_pt1>30))>80&&(mumu_m*(mumu_m>0&&mumu_pt1>30)+elel_m*(elel_m>0&&elel_pt1>30))<100");
232 
233  //
234  // Figure 29
235  //
236 /*
237  // MET needs to use unskimmed babies
238  vars.push_back(hfeats("met",16,0,800, ra4_sam, "MET [GeV]",
239  "pass&&(nels+nmus)==1&&ht>"+minht+"&&njets>="+minjets+"&&nbm>="+minbm));
240  vars.back().whichPlots = "1"; vars.back().normalize = true;
241 
242  vars.push_back(hfeats("ht",10,500,1500, ra4_sam, "HT [GeV]",
243  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
244  vars.back().whichPlots = "1"; vars.back().normalize = true;
245 
246  vars.push_back(hfeats("njets",11,-0.5,10.5, ra4_sam, "Number of jets",
247  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&nbm>="+minbm));
248  vars.back().whichPlots = "2"; vars.back().normalize = true;
249 
250  vars.push_back(hfeats("nbm",5,-0.5,4.5, ra4_sam, "Number of b-tags (CSVM)",
251  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets));
252  vars.back().whichPlots = "2"; vars.back().normalize = true;
253 
254  //
255  // Figure 30
256  //
257  vars.push_back(hfeats("jets_pt[0]",16,0,800, ra4_sam, "p_{T}(j_{1}) [GeV]",
258  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm+"&&jets_islep[0]==0"));
259  vars.back().whichPlots = "2"; vars.back().normalize = true;
260 
261  vars.push_back(hfeats("jets_pt",16,0,800, ra4_sam, "p_{T}(j) [GeV]",
262  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm+"&&jets_islep==0"));
263  vars.back().whichPlots = "2"; vars.back().normalize = true;
264 
265  vars.push_back(hfeats("jets_eta[0]",10,-2.5,2.5, ra4_sam, "#eta(j_{1}) [GeV]",
266  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm+"&&jets_islep[0]==0"));
267  vars.back().whichPlots = "2"; vars.back().normalize = true;
268 
269  vars.push_back(hfeats("jets_eta",10,-2.5,2.5, ra4_sam, "#eta(j) [GeV]",
270  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm+"&&jets_islep==0"));
271  vars.back().whichPlots = "2"; vars.back().normalize = true;
272 
273  vars.push_back(hfeats("jets_csv",20,0,1, ra4_sam, "csv(j) [GeV]",
274  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm+"&&jets_islep==0"));
275  vars.back().whichPlots = "2"; vars.back().normalize = true;
276  vars.push_back(hfeats("jets_csv[0]",20,0,1, ra4_sam, "csv(j_{1}) [GeV]",
277  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm+"&&jets_islep[0]==0"));
278  vars.back().whichPlots = "2"; vars.back().normalize = true;
279 
280  //
281  // Figure 31
282  //
283  vars.push_back(hfeats("Max$(els_pt*(els_miniso<0.1&&els_sigid&&els_pt>20))",10,0.001,200, ra4_sam, "p_{T}(electron) [GeV]",
284  "pass&&(nels==1&&nmus==0)&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
285  vars.back().whichPlots = "2"; vars.back().normalize = true;
286 
287  vars.push_back(hfeats("Max$(mus_pt*(mus_miniso<0.2&&mus_sigid&&mus_pt>20))",10,0.001,200, ra4_sam, "p_{T}(muon) [GeV]",
288  "pass&&(nels==0&&nmus==1)&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
289  vars.back().whichPlots = "2"; vars.back().normalize = true;
290 
291  //
292  // Figure 32
293  //
294  vars.push_back(hfeats("fjets_pt[0]",8,0,800, ra4_sam, "p_{T}(J_{1}) [GeV]",
295  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
296  vars.back().whichPlots = "2"; vars.back().normalize = true;
297 
298  vars.push_back(hfeats("fjets_pt",8,0,800, ra4_sam, "p_{T}(J) [GeV]",
299  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
300  vars.back().whichPlots = "2"; vars.back().normalize = true;
301 
302  vars.push_back(hfeats("fjets_m[0]",8,0,480, ra4_sam, "m(J_{1}) [GeV]",
303  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
304  vars.back().whichPlots = "2"; vars.back().normalize = true;
305 
306  vars.push_back(hfeats("fjets_m",8,0,480, ra4_sam, "m(J) [GeV]",
307  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
308  vars.back().whichPlots = "2"; vars.back().normalize = true;
309 
310  vars.push_back(hfeats("fjets_nconst[0]",6,-0.5,5.5, ra4_sam, "Number of fatjet1 constituents",
311  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
312  vars.back().whichPlots = "2"; vars.back().normalize = true;
313 
314  vars.push_back(hfeats("fjets_nconst",6,-0.5,5.5, ra4_sam, "Number of fatjet constituents",
315  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
316  vars.back().whichPlots = "2"; vars.back().normalize = true;
317 
318  //
319  // Figure 33
320  //
321  vars.push_back(hfeats("nfjets",10,-0.5,9.5, ra4_sam, "Number of fatjets",
322  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
323  vars.back().whichPlots = "2"; vars.back().normalize = true;
324 
325  vars.push_back(hfeats("fjets_m[0]",40,0,400, ra4_sam, "m(J_{1}) [GeV]",
326  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets<"+minjets+"&&nbm>="+minbm));
327  vars.back().whichPlots = "2"; vars.back().normalize = true; // for mtop peak
328 
329  vars.push_back(hfeats("mj",12,0,600, ra4_sam, "M_{J} [GeV]",
330  "pass&&mt<140&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
331  vars.back().whichPlots = "2"; vars.back().normalize = true;
332 
333  vars.push_back(hfeats("mj",12,0,600, ra4_sam, "M_{J} [GeV]",
334  "pass&&mt>140&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
335  vars.back().whichPlots = "2"; vars.back().normalize = true;
336 
337  //
338  // Figure 34
339  //
340  vars.push_back(hfeats("mt",18,0,360, ra4_sam, "m_{T} [GeV]",
341  "pass&&mj<400&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
342  vars.back().whichPlots = "1"; vars.back().normalize = true;
343 
344  vars.push_back(hfeats("mt",18,0,360, ra4_sam, "m_{T} [GeV]",
345  "pass&&mj<400&&nels==1&&nmus==0&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
346  vars.back().whichPlots = "1"; vars.back().normalize = true;
347 
348  vars.push_back(hfeats("mt",18,0,360, ra4_sam, "m_{T} [GeV]",
349  "pass&&mj<400&&nels==0&&nmus==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
350  vars.back().whichPlots = "1"; vars.back().normalize = true;
351 
352  vars.push_back(hfeats("mt",18,0,360, ra4_sam, "m_{T} [GeV]",
353  "pass&&mj>400&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
354  vars.back().whichPlots = "1"; vars.back().normalize = true;
355 
356  vars.push_back(hfeats("mt",18,0,360, ra4_sam, "m_{T} [GeV]",
357  "pass&&mj>400&&nels==1&&nmus==0&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
358  vars.back().whichPlots = "1"; vars.back().normalize = true;
359 
360  vars.push_back(hfeats("mt",18,0,360, ra4_sam, "m_{T} [GeV]",
361  "pass&&mj>400&&nels==0&&nmus==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm>="+minbm));
362  vars.back().whichPlots = "1"; vars.back().normalize = true;
363 
364  //
365  // Figure 35
366  //
367  vars.push_back(hfeats("mt",18,0,360, ra4_sam, "m_{T} [GeV]",
368  "pass&&(nels+nmus)==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm==0"));
369  vars.back().whichPlots = "1"; vars.back().normalize = true;
370 
371  vars.push_back(hfeats("mt",18,0,360, ra4_sam, "m_{T} [GeV]",
372  "pass&&nels==1&&nmus==0&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm==0"));
373  vars.back().whichPlots = "1"; vars.back().normalize = true;
374 
375  vars.push_back(hfeats("mt",18,0,360, ra4_sam, "m_{T} [GeV]",
376  "pass&&nels==0&&nmus==1&&ht>"+minht+"&&"+metcut+"&&njets>="+minjets+"&&nbm==0"));
377  vars.back().whichPlots = "1"; vars.back().normalize = true;
378 */
379 
380  //
381  // Figure 36
382  //
383  vars.push_back(hfeats("mj",10,0,500, dl_sam, "M_{J} [GeV]",
384  "pass&&nels==1&&nmus==1&&met>100&&nbm>=1&&(Sum$(leps_pt>30&&abs(leps_eta)<2.1)>0)"));
385  vars.back().whichPlots = "2"; vars.back().normalize = true;
386 
387  vars.push_back(hfeats("mj",10,0,500, dl_sam, "M_{J} [GeV]",
388  "pass&&nels==1&&nmus==1&&met>100&&nbm>=1&&(Sum$(leps_pt>30&&abs(leps_eta)<2.1)>0)&&ht>300"));
389  vars.back().whichPlots = "2"; vars.back().normalize = true;
390 
391  //
392  // Figure 37
393  //
394  vars.push_back(hfeats("mj",20,0,600, dl_sam, "M_{J} [GeV]",
395  "pass&&ht>350&&(nmus>=2||nels>=2)&&njets<=3&&"+mll));
396  vars.back().whichPlots = "2"; vars.back().normalize = true;
397 
398  vars.push_back(hfeats("mj",20,0,600, dl_sam, "M_{J} [GeV]",
399  "pass&&ht>350&&(nmus>=2||nels>=2)&&njets>=4&&"+mll));
400  vars.back().whichPlots = "2"; vars.back().normalize = true;
401 
402  //
403  plot_distributions(Samples, vars, luminosity, plot_type, plot_style, "1d_2015d",true);
404 
405 }
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()