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