ra4_macros  bede988c286599a3a84b77a4d788ac0a971e89f9
plot_aux.cxx
Go to the documentation of this file.
1 // plot_aux: Macro that makes the auxiliary plots for SUS-15-007
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 plotSet = "MC1D";
20 
21  int sigcolor(kRed);
22  int stcolor(kMagenta-2);
23  TString luminosity="2.3";
24  TString plot_type=".pdf";
25  TString plot_style="CMSPaper_Supplementary";
26 }
27 
28 using namespace std;
29 using std::cout;
30 using std::endl;
31 
32 void doN1_R4(); // N-1 and R4 plots
33 void doSignal(); // Signal plots
34 void do_MJ_validation();
35 void doSyst(); // Syst plots (rohanplot is made in plot_rohanplots.cxx)
36 void doMC1D();
37 
38 int main(){
39 
40  if(plotSet.Contains("N1_R4")) doN1_R4();
41  if(plotSet.Contains("Signal")) doSignal();
42  if(plotSet.Contains("MJ_validation")) do_MJ_validation();
43  if(plotSet.Contains("Syst")) doSyst();
44  if(plotSet.Contains("MC1D")) doMC1D();
45 }
46 
47 // N-1 and R4 plots
48 void doN1_R4(){
49 
50  TString bfolder("");
51  string hostname = execute("echo $HOSTNAME");
52  if(Contains(hostname, "cms") || Contains(hostname, "compute-"))
53  bfolder = "/net/cms2"; // In laptops, you can't create a /net folder
54 
55  TString folder1l(bfolder+"/cms2r0/babymaker/babies/2016_02_04/data/singlelep/combined/skim_1lht500met200/");
56  TString foldermc(bfolder+"/cms2r0/babymaker/babies/2015_11_28/mc/skim_1lht500met200/");
57 
58  // Folders with no MET or HT cuts
59  TString folder1l_met(bfolder+"/cms2r0/babymaker/babies/2016_02_04/data/singlelep/combined/skim_1lnjets6nb1/");
60  TString foldermc_met(bfolder+"/cms2r0/babymaker/babies/2015_11_28/mc/skim_1lnjets6nb1/");
61 
62  vector<TString> s_slep;
63  s_slep.push_back(folder1l+"*root");
64  vector<TString> s_slep_met;
65  s_slep_met.push_back(folder1l_met+"*root");
66 
67 
68  vector<TString> s_t1t;
69  s_t1t.push_back(foldermc+"*T1tttt*1500_*");
70  vector<TString> s_t1tc;
71  s_t1tc.push_back(foldermc+"*T1tttt*1200_*");
72  vector<TString> s_tt;
73  s_tt.push_back(foldermc+"*_TTJets*Lept*");
74  s_tt.push_back(foldermc+"*_TTJets_HT*");
75  vector<TString> s_wjets;
76  s_wjets.push_back(foldermc+"*_WJetsToLNu*");
77  vector<TString> s_ttv;
78  s_ttv.push_back(foldermc+"*_TTWJets*");
79  s_ttv.push_back(foldermc+"*_TTZTo*");
80  vector<TString> s_single;
81  s_single.push_back(foldermc+"*_ST_*");
82  vector<TString> s_other;
83  s_other.push_back(foldermc+"*DYJetsToLL*");
84  s_other.push_back(foldermc+"*_QCD_HT*");
85  s_other.push_back(foldermc+"*_ZJet*");
86  s_other.push_back(foldermc+"*_WWTo*");
87  s_other.push_back(foldermc+"*ggZH_HToBB*");
88  s_other.push_back(foldermc+"*ttHJetTobb*");
89 
90  vector<TString> s_t1t_met;
91  s_t1t_met.push_back(foldermc_met+"*T1tttt*1500_*");
92  vector<TString> s_t1tc_met;
93  s_t1tc_met.push_back(foldermc_met+"*T1tttt*1200_*");
94  vector<TString> s_tt_met;
95  s_tt_met.push_back(foldermc_met+"*_TTJets*Lept*");
96  s_tt_met.push_back(foldermc_met+"*_TTJets_HT*");
97  vector<TString> s_wjets_met;
98  s_wjets_met.push_back(foldermc_met+"*_WJetsToLNu*");
99  vector<TString> s_ttv_met;
100  s_ttv_met.push_back(foldermc_met+"*_TTWJets*");
101  s_ttv_met.push_back(foldermc_met+"*_TTZTo*");
102  vector<TString> s_single_met;
103  s_single_met.push_back(foldermc_met+"*_ST_*");
104  vector<TString> s_other_met;
105  s_other_met.push_back(foldermc_met+"*DYJetsToLL*");
106  s_other_met.push_back(foldermc_met+"*_QCD_HT*");
107  s_other_met.push_back(foldermc_met+"*_ZJet*");
108  s_other_met.push_back(foldermc_met+"*_WWTo*");
109  s_other_met.push_back(foldermc_met+"*ggZH_HToBB*");
110  s_other_met.push_back(foldermc_met+"*ttHJetTobb*");
111 
112 
113  // Reading ntuples
114  TString lsp = "{#lower[-0.1]{#tilde{#chi}}#lower[0.2]{#scale[0.85]{^{0}}}#kern[-1.3]{#scale[0.85]{_{1}}}}";
115  TString t1t_label = "#scale[0.95]{#tilde{g}#kern[0.2]{#tilde{g}}, #tilde{g}#rightarrowt#kern[0.18]{#bar{t}}#kern[0.18]"+lsp;
116  vector<sfeats> Samples;
117  Samples.push_back(sfeats(s_slep, "Data", kBlack,1,"(trig[4]||trig[8])&&pass")); Samples.back().isData = true;
118  Samples.push_back(sfeats(s_t1t, t1t_label+" (1500,100)}", sigcolor, 1));
119  Samples.push_back(sfeats(s_t1tc, t1t_label+" (1200,800)}", sigcolor, 2));
120  Samples.push_back(sfeats(s_tt, "t#bar{t}, 1 true lepton", dps::c_tt_1l, 1,"ntruleps<=1&&stitch"));
121  Samples.push_back(sfeats(s_tt, "t#bar{t}, 2 true leptons", dps::c_tt_2l,1,"ntruleps>=2&&stitch"));
122  Samples.push_back(sfeats(s_wjets, "W+jets", dps::c_wjets,1));
123  Samples.push_back(sfeats(s_single, "Single t", stcolor));
124  Samples.push_back(sfeats(s_ttv, "ttV", ra4::c_ttv));
125  Samples.push_back(sfeats(s_other, "Other", 2001, 1));
126 
127  vector<int> ra4_sam;
128  unsigned nsam(Samples.size());
129  for(unsigned sam(0); sam < nsam; sam++){
130  ra4_sam.push_back(sam);
131  } // Loop over samples
132 
134  int imet(Samples.size());
135  Samples.push_back(sfeats(s_slep_met, "Data", kBlack,1,"(trig[4]||trig[8])")); Samples.back().isData = true;
136  Samples.push_back(sfeats(s_t1t_met, t1t_label+" (1500,100)}", sigcolor, 1));
137  Samples.push_back(sfeats(s_t1tc_met, t1t_label+" (1200,800)}", sigcolor, 2));
138  Samples.push_back(sfeats(s_tt_met, "t#bar{t}, 1 true lepton", dps::c_tt_1l, 1,"ntruleps<=1&&stitch"));
139  Samples.push_back(sfeats(s_tt_met, "t#bar{t}, 2 true leptons", dps::c_tt_2l,1,"ntruleps>=2&&stitch"));
140  Samples.push_back(sfeats(s_wjets_met, "W+jets", dps::c_wjets,1));
141  Samples.push_back(sfeats(s_single_met, "Single t", stcolor));
142  Samples.push_back(sfeats(s_ttv_met, "ttV", ra4::c_ttv));
143  Samples.push_back(sfeats(s_other_met, "Other", 2001, 1));
144  vector<int> met_sam;
145  for(unsigned sam(imet); sam < Samples.size(); sam++){
146  met_sam.push_back(sam);
147  } // Loop over samples
148 
149 
150  vector<hfeats> vars;
151 
152  // // N-1 plots
153  vars.push_back(hfeats("ht",39,0,1950, met_sam, "H_{T} [GeV]","nleps==1&&pass&&met>200&&njets>=6&&nbm>=1",500,"N1"));
154  vars.back().whichPlots = "12"; vars.back().normalize = true;
155  vars.push_back(hfeats("met",32,0,800, met_sam, "E_{T}^{miss} [GeV]","nleps==1&&pass&&ht>500&&njets>=6&&nbm>=1",200,"N1"));
156  vars.back().whichPlots = "12"; vars.back().normalize = true;
157 
158  vars.push_back(hfeats("njets",12, 0.5,12.5, ra4_sam, "N_{jets}","nleps==1&&pass&&ht>500&&met>200&&nbm>=1",5.5,"N1"));
159  vars.back().whichPlots = "12"; vars.back().normalize = true;
160  vars.push_back(hfeats("nbm",5, -0.5,4.5, ra4_sam, "N_{b}","nleps==1&&pass&&ht>500&&met>200&&njets>=6",0.5,"N1"));
161  vars.back().whichPlots = "12"; vars.back().normalize = true;
162 
163  // Distributions in R4
164  TString skimCuts("nleps==1&&pass&&ht>500&&met>200");
165  vars.push_back(hfeats("met",10,200,700, ra4_sam, "E_{T}^{miss} [GeV]",
166  skimCuts+"&&mt>140&&mj>400&&nbm>=1&&njets>=6",400,"R4"));
167  vars.back().whichPlots = "12"; vars.back().normalize = true;
168 
169  vars.push_back(hfeats("mj",12,0,1200, ra4_sam, "M_{J} [GeV]",
170  skimCuts+"&&mt>140&&nbm>=1&&njets>=6",400,"R4"));
171  vars.back().whichPlots = "12"; vars.back().normalize = true;
172 
173  vars.push_back(hfeats("mt",14,0,490, ra4_sam, "m_{T} [GeV]",
174  skimCuts+"&&mj>400&&nbm>=1&&njets>=6",140,"R4"));
175  vars.back().whichPlots = "12"; vars.back().normalize = true;
176 
177  vars.push_back(hfeats("njets",12, 0.5,12.5, ra4_sam, "N_{jets}",
178  skimCuts+"&&mt>140&&mj>400&&nbm>=1",8.5,"R4"));
179  vars.back().whichPlots = "12"; vars.back().normalize = true;
180  vars.push_back(hfeats("nbm",5, -0.5,4.5, ra4_sam, "N_{b}",
181  skimCuts+"&&mt>140&&mj>400&&njets>=6",2.5,"R4"));
182  vars.back().whichPlots = "12"; vars.back().normalize = true;
183 
184  plot_distributions(Samples, vars, luminosity, plot_type, plot_style, "aux",true);
185 }
186 
187 // Signal
188 void doSignal(){
189 
190  TString bfolder("");
191  string hostname = execute("echo $HOSTNAME");
192  if(Contains(hostname, "cms") || Contains(hostname, "compute-"))
193  bfolder = "/net/cms2"; // In laptops, you can't create a /net folder
194 
195  TString foldermc(bfolder+"/cms2r0/babymaker/babies/2015_11_28/mc/");
196 
197  vector<TString> s_t1t;
198  s_t1t.push_back(foldermc+"*T1tttt*1500_*");
199  vector<TString> s_t1tc;
200  s_t1tc.push_back(foldermc+"*T1tttt*1200_*");
201 
202  // Reading ntuples
203  TString lsp = "{#lower[-0.1]{#tilde{#chi}}#lower[0.2]{#scale[0.85]{^{0}}}#kern[-1.3]{#scale[0.85]{_{1}}}}";
204  TString t1t_label = "#scale[0.95]{#tilde{g}#kern[0.2]{#tilde{g}}, #tilde{g}#rightarrowt#kern[0.18]{#bar{t}}#kern[0.18]"+lsp;
205 
206  vector<sfeats> Samples;
207  Samples.push_back(sfeats(s_t1t, "N_{true leptons}", sigcolor, 1, "pass","ntruels+ntrumus"));
208  Samples.push_back(sfeats(s_t1t, "N_{reco. leptons}", 31, 2, "pass"));
209 
210  vector<int> ra4_t1t;
211  ra4_t1t.push_back(0);
212  ra4_t1t.push_back(1);
213 
214  vector<hfeats> vars;
215 
216  // nleps<1234 used as a hack to get signal point printed on canvas
217  vars.push_back(hfeats("nleps",5,-0.5,4.5, ra4_t1t, "N_{prompt e+#mu}","nleps<1234",-1,"signal"));
218  vars.back().whichPlots = "3";
219 
220  plot_distributions(Samples, vars, luminosity, plot_type, plot_style, "aux", false);
221 }
222 
224  TString bfolder("");
225  string hostname = execute("echo $HOSTNAME");
226  if(Contains(hostname, "cms") || Contains(hostname, "compute-"))
227  bfolder = "/net/cms2"; // In laptops, you can't create a /net folder
228 
229  TString folder1l(bfolder+"/cms2r0/babymaker/babies/2016_02_04/data/singlelep/combined/skim_1lht500met200/");
230  TString foldermc(bfolder+"/cms2r0/babymaker/babies/2015_11_28/mc/skim_1lht500met200/");
231 
232  TString folder1l_zisr(bfolder+"/cms2r0/babymaker/babies/2015_11_20/data/singlelep/combined/skim_dy_ht300/"); //skim doesn't exist
233  TString foldermc_zisr(bfolder+"/cms2r0/babymaker/babies/2015_11_28/mc/skim_dy_ht300/");
234 
235  vector<TString> s_slep;
236  s_slep.push_back(folder1l+"*root");
237 
238  vector<TString> s_t1t;
239  s_t1t.push_back(foldermc+"*T1tttt*1500_*");
240  vector<TString> s_t1tc;
241  s_t1tc.push_back(foldermc+"*T1tttt*1200_*");
242  vector<TString> s_tt;
243  s_tt.push_back(foldermc+"*_TTJets*Lept*");
244  s_tt.push_back(foldermc+"*_TTJets_HT*");
245  vector<TString> s_wjets;
246  s_wjets.push_back(foldermc+"*_WJetsToLNu*");
247  vector<TString> s_ttv;
248  s_ttv.push_back(foldermc+"*_TTWJets*");
249  s_ttv.push_back(foldermc+"*_TTZTo*");
250  vector<TString> s_single;
251  s_single.push_back(foldermc+"*_ST_*");
252  vector<TString> s_other;
253  s_other.push_back(foldermc+"*DYJetsToLL*");
254  s_other.push_back(foldermc+"*_QCD_HT*");
255  s_other.push_back(foldermc+"*_ZJet*");
256  s_other.push_back(foldermc+"*_WWTo*");
257  s_other.push_back(foldermc+"*ggZH_HToBB*");
258  s_other.push_back(foldermc+"*ttHJetTobb*");
259 
260 
261 
262  vector<TString> s_slep_dy;
263  s_slep_dy.push_back(folder1l_zisr+"*root");
264 
265  vector<TString> s_tt_dy;
266  s_tt_dy.push_back(foldermc_zisr+"*_TTJets*Lept*");
267  s_tt_dy.push_back(foldermc_zisr+"*_TTJets_HT*");
268 
269  vector<TString> s_ttv_dy;
270  s_ttv_dy.push_back(foldermc_zisr+"*_TTWJets*");
271  s_ttv_dy.push_back(foldermc_zisr+"*_TTZTo*");
272 
273  vector<TString> s_dyjets;
274  s_dyjets.push_back(foldermc_zisr+"*_DYJetsToLL*");
275 
276  vector<TString> s_other_dy;
277  s_other_dy.push_back(foldermc_zisr+"*_WJetsToLNu*");
278  s_other_dy.push_back(foldermc_zisr+"*_QCD_HT*");
279  s_other_dy.push_back(foldermc_zisr+"*_ZJet*");
280  s_other_dy.push_back(foldermc_zisr+"*_WWTo*");
281  s_other_dy.push_back(foldermc_zisr+"*ggZH_HToBB*");
282  s_other_dy.push_back(foldermc_zisr+"*ttHJetTobb*");
283  s_other_dy.push_back(foldermc_zisr+"*_ST_*");
284 
285 
286  // ttbar selection
287  TString lsp = "{#lower[-0.1]{#tilde{#chi}}#lower[0.2]{#scale[0.85]{^{0}}}#kern[-1.3]{#scale[0.85]{_{1}}}}";
288  TString t1t_label = "#scale[0.95]{#tilde{g}#kern[0.2]{#tilde{g}}, #tilde{g}#rightarrowt#kern[0.18]{#bar{t}}#kern[0.18]"+lsp;
289  vector<sfeats> Samples;
290  Samples.push_back(sfeats(s_slep, "Data", kBlack,1,"(trig[4]||trig[8])&&pass")); Samples.back().isData = true;
291  Samples.push_back(sfeats(s_t1t, t1t_label+" (1500,100)}", sigcolor, 1));
292  Samples.push_back(sfeats(s_t1tc, t1t_label+" (1200,800)}", sigcolor, 2));
293  Samples.push_back(sfeats(s_tt, "t#bar{t}, 1 true lepton", dps::c_tt_1l, 1,"ntruleps<=1&&stitch"));
294  Samples.push_back(sfeats(s_tt, "t#bar{t}, 2 true leptons", dps::c_tt_2l,1,"ntruleps>=2&&stitch"));
295  Samples.push_back(sfeats(s_wjets, "W+jets", dps::c_wjets,1));
296  Samples.push_back(sfeats(s_single, "Single t", stcolor));
297  Samples.push_back(sfeats(s_ttv, "ttV", ra4::c_ttv));
298  Samples.push_back(sfeats(s_other, "Other", 2001, 1));
299 
300  vector<int> ra4_sam;
301  unsigned nsam(Samples.size());
302  for(unsigned sam(0); sam < nsam; sam++){
303  ra4_sam.push_back(sam);
304  } // Loop over samples
305 
306  //Z+jets selection
307  int idy(Samples.size());
308  Samples.push_back(sfeats(s_slep_dy, "Data", kBlack,1,"(trig[4]||trig[8])&&pass")); Samples.back().isData = true;
309  Samples.push_back(sfeats(s_dyjets, "Z+jets", dps::c_wjets,1,"stitch"));
310  Samples.push_back(sfeats(s_tt_dy, "t#bar{t}, 2 true leptons", dps::c_tt_2l,1,"ntruleps>=2&&stitch"));
311  Samples.push_back(sfeats(s_tt_dy, "t#bar{t}, 1 true lepton", dps::c_tt_1l,1,"ntruleps<=1&&stitch"));
312  Samples.push_back(sfeats(s_ttv_dy, "ttV", ra4::c_ttv));
313  Samples.push_back(sfeats(s_other_dy, "Other", 2001, 1));
314 
315  vector<int> dy_sam;
316  for(unsigned sam(idy); sam < Samples.size(); sam++){
317  dy_sam.push_back(sam);
318  } // Loop over samples
319 
320  vector<hfeats> vars;
321  TString baseline = "nleps==1&&njets>=4&&nbm>=1&&met>200&&ht>500&&pass";
322 
323  vars.push_back(hfeats("fjets_m[0]",39,0,390, ra4_sam, "m(J_{1}) [GeV]",
324  baseline,-10,"MJ_validation"));
325  vars.back().whichPlots = "12"; vars.back().normalize = true;
326 
327  vars.push_back(hfeats("fjets_m[1]",29,0,290, ra4_sam, "m(J_{2}) [GeV]",
328  baseline,-10,"MJ_validation"));
329  vars.back().whichPlots = "12"; vars.back().normalize = true;
330 
331  vars.push_back(hfeats("fjets_m[2]",18,0,180, ra4_sam, "m(J_{3}) [GeV]",
332  baseline,-10,"MJ_validation"));
333  vars.back().whichPlots = "12"; vars.back().normalize = true;
334 
335  vars.push_back(hfeats("fjets08_m[0]",39,0,390, ra4_sam, "m(J_{1}) [GeV], R = 0.8",
336  baseline,-10,"MJ_validation"));
337  vars.back().whichPlots = "12"; vars.back().normalize = true;
338 
339  vars.push_back(hfeats("fjets08_m[1]",29,0,290, ra4_sam, "m(J_{2}) [GeV], R = 0.8",
340  baseline,-10,"MJ_validation"));
341  vars.back().whichPlots = "12"; vars.back().normalize = true;
342 
343  vars.push_back(hfeats("fjets08_m[2]",18,0,180, ra4_sam, "m(J_{3}) [GeV], R = 0.8",
344  baseline,-10,"MJ_validation"));
345  vars.back().whichPlots = "12"; vars.back().normalize = true;
346 
347  vars.push_back(hfeats("mj",39,0,780, ra4_sam, "M_{J} [GeV]",
348  baseline,-10,"MJ_validation"));
349  vars.back().whichPlots = "12"; vars.back().normalize = true;
350 
351 
352  //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");
353  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");
354  vars.push_back(hfeats("fjets_m[0]",20,0,500, dy_sam, "m(J_{1}) [GeV]",
355  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets>=4&&"+mll));
356  vars.back().whichPlots = "12"; vars.back().normalize = true;
357 
358  vars.push_back(hfeats("mj",24,0,600, dy_sam, "M_{J} [GeV]",
359  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets>=4&&"+mll));
360  vars.back().whichPlots = "12"; vars.back().normalize = true;
361 
362  //For investigating Z+ jets normalization
363  /* vars.push_back(hfeats("njets",10,0,10, dy_sam, "N_{jets}",
364  "pass&&ht>500&&(nmus>=2||nels>=2)&&"+mll));
365  vars.back().whichPlots = "12";
366 
367  vars.push_back(hfeats("ht",30,0,1500, dy_sam, "H_{T}",
368  "pass&&(nmus>=2||nels>=2)&&njets>=4&&"+mll));
369  vars.back().whichPlots = "12";
370 
371  vars.push_back(hfeats("nels",4,0,4, dy_sam, "nels",
372  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets>=4&&"+mll));
373  vars.back().whichPlots = "12";
374 
375  vars.push_back(hfeats("nmus",4,0,4, dy_sam, "nmus",
376  "pass&&ht>500&&(nmus>=2||nels>=2)&&njets>=4&&"+mll));
377  vars.back().whichPlots = "12";
378 
379  vars.push_back(hfeats("mumu_m",30,0,300, dy_sam, "m_{mumu}",
380  "pass&&(nmus>=2||nels>=2)&&njets>=4&&ht>500"));
381  vars.back().whichPlots = "12";
382 
383  vars.push_back(hfeats("elel_m",30,0,300, dy_sam, "m_{elel}",
384  "pass&&(nmus>=2||nels>=2)&&njets>=4&&ht>500"));
385  vars.back().whichPlots = "12";*/
386 
387  plot_distributions(Samples, vars, luminosity, plot_type, plot_style, "aux",true);
388 }
389 
390 // Systematic plots
391 void doSyst(){
392 
393  TString bfolder("");
394  string hostname = execute("echo $HOSTNAME");
395  if(Contains(hostname, "cms") || Contains(hostname, "compute-"))
396  bfolder = "/net/cms2"; // In laptops, you can't create a /net folder
397 
398  // 1l vs 2l MJ Data Comparison
399  TString folder1l(bfolder+"/cms2r0/babymaker/babies/2015_11_20/data/singlelep/combined/skim_1lht500met200/");
400  vector<TString> s_slep;
401  s_slep.push_back(folder1l+"*root"); // With "__Single" you exclude the extra 48 ipb
402 
403  vector<sfeats> Sam_dilep;
404  Sam_dilep.push_back(sfeats(s_slep, "Data 2l, N_{jets} #geq 5, N_{b} #leq 2", kBlack,1,"(trig[4]||trig[8])&&pass&&njets>=5&&nleps==2&&nbm<=2"));
405  Sam_dilep.back().isData=true;
406  Sam_dilep.push_back(sfeats(s_slep, "Data 1l, N_{jets} #geq 6, m_{T} #leq 140, N_{b} #geq 1", kBlue+2,1,
407  "(trig[4]||trig[8])&&pass&&mt<=140&&njets>=6&&nleps==1&&nbm>=1")); Sam_dilep.back().doBand= true;
408  vector<int> dilep_sam;
409  dilep_sam.push_back(0);
410  dilep_sam.push_back(1);
411 
412  vector<hfeats> vars_dilep;
413  vars_dilep.push_back(hfeats("mj",6,250,700, dilep_sam, "M_{J} [GeV]","ht>500&&met>200&&pass&&met<=400",-1,"syst"));
414  vars_dilep.back().whichPlots = "12"; vars_dilep.back().normalize = true;
415 
416  plot_distributions(Sam_dilep, vars_dilep, luminosity, plot_type, plot_style, "aux",true);
417 
418  // ISR pT plots
419  TString skim = "ttisr";
420  TString folder1l_isr(bfolder+"/cms2r0/babymaker/babies/2015_11_20/data/singlelep/combined/skim_"+skim+"/");
421  TString foldermc(bfolder+"/cms2r0/babymaker/babies/2015_11_28/mc/skim_"+skim+"/");
422  TString folderdy(bfolder+"/cms2r0/babymaker/babies/2015_11_28/mc/skim_"+skim+"/");
423 
424  vector<TString> s_slep_isr;
425  s_slep_isr.push_back(folder1l_isr+"*root");
426 
427  vector<TString> s_tt;
428  s_tt.push_back(foldermc+"*_TTJets*Lept*");
429  s_tt.push_back(foldermc+"*_TTJets_HT*");
430  vector<TString> s_ttv;
431  s_ttv.push_back(foldermc+"*_TTWJets*");
432  s_ttv.push_back(foldermc+"*_TTZTo*");
433  s_ttv.push_back(foldermc+"*_TTG*");
434  s_ttv.push_back(foldermc+"*_TTTT*");
435  vector<TString> s_dy;
436  s_dy.push_back(folderdy+"*DYJetsToLL_M-50_*");
437  vector<TString> s_st;
438  s_st.push_back(foldermc+"*_ST_*");
439  vector<TString> s_other;
440  s_other.push_back(foldermc+"*_ZJet*");
441  s_other.push_back(foldermc+"*_WJetsToLNu*");
442  s_other.push_back(foldermc+"*ggZH_HToBB*");
443  s_other.push_back(foldermc+"*ttHJetTobb*");
444  s_other.push_back(foldermc+"*QCD*");
445  s_other.push_back(foldermc+"*_WZTo*");
446  s_other.push_back(foldermc+"*_WWTo*");
447  s_other.push_back(foldermc+"*_ZZTo*");
448 
449 
450  vector<sfeats> Sam_isr;
451  Sam_isr.push_back(sfeats(s_slep_isr, "Data", kBlack,1,"pass&&(trig[18]||trig[21]||trig[23]||trig[24])")); Sam_isr.back().isData = true;
452  Sam_isr.push_back(sfeats(s_tt, "t#bar{t}, 2 true leptons", dps::c_tt_2l,1,"ntruleps>=2&&stitch"));
453  Sam_isr.push_back(sfeats(s_tt, "t#bar{t}, 1 true lepton", dps::c_tt_1l, 1,"ntruleps<=1&&stitch"));
454  Sam_isr.push_back(sfeats(s_dy, "Z+jets",dps::c_wjets,1,"stitch"));
455  Sam_isr.push_back(sfeats(s_ttv, "ttV", ra4::c_ttv));
456  Sam_isr.push_back(sfeats(s_st, "Single t", stcolor));
457  Sam_isr.push_back(sfeats(s_other, "Other", 2001, 1));
458 
459  vector<int> ra4_sam;
460  unsigned nsam(Sam_isr.size());
461  for(unsigned sam(0); sam < nsam; sam++){
462  ra4_sam.push_back(sam);
463  } // Loop over samples
464 
465  vector<hfeats> vars_isr;
466  float ibinning[] = {0., 50., 100., 150., 200., 300., 400.,600., 800.};
467  int nbins = sizeof(ibinning)/sizeof(float)-1;
468 
469  //---------- TTBAR ISR --------------------
470  vars_isr.push_back(hfeats("jetsys_nob_pt",nbins,ibinning, ra4_sam, "p_{T}(ISR jets) [GeV]","nleps==2&&Max$(leps_pt)>30&&njets>2&&nbm==2&&pass",-1,"syst"));
471  vars_isr.back().whichPlots = "12"; vars_isr.back().normalize = true;
472 
473  plot_distributions(Sam_isr, vars_isr, luminosity, plot_type, plot_style, "aux",true);
474 
475 }
476 
477 void doMC1D(){
478  TString folder="/cms2r0/babymaker/babies/2015_11_28/mc/skim_1lht500met200/";
479  string hostname = execute("echo $HOSTNAME");
480  if(Contains(hostname, "cms") || Contains(hostname, "compute-")) folder = "/net/cms2"+folder;
481  if(Contains(hostname, "lxplus"))
482  folder="/afs/cern.ch/user/m/manuelf/work/babies/2015_11_28/mc/skim_1lht500met200/";
483 
484  vector<TString> s_tt, s_t4t_nc,s_t4t_c;
485  s_tt.push_back(folder+"*TTJets*Lept*");
486  s_tt.push_back(folder+"*TTJets*HT*");
487  s_t4t_nc.push_back(folder+"*T1tttt*1500*100*.root");
488  s_t4t_c.push_back(folder+"*T1tttt*1200*800*.root");
489 
490  // Reading ntuples
491  vector<sfeats> Samples;
492  Samples.push_back(sfeats(s_t4t_nc, "#scale[0.92]{#tilde{g}#kern[0.2]{#tilde{g}}, #tilde{g}#rightarrowt#bar{t}#tilde{#chi}#lower[0.2]{#scale[0.85]{^{0}}}#kern[-1.3]{#scale[0.85]{_{1}}} (1500,100)}",ra4::c_t1tttt,1, "stitch"));
493  Samples.push_back(sfeats(s_t4t_c, "#scale[0.92]{#tilde{g}#kern[0.2]{#tilde{g}}, #tilde{g}#rightarrowt#bar{t}#tilde{#chi}#lower[0.2]{#scale[0.85]{^{0}}}#kern[-1.3]{#scale[0.85]{_{1}}} (1200,800)}",ra4::c_t1tttt,2, "stitch"));
494  Samples.push_back(sfeats(s_tt, "t#bar{t}, 1 true lepton",dps::c_tt_1l,1,"ntruleps==1&&stitch"));
495  Samples.push_back(sfeats(s_tt, "t#bar{t}, 2 true leptons", dps::c_tt_2l,1,"ntruleps==2&&stitch"));
496 
497 
498  vector<int> clean;
499  clean.push_back(2);
500  clean.push_back(3);
501  clean.push_back(0);
502  clean.push_back(1);
503 
504  vector<hfeats> vars;
505 
506 
507  vars.push_back(hfeats("mj",35,0,1400, clean,"M_{J} [GeV]","ht>500&&met>200&&njets>=6&&nbm>=1&&nleps==1&&pass"));
508  vars.back().whichPlots = "34"; vars.back().moveRLegend = -0.05;
509 
510  vars.push_back(hfeats("mt",12,0,420, clean,"m_{T} [GeV]","ht>500&&met>200&&njets>=6&&nbm>=1&&nleps==1&&pass"));
511  vars.back().whichPlots = "34"; vars.back().moveRLegend = -0.05;
512 
513  vars.push_back(hfeats("njets",12,0.5,12.5, clean,"N_{jets}","ht>500&&met>200&&nbm>=1&&nleps==1&&pass"));
514  vars.back().whichPlots = "34"; vars.back().moveRLegend = -0.05;
515 
516  vars.push_back(hfeats("nbm",5,-0.5,4.5, clean,"N_{b}","ht>500&&met>200&&njets>=6&&nleps==1&&pass"));
517  vars.back().whichPlots = "34"; vars.back().moveRLegend = -0.05;
518 
519  vars.push_back(hfeats("met",12,200,800, clean,"MET [GeV]","ht>500&&met>200&&njets>=6&&nbm>=1&&nleps==1&&pass"));
520  vars.back().whichPlots = "34"; vars.back().moveRLegend = -0.05;
521 
522 
523  //NOTE: Make sure RohanHack is turned off
524  plot_distributions(Samples, vars, luminosity, plot_type, "CMSPaperNoRatio_Supplementary", "aux",false);
525 
526 
527 }
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)
void do_MJ_validation()
Definition: plot_aux.cxx:223
void doN1_R4()
Definition: plot_aux.cxx:48
bool Contains(const std::string &text, const std::string &pattern)
STL namespace.
std::string execute(const std::string &cmd)
int main()
Definition: plot_aux.cxx:38
void doSignal()
Definition: plot_aux.cxx:188
void doSyst()
Definition: plot_aux.cxx:391
void doMC1D()
Definition: plot_aux.cxx:477