ra4_draw  4bd0201e3d922d42bd545d4b045ed44db33454a4
plot_2016-06-17_full_status_dump.cxx
Go to the documentation of this file.
1 #include <iostream>
2 #include <string>
3 #include <vector>
4 #include <memory>
5 
6 #include "TError.h"
7 #include "TColor.h"
8 
9 #include "baby.hpp"
10 #include "process.hpp"
11 #include "named_func.hpp"
12 #include "plot_maker.hpp"
13 #include "plot_opt.hpp"
14 #include "palette.hpp"
15 
16 using namespace std;
17 using namespace PlotOptTypes;
18 
19 template<typename T>
20 shared_ptr<Process> Proc(const string process_name, Process::Type type,
21  int color, const set<string> &files, const string &cut = "1"){
22  return make_shared<Process>(process_name, type, color,
23  unique_ptr<Baby>(new T(files)),
24  cut);
25 }
26 
27 int main(){
28  gErrorIgnoreLevel = 6000;
29 
30  double lumi = 2.07;
31 
32  // 80X (ttbar, qcd, dy[ht=100-600], wjets) + 74X (rest)
33  string trig_mc = "/net/cms2/cms2r0/babymaker/babies/2016_05_31/mc/unskimmed/";
34  //string trig_skim1l_mc = "/net/cms2/cms2r0/babymaker/babies/2016_05_31/mc/skim_1lht500met200/";
35  string trig_skim1l_mc = "/net/cms2/cms2r0/babymaker/babies/2016_06_09/mc/skim_1lht500met200/";
36  string trig_skim0l_mc = "/net/cms2/cms2r0/babymaker/babies/2016_05_31/mc/skim_qcd/"; // needs to be updated for 2.1 fb-1
37  string trig_skim2l_mc = "/net/cms2/cms2r0/babymaker/babies/2016_05_31/mc/skim_dy_ht300/"; // needs to be updated for 2.1 fb-1
38 
39  Palette colors("txt/colors.txt", "default");
40 
41  auto tt1l = Proc<Baby_full>("t#bar{t} (1l)", Process::Type::background, colors("tt_1l"),
42  {trig_skim1l_mc+"*_TTJets*Lept*.root", trig_skim1l_mc+"*_TTJets_HT*.root"}, "ntruleps<=1&&stitch");
43  auto tt2l = Proc<Baby_full>("t#bar{t} (2l)", Process::Type::background, colors("tt_2l"),
44  {trig_skim1l_mc+"*_TTJets*Lept*.root", trig_skim1l_mc+"*_TTJets_HT*.root"}, "ntruleps>=2&&stitch");
45  auto wjets = Proc<Baby_full>("W+jets", Process::Type::background, colors("wjets"),
46  {trig_skim1l_mc+"*_WJetsToLNu*.root"});
47  auto single_t = Proc<Baby_full>("Single t", Process::Type::background, colors("single_t"),
48  {trig_skim1l_mc+"*_ST_*.root"});
49  auto ttv = Proc<Baby_full>("t#bar{t}V", Process::Type::background, colors("ttv"),
50  {trig_skim1l_mc+"*_TTWJets*.root", trig_skim1l_mc+"*_TTZTo*.root"});
51  auto other = Proc<Baby_full>("Other", Process::Type::background, colors("other"),
52  {trig_skim1l_mc+"*DYJetsToLL*.root", trig_skim1l_mc+"*_QCD_HT*.root",
53  trig_skim1l_mc+"*_ZJet*.root", trig_skim1l_mc+"*_WWTo*.root",
54  trig_skim1l_mc+"*ggZH_HToBB*.root", trig_skim1l_mc+"*ttHJetTobb*.root",
55  trig_skim1l_mc+"*_TTGJets*.root", trig_skim1l_mc+"*_TTTT_*.root",
56  trig_skim1l_mc+"*_WH_HToBB*.root", trig_skim1l_mc+"*_WZTo*.root",
57  trig_skim1l_mc+"*_ZH_HToBB*.root", trig_skim1l_mc+"_ZZ_*.root"});
58 
59  auto t1tttt_nc = Proc<Baby_full>("T1tttt(1500,100)", Process::Type::signal, colors("t1tttt"),
60  {trig_mc+"*SMS-T1tttt_mGluino-1500_mLSP-100*.root"});
61  auto t1tttt_c = Proc<Baby_full>("T1tttt(1200,800)", Process::Type::signal, colors("t1tttt"),
62  {trig_mc+"*SMS-T1tttt_mGluino-1200_mLSP-800*.root"});
63  t1tttt_c->SetLineStyle(2);
64 
65  auto data_1l = Proc<Baby_full>("Data", Process::Type::data, kBlack,
66  //{"/net/cms2/cms2r0/babymaker/babies/2016_06_05/data/met/skim_met150/*.root"},"pass&&trig[28]");
67  //{"/net/cms2/cms2r0/babymaker/babies/2016_06_14/data/MET/merged_1lh500met200/*.root"},"pass&&trig[28]");
68  {"/net/cms2/cms2r0/babymaker/babies/2016_06_14/data/skim_standard/*.root"},"pass&&(trig[4]||trig[8]||trig[13]||trig[33])");
69  vector<shared_ptr<Process> > full_trig_skim_1l = {data_1l, /*t1tttt_nc, t1tttt_c,*/ tt1l, tt2l, wjets, single_t, ttv, other};
70 
71  //
72  // 0-lepton plots
73  //
74  auto tt_0l = Proc<Baby_full>("t#bar{t}", Process::Type::background, colors("tt_1l"),
75  {trig_skim0l_mc+"*_TTJets_TuneCUETP8M1_13TeV*.root"});
76  auto qcd_0l = Proc<Baby_full>("QCD", Process::Type::background, colors("qcd"),
77  {trig_skim0l_mc+"*_QCD_HT700to1000*.root",trig_skim0l_mc+"*_QCD_HT1000to1500*.root",
78  trig_skim0l_mc+"*_QCD_HT1500to2000*.root",trig_skim0l_mc+"*_QCD_HT2000toInf*.root"});
79  auto other_0l = Proc<Baby_full>("Other", Process::Type::background, colors("ttv"),
80  {trig_skim0l_mc+"*_TTWJet*root", trig_skim0l_mc+"*_TTZTo*.root",
81  trig_skim0l_mc+"*_ZJet*.root", trig_skim0l_mc+"*_WWTo*.root",
82  trig_skim0l_mc+"*ggZH_HToBB*.root", trig_skim0l_mc+"*ttHJetTobb*.root",
83  trig_skim0l_mc+"*_TTGJets*.root", trig_skim0l_mc+"*_TTTT_*.root",
84  trig_skim0l_mc+"*_WH_HToBB*.root", trig_skim0l_mc+"*_WZTo*.root",
85  trig_skim0l_mc+"*_ST_*.root", trig_skim0l_mc+"*_WJetsToLNu*.root",
86  trig_skim0l_mc+"*_ZH_HToBB*.root", trig_skim0l_mc+"_ZZ_*.root",
87  trig_skim0l_mc+"*_DYJetsToLL*HT*.root"});
88 
89  auto data_0l = Proc<Baby_full>("Data", Process::Type::data, kBlack,
90  {"/net/cms2/cms2r0/babymaker/babies/2016_06_05/data/jetht/skim_qcd/*.root"},"pass&&trig[12]");
91  vector<shared_ptr<Process> > full_trig_skim_0l = {data_0l, /*t1tttt_nc, t1tttt_c,*/ qcd_0l, tt_0l, other_0l};
92 
93  //
94  // 2-lepton plots
95  //
96  auto tt1l_2l = Proc<Baby_full>("t#bar{t} (1l)", Process::Type::background, colors("tt_1l"),
97  {trig_skim2l_mc+"*_TTJets*Lept*.root"},
98  "ntruleps<=1");
99  auto tt2l_2l = Proc<Baby_full>("t#bar{t} (2l)", Process::Type::background, colors("tt_2l"),
100  {trig_skim2l_mc+"*_TTJets*Lept*.root"},
101  "ntruleps>=2");
102  auto dy_2l = Proc<Baby_full>("DY", Process::Type::background, colors("wjets"),
103  {trig_skim2l_mc+"*_DYJetsToLL*HT*.root"});
104  auto other_2l = Proc<Baby_full>("Other", Process::Type::background, colors("ttv"),
105  {trig_skim2l_mc+"*_TTWJet*root", trig_skim2l_mc+"*_TTZTo*.root",
106  trig_skim2l_mc+"*_ZJet*.root", trig_skim2l_mc+"*_WWTo*.root",
107  trig_skim2l_mc+"*ggZH_HToBB*.root", trig_skim2l_mc+"*ttHJetTobb*.root",
108  trig_skim2l_mc+"*_TTGJets*.root", trig_skim2l_mc+"*_TTTT_*.root",
109  trig_skim2l_mc+"*_WH_HToBB*.root", trig_skim2l_mc+"*_WZTo*.root",
110  trig_skim2l_mc+"*_ST_*.root", trig_skim2l_mc+"*_WJetsToLNu*.root",
111  trig_skim2l_mc+"*_ZH_HToBB*.root", trig_skim2l_mc+"_ZZ_*.root",
112  trig_skim2l_mc+"*_QCD_HT700to1000*.root",trig_skim2l_mc+"*_QCD_HT1000to1500*.root",
113  trig_skim2l_mc+"*_QCD_HT1500to2000*.root",trig_skim2l_mc+"*_QCD_HT2000toInf*.root"});
114 
115  auto data_2l = Proc<Baby_full>("Data", Process::Type::data, kBlack,
116  {"/net/cms2/cms2r0/babymaker/babies/2016_06_05/data/singlelep/combined/*.root"},"pass&&(trig[20]||trig[22])");
117  vector<shared_ptr<Process> > full_trig_skim_2l = {data_2l, /*t1tttt_nc, t1tttt_c,*/ tt1l_2l, tt2l_2l, dy_2l, other_2l};
118 
119  //
120  PlotOpt log_lumi("txt/plot_styles.txt", "CMSPaper");
121  log_lumi.Title(TitleType::preliminary)
122  .Bottom(BottomType::ratio)
123  .YAxis(YAxisType::log)
124  .Stack(StackType::data_norm);
125  PlotOpt lin_lumi = log_lumi().YAxis(YAxisType::linear);
126  PlotOpt log_shapes = log_lumi().Stack(StackType::shapes)
127  .Bottom(BottomType::off)
128  .ShowBackgroundError(false);
129  PlotOpt lin_shapes = log_shapes().YAxis(YAxisType::linear);
130  PlotOpt log_lumi_info = log_lumi().Title(TitleType::info);
131  PlotOpt lin_lumi_info = lin_lumi().Title(TitleType::info);
132  PlotOpt log_shapes_info = log_shapes().Title(TitleType::info);
133  PlotOpt lin_shapes_info = lin_shapes().Title(TitleType::info);
134  vector<PlotOpt> all_plot_types = {log_lumi_info, lin_lumi_info};
135 
136 
137  string lowmtcut = "ht>500&&met>200&&mt<140";
138  string lowmjcut = "ht>500&&met>200&&mj<400";
139  PlotMaker pm;
140 
141  for(int ilep=0; ilep<3; ilep++)
142  {
143  string lepcut;
144  if(ilep==0) lepcut="nels==1&&nmus==0";
145  if(ilep==1) lepcut="nels==0&&nmus==1";
146  if(ilep==2) lepcut="nleps==1";
147 
148  for(int inveto=0; inveto<2; inveto++)
149  {
150  string nvetocut;
151  if(inveto==0) nvetocut="nveto==0";
152  if(inveto==1) nvetocut="1";
153 
154  for(int injets=0; injets<2; injets++)
155  {
156  string njetscut;
157  if(injets==0) njetscut="njets>=5";
158  if(injets==1) njetscut="njets>=6";
159 
160  for(int inb=0; inb<2; inb++)
161  {
162  string nbcut;
163  if(inb==0) nbcut="nbm>=1";
164  if(inb==1) nbcut="nbm>=2";
165 
166  //
167  // event-level variables except ones related to fatjet
168  //
169  pm.Push<HistoStack>(HistoDef(15, 500, 2000., "ht", "H_{T} [GeV]",
170  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {500.}),
171  full_trig_skim_1l, all_plot_types);
172  pm.Push<HistoStack>(HistoDef(10, 200, 700., "met", "E_{T}^{miss} [GeV]",
173  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {200., 350., 500.}),
174  full_trig_skim_1l, all_plot_types);
175  pm.Push<HistoStack>(HistoDef(10, 200, 700., "met", "E_{T}^{miss} [GeV]",
176  lepcut+"&&"+lowmjcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {200., 350., 500.}),
177  full_trig_skim_1l, all_plot_types);
178  pm.Push<HistoStack>(HistoDef(16, -0.5, 15.5, "njets", "N_{jets}",
179  lepcut+"&&"+lowmtcut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {5.5, 8.5}),
180  full_trig_skim_1l, all_plot_types);
181  pm.Push<HistoStack>(HistoDef(7, -0.5, 6.5, "nbm", "N_{b}",
182  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nvetocut, "weight/eff_trig", {0.5, 1.5, 2.5}),
183  full_trig_skim_1l, all_plot_types);
184  pm.Push<HistoStack>(HistoDef(14, 0., 280., "mt", "m_{T} [GeV]",
185  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {140.}),
186  full_trig_skim_1l, all_plot_types);
187  pm.Push<HistoStack>(HistoDef(14, 0., 280., "mt", "m_{T} [GeV]",
188  lepcut+"&&"+lowmjcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {140.}),
189  full_trig_skim_1l, all_plot_types);
190  pm.Push<HistoStack>(HistoDef(14, 0., 280., "mt", "m_{T} [GeV]",
191  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&nbm==0"+"&&"+nvetocut, "weight/eff_trig", {140.}),
192  full_trig_skim_1l, all_plot_types);
193 
194  if(ilep==0)
195  {
196  // only barrel or endcap electron
197  pm.Push<HistoStack>(HistoDef(10, 200, 700., "met", "E_{T}^{miss} [GeV]",
198  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut+"&&(leps_eta[0]<1.479&&leps_eta[0]>-1.479)", "weight/eff_trig", {200., 350., 500.}),
199  full_trig_skim_1l, all_plot_types);
200  pm.Push<HistoStack>(HistoDef(10, 200, 700., "met", "E_{T}^{miss} [GeV]",
201  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut+"&&(leps_eta[0]>1.479||leps_eta[0]<-1.479)", "weight/eff_trig", {200., 350., 500.}),
202  full_trig_skim_1l, all_plot_types);
203  }
204 
205  //
206  // leptons
207  //
208  if(ilep==0) // electron
209  {
210  pm.Push<HistoStack>(HistoDef(10, 0, 200., "leps_pt[0]", "p_{T}(electron) [GeV]",
211  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
212  full_trig_skim_1l, all_plot_types);
213  pm.Push<HistoStack>(HistoDef(10, -2.5, 2.5, "leps_eta[0]", "#eta(electron) [GeV]",
214  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
215  full_trig_skim_1l, all_plot_types);
216  }
217  else if(ilep==1) // muon
218  {
219  pm.Push<HistoStack>(HistoDef(10, 0, 200., "leps_pt[0]", "p_{T}(muon) [GeV]",
220  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
221  full_trig_skim_1l, all_plot_types);
222  pm.Push<HistoStack>(HistoDef(10, -2.5, 2.5, "leps_eta[0]", "#eta(muon) [GeV]",
223  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
224  full_trig_skim_1l, all_plot_types);
225  }
226  else if(ilep==2) // electron or muon
227  {
228  pm.Push<HistoStack>(HistoDef(10, 0, 200., "leps_pt[0]", "p_{T}(lepton) [GeV]",
229  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
230  full_trig_skim_1l, all_plot_types);
231  pm.Push<HistoStack>(HistoDef(10, -2.5, 2.5, "leps_eta[0]", "#eta(lepton) [GeV]",
232  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
233  full_trig_skim_1l, all_plot_types);
234  }
235 
236  //
237  // jets
238  //
239  pm.Push<HistoStack>(HistoDef(10, 30, 630., "jets_pt[0]", "p_{T}(leading jet) [GeV]",
240  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut+"&&(!jets_islep[0])", "weight/eff_trig", {999.}),
241  full_trig_skim_1l, all_plot_types);
242  pm.Push<HistoStack>(HistoDef(10, -2.5, 2.5, "jets_eta[0]", "#eta(leading jet) [GeV]",
243  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut+"&&(!jets_islep[0])", "weight/eff_trig", {999.}),
244  full_trig_skim_1l, all_plot_types);
245  pm.Push<HistoStack>(HistoDef(10, 0, 200., "jets_m[0]", "mass(leading jet) [GeV]",
246  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut+"&&(!jets_islep[0])", "weight/eff_trig", {999.}),
247  full_trig_skim_1l, all_plot_types);
248  pm.Push<HistoStack>(HistoDef(10, 30, 630., "jets_pt", "p_{T}(jet) [GeV]",
249  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut+"&&(!jets_islep)", "weight/eff_trig", {999.}),
250  full_trig_skim_1l, all_plot_types);
251  pm.Push<HistoStack>(HistoDef(10, -2.5, 2.5, "jets_eta", "#eta(jet) [GeV]",
252  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut+"&&(!jets_islep)", "weight/eff_trig", {999.}),
253  full_trig_skim_1l, all_plot_types);
254  pm.Push<HistoStack>(HistoDef(10, 0, 200., "jets_m", "m(jet) [GeV]",
255  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut+"&&(!jets_islep)", "weight/eff_trig", {999.}),
256  full_trig_skim_1l, all_plot_types);
257 
258  //
259  // fatjets
260  //
261  pm.Push<HistoStack>(HistoDef(10, 0, 1000., "fjets14_pt[0]", "p_{T}(J1) [GeV]",
262  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
263  full_trig_skim_1l, all_plot_types);
264  pm.Push<HistoStack>(HistoDef(10, 0, 500., "fjets14_m[0]", "m_{J1} [GeV]",
265  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
266  full_trig_skim_1l, all_plot_types);
267  pm.Push<HistoStack>(HistoDef(10, 0, 500., "fjets14_m[0]", "m_{J1} [GeV]",
268  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut+"&&leps_pt[0]>160", "weight/eff_trig", {999.}),
269  full_trig_skim_1l, all_plot_types);
270  pm.Push<HistoStack>(HistoDef(10, 0, 500., "fjets14_m[0]", "m_{J1} [GeV]",
271  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut+"&&leps_pt[0]<=160", "weight/eff_trig", {999.}),
272  full_trig_skim_1l, all_plot_types);
273  pm.Push<HistoStack>(HistoDef(10, -2.5, 2.5, "fjets14_eta[0]", "#eta(J1)",
274  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
275  full_trig_skim_1l, all_plot_types);
276  pm.Push<HistoStack>(HistoDef(7, 0.5, 7.5, "fjets14_nconst[0]", "N_{constituents}(J1)",
277  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
278  full_trig_skim_1l, all_plot_types);
279  pm.Push<HistoStack>(HistoDef(10, 0, 1000., "fjets14_pt", "p_{T}(J) [GeV]",
280  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
281  full_trig_skim_1l, all_plot_types);
282  pm.Push<HistoStack>(HistoDef(10, 0, 500., "fjets14_m", "m_{J} [GeV]",
283  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
284  full_trig_skim_1l, all_plot_types);
285  pm.Push<HistoStack>(HistoDef(10, -2.5, 2.5, "fjets14_eta", "#eta(J)",
286  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
287  full_trig_skim_1l, all_plot_types);
288  pm.Push<HistoStack>(HistoDef(7, 0.5, 7.5, "fjets14_nconst", "N_{constituents}(J)",
289  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
290  full_trig_skim_1l, all_plot_types);
291 
292  pm.Push<HistoStack>(HistoDef(20, 0, 400., "fjets14_m[0]", "m_{J1} [GeV]",
293  lepcut+"&&"+lowmtcut+"&&njets<=5&&nbm>=1", "weight/eff_trig", {999.}),
294  full_trig_skim_1l, all_plot_types);
295 
296  // event-level variables related to fatjet
297  pm.Push<HistoStack>(HistoDef(15, 0., 1500., "mj14", "M_{J} [GeV]",
298  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {400.}),
299  full_trig_skim_1l, all_plot_types);
300  pm.Push<HistoStack>(HistoDef(7, 0.5, 7.5, "nfjets14", "N_{J} [GeV]",
301  lepcut+"&&"+lowmtcut+"&&"+njetscut+"&&"+nbcut+"&&"+nvetocut, "weight/eff_trig", {999.}),
302  full_trig_skim_1l, all_plot_types);
303 
304  } //for(int inb=0; inb<2; inb++)
305  } //for(int injets=0; injets<2; injets++)
306  } //for(int inveto=0; inveto<2; inveto++)
307  }
308 
309 /*
310  //
311  // di-lepton events
312  //
313  string mll="(mumu_m*(mumu_m>0&&mumu_pt1>30)+elel_m*(elel_m>0&&elel_pt1>30))";
314  string mllcut="(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";
315 
316 // pm.Push<HistoStack>(HistoDef(10, 50., 140., mll, "m_{ll} [GeV]",
317 // "(nmus>=2||nels>=2)&&ht>350&&njets>=2", "weight/eff_trig", {400.}),
318 // full_trig_skim_2l, all_plot_types);
319 
320  pm.Push<HistoStack>(HistoDef(15, 0., 1500., "mj14", "M_{J} [GeV]",
321  "nels==1&&nmus==1&&ht>300&&met>100&&njets>=2&&met<400&&nbm<3&&nbm>=1&&((leps_pt[0]>30&&leps_eta[0]<2.1&&leps_eta[0]>-2.1)||(leps_pt[1]>30&&leps_eta[1]<2.1&&leps_eta[1]>-2.1))", "weight/eff_trig", {400.}),
322  full_trig_skim_2l, all_plot_types);
323 
324  pm.Push<HistoStack>(HistoDef(15, 0., 1500., "mj14", "M_{J} [GeV]",
325  "(nmus>=2||nels>=2)&&ht>350&&njets>=2&&njets<=3&&"+mllcut, "weight/eff_trig", {400.}),
326  full_trig_skim_2l, all_plot_types);
327  pm.Push<HistoStack>(HistoDef(15, 0., 1500., "mj14", "M_{J} [GeV]",
328  "(nmus>=2||nels>=2)&&ht>350&&njets>=4&&"+mllcut, "weight/eff_trig", {400.}),
329  full_trig_skim_2l, all_plot_types);
330 
331  //
332  // 0-lepton events
333  //
334  pm.Push<HistoStack>(HistoDef(30, 0., 1500., "mj14", "M_{J} [GeV]",
335  "nleps==0&&met<50&&ht>1000&&njets>=4&&njets<=5", "weight/eff_trig", {400.}),
336  full_trig_skim_0l, all_plot_types);
337  pm.Push<HistoStack>(HistoDef(30, 0., 500., "fjets14_m", "M_{J} [GeV]",
338  "nleps==0&&met<50&&ht>1000&&njets>=4&&njets<=5", "weight/eff_trig", {400.}),
339  full_trig_skim_0l, all_plot_types);
340 
341  pm.Push<HistoStack>(HistoDef(30, 0., 1500., "mj14", "M_{J} [GeV]",
342  "nleps==0&&met<50&&ht>1000&&njets>=6&&njets<=8", "weight/eff_trig", {400.}),
343  full_trig_skim_0l, all_plot_types);
344  pm.Push<HistoStack>(HistoDef(30, 0., 500., "fjets14_m", "M_{J} [GeV]",
345  "nleps==0&&met<50&&ht>1000&&njets>=6&&njets<=8", "weight/eff_trig", {400.}),
346  full_trig_skim_0l, all_plot_types);
347 
348  pm.Push<HistoStack>(HistoDef(30, 0., 1500., "mj14", "M_{J} [GeV]",
349  "nleps==0&&met<50&&ht>1000&&njets>=9", "weight/eff_trig", {400.}),
350  full_trig_skim_0l, all_plot_types);
351  pm.Push<HistoStack>(HistoDef(30, 0., 500., "fjets14_m", "M_{J} [GeV]",
352  "nleps==0&&met<50&&ht>1000&&njets>=9", "weight/eff_trig", {400.}),
353  full_trig_skim_0l, all_plot_types);
354 */
355  //
356  //
357  //
358  pm.MakePlots(lumi);
359 }
PlotOpt & Stack(PlotOptTypes::StackType stack_type)
Definition: plot_opt.cpp:120
PlotOpt & YAxis(PlotOptTypes::YAxisType y_axis_type)
Definition: plot_opt.cpp:102
STL namespace.
FigureType & Push(Args &&...args)
Definition: plot_maker.hpp:24
Organizes efficient production of plots with single loop over each process.
Definition: plot_maker.hpp:14
PlotOpt & Bottom(PlotOptTypes::BottomType bottom_type)
Definition: plot_opt.cpp:93
PlotOpt & ShowBackgroundError(bool show_background_error)
Definition: plot_opt.cpp:386
void MakePlots(double luminosity, const std::string &subdir="")
Prints all added plots with given luminosity.
Definition: plot_maker.cpp:54
PlotOpt & Title(PlotOptTypes::TitleType title_type)
Definition: plot_opt.cpp:111
shared_ptr< Process > Proc(const string process_name, Process::Type type, int color, const set< string > &files, const string &cut="1")
Loads colors from a text configuration file.
Definition: palette.hpp:8