19 #include "TPaveText.h" 22 #include "TGraphAsymmErrors.h" 23 #include "TEfficiency.h" 40 Double_t
errorFun(Double_t *x, Double_t *par) {
41 double value(0.5*par[0]*(1. + TMath::Erf( (x[0] - par[1]) / (sqrt(2.)*par[2]) )));
45 void PlotTurnOn(TChain *
data, TString var,
int nbins,
double minx,
double maxx, TString xtitle,
46 TString den, TString
num, TString title=
"", TString ytitle=
"",
float minfit=-1.,
bool isData=
true);
47 TString
Efficiency(TChain *
data, TString den, TString
num,
float &effic,
float &errup,
float &errdown);
52 gStyle->SetPadTickY(0);
54 TString folder(
"/net/cms2/cms2r0/ald77/archive/2015_08_25/");
57 TChain c_tt(
"tree"); c_tt.Add(
"/cms2r0/ald77/archive/2015_08_13/small_quick_TTJets_TuneCUETP8M1_13TeV-madgraphMLM-pythia8_RunIISpring15DR74-Asympt50ns_MCRUN2_74_V9A-v1_MINIAODSIM_UCSB2650_v82_files20_batch*.root");
58 TChain c_jetht(
"tree"); c_jetht.Add(folder+
"*JetHT*root");
59 TChain c_met(
"tree"); c_met.Add(folder+
"*MET*root");
60 TChain c_mu(
"tree"); c_mu.Add(folder+
"*SingleMuon*");
61 TChain c_el(
"tree"); c_el.Add(folder+
"*SingleElectron*");
62 TChain c_lep(
"tree"); c_lep.Add(folder+
"*Single*");
63 TChain c_all(
"tree"); c_all.Add(folder+
"alldata/*root");
66 float lmin(25), lmax(300);
67 int lbins(static_cast<int>((lmax-lmin)/12.5));
70 lmin = 0; lmax = 100; lbins =
static_cast<int>((lmax-lmin)/2);
71 PlotTurnOn(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2&&mus_tru_tm))-0.1", lbins,lmin,lmax,
72 "#mu_{medium, miniso} p_{T}",
"1",
"trig[18]",
"TM medium #mu, I_{mini} < 0.2",
74 PlotTurnOn(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_reliso<0.12&&mus_tru_tm))-0.1", lbins,lmin,lmax,
75 "#mu_{medium, reliso} p_{T}",
"1",
"trig[18]",
"TM medium #mu, I_{R=0.4} < 0.12",
77 PlotTurnOn(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_reliso<0.2&&mus_tru_tm))-0.1", lbins,lmin,lmax,
78 "#mu_{medium, reliso} p_{T}",
"1",
"trig[18]",
"TM medium #mu, I_{R=0.4} < 0.2",
81 float effic, errup, errdown;
82 Efficiency(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_miniso<0.2))>50",
"trig[18]",effic, errup, errdown);
83 Efficiency(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_miniso<0.2))>50&&ht>500",
"trig[18]",effic, errup, errdown);
84 Efficiency(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_miniso<0.2))>50&&ht>1000",
"trig[18]",effic, errup, errdown);
85 Efficiency(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_miniso<0.2))>50&&ht>1500",
"trig[18]",effic, errup, errdown);
87 Efficiency(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.2))>50",
"trig[18]",effic, errup, errdown);
88 Efficiency(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.2))>50&&ht>500",
"trig[18]",effic, errup, errdown);
89 Efficiency(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.2))>50&&ht>1000",
"trig[18]",effic, errup, errdown);
90 Efficiency(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.2))>50&&ht>1500",
"trig[18]",effic, errup, errdown);
92 Efficiency(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.12))>50",
"trig[18]",effic, errup, errdown);
93 Efficiency(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.12))>50&&ht>500",
"trig[18]",effic, errup, errdown);
94 Efficiency(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.12))>50&&ht>1000",
"trig[18]",effic, errup, errdown);
95 Efficiency(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.12))>50&&ht>1500",
"trig[18]",effic, errup, errdown);
97 float htmin(175), htmax(1000);
98 int htbins(static_cast<int>((htmax-htmin)/12.5));
99 htmin = 0; htmax = 2400; htbins =
static_cast<int>((htmax-htmin)/200);
100 PlotTurnOn(&c_tt,
"ht_reliso", htbins,htmin,htmax,
"H_{T}",
101 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.12))>50",
102 "trig[18]",
"n_{#mu,50,reliso} #geq 1",
"IsoMu20", -500,
false);
103 PlotTurnOn(&c_tt,
"ht", htbins,htmin,htmax,
"H_{T}",
104 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_miniso<0.2))>50",
105 "trig[18]",
"n_{#mu,50,miniso} #geq 1",
"IsoMu20", -500,
false);
106 PlotTurnOn(&c_tt,
"ht_reliso", htbins,htmin,htmax,
"H_{T}",
107 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.2))>50",
108 "trig[18]",
"n_{#mu,50,reliso} #geq 1",
"IsoMu20", -500,
false);
114 float lmin(25), lmax(300);
115 int lbins(static_cast<int>((lmax-lmin)/12.5));
118 lmin = 0; lmax = 300; lbins =
static_cast<int>((lmax-lmin)/20);
119 PlotTurnOn(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_reliso<0.12&&mus_tru_tm))-0.1", lbins,lmin,lmax,
120 "#mu_{medium, reliso} p_{T}",
"1",
"trig[18]",
"TM medium #mu, I_{R=0.4} < 0.12",
"IsoMu20",-40,
false);
121 PlotTurnOn(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_reliso<0.2&&mus_tru_tm))-0.1", lbins,lmin,lmax,
122 "#mu_{medium, reliso} p_{T}",
"1",
"trig[18]",
"TM medium #mu, I_{R=0.4} < 0.2",
"IsoMu20",-40,
false);
123 PlotTurnOn(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2&&mus_tru_tm))-0.1", lbins,lmin,lmax,
124 "#mu_{medium, miniso} p_{T}",
"1",
"trig[18]",
"TM medium #mu, I_{mini} < 0.2",
"IsoMu20",-40,
false);
125 PlotTurnOn(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_reliso<0.12&&mus_tru_tm))-0.1", lbins,lmin,lmax,
126 "#mu_{medium, reliso} p_{T}",
"1",
"trig[21]",
"TM medium #mu, I_{R=0.4} < 0.12",
"Mu50",-60,
false);
127 PlotTurnOn(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2&&mus_tru_tm))-0.1", lbins,lmin,lmax,
128 "#mu_{medium, miniso} p_{T}",
"1",
"trig[21]",
"TM medium #mu, I_{mini} < 0.2",
"Mu50",-60,
false);
130 PlotTurnOn(&c_tt,
"Max$(els_pt*(els_sigid&&els_miniso<0.1&&els_tru_tm&&abs(els_eta)<1.4))-0.1",
131 lbins,lmin,lmax,
"e_{medium}^{|#eta|<1.4} p_{T}",
"1",
"trig[24]",
132 "TM medium e, I_{mini} < 0.1",
"Ele105",-120,
false);
133 PlotTurnOn(&c_tt,
"Max$(els_pt*(els_sigid&&els_miniso<0.1&&els_tru_tm&&abs(els_eta)>1.5))-0.1",
134 lbins,lmin,lmax,
"e_{medium}^{|#eta|>1.5} p_{T}",
"1",
"trig[24]",
135 "TM medium e, I_{mini} < 0.1",
"Ele105",-120,
false);
138 lmin = 5; lmax = 50; lbins =
static_cast<int>((lmax-lmin)/1);
139 PlotTurnOn(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_reliso<0.12&&mus_tru_tm))-0.1", lbins,lmin,lmax,
140 "#mu_{medium, reliso} p_{T}",
"1",
"trig[18]",
"TM medium #mu, I_{R=0.4} < 0.12",
142 PlotTurnOn(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_reliso<0.2&&mus_tru_tm))-0.1", lbins,lmin,lmax,
143 "#mu_{medium, reliso} p_{T}",
"1",
"trig[18]",
"TM medium #mu, I_{R=0.4} < 0.2",
145 PlotTurnOn(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2&&mus_tru_tm))-0.1", lbins,lmin,lmax,
146 "#mu_{medium, reliso} p_{T}",
"1",
"trig[18]",
"TM medium #mu, I_{mini} < 0.2",
148 lmin = 25; lmax = 100; lbins =
static_cast<int>((lmax-lmin)/1);
149 PlotTurnOn(&c_tt,
"Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_miniso<0.2))-0.1", lbins,lmin,lmax,
150 "#mu_{medium} p_{T}",
"1",
"trig[21]",
"TM medium #mu, I_{mini} < 0.2",
"Mu50",48,
false);
151 lmin = 70; lmax = 160; lbins =
static_cast<int>((lmax-lmin)/2.5);
152 PlotTurnOn(&c_tt,
"Max$(els_pt*(els_sigid&&els_miniso<0.1&&els_tru_tm&&abs(els_eta)<1.4))-0.1",
153 lbins,lmin,lmax,
"e_{medium}^{|#eta|<1.4} p_{T}",
154 "1",
"trig[24]",
"TM medium e, I_{mini} < 0.1",
"Ele105",-1,
false);
155 PlotTurnOn(&c_tt,
"Max$(els_pt*(els_sigid&&els_miniso<0.1&&els_tru_tm&&abs(els_eta)>1.5))-0.1",
156 lbins,lmin,lmax,
"e_{medium}^{|#eta|>1.5} p_{T}",
157 "1",
"trig[24]",
"TM medium e, I_{mini} < 0.1",
"Ele105",-1,
false);
161 lmin = 60; lmax = 160; lbins =
static_cast<int>((lmax-lmin)/5);
162 PlotTurnOn(&c_all,
"Max$(els_pt*(els_sigid&&els_miniso<0.1&&abs(els_eta)<1.4))-0.1", lbins,lmin,lmax,
163 "e_{medium}^{|#eta|<1.4} p_{T}",
164 "(trig[0]||trig[12])",
"trig[24]",
"HT800 || HT350_MET100",
"Ele105");
165 PlotTurnOn(&c_all,
"Max$(els_pt*(els_sigid&&els_miniso<0.1&&abs(els_eta)>1.5))-0.1", lbins,lmin,lmax,
166 "e_{medium}^{|#eta|>1.5} p_{T}",
167 "(trig[0]||trig[12])",
"trig[24]",
"HT800 || HT350_MET100",
"Ele105");
169 lmin = 0; lmax = 100; lbins =
static_cast<int>((lmax-lmin)/2.5);
170 PlotTurnOn(&c_all,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2))-0.1", lbins,lmin,lmax,
"#mu_{medium} p_{T}",
171 "(trig[0]||trig[12])",
"trig[21]",
"HT800 || HT350_MET100",
"Mu50");
174 lmin = 0; lmax = 60; lbins =
static_cast<int>((lmax-lmin)/2.5);
175 PlotTurnOn(&c_all,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2))-0.1", lbins,lmin,lmax,
"#mu_{medium} p_{T}",
176 "(trig[0]||trig[12])",
"trig[18]",
"HT800 || HT350_MET100",
"IsoMu20");
177 PlotTurnOn(&c_all,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2))-0.1", lbins,lmin,lmax,
"#mu_{medium} p_{T}",
178 "(trig[0]||trig[12])",
"trig[1]||trig[2]",
"HT800 || HT350_MET100",
"Mu15_(HT350_MET70 || HT600)");
179 PlotTurnOn(&c_all,
"Max$(els_pt*(els_sigid&&els_miniso<0.1))-0.1", lbins,lmin,lmax,
"e_{medium} p_{T}",
180 "(trig[0]||trig[12])",
"trig[5]||trig[6]",
"HT800 || HT350_MET100",
"Ele15_(HT350_MET70 || HT600)");
183 lmin = 0; lmax = 300; lbins =
static_cast<int>((lmax-lmin)/20);
184 PlotTurnOn(&c_el,
"Max$(mus_pt*(mus_tight&&mus_reliso<0.12))-0.1", lbins,lmin,lmax,
186 "(trig[22]||trig[26])",
"trig[18]",
"Ele27 || Ele24_22",
"IsoMu20");
187 PlotTurnOn(&c_el,
"Max$(mus_pt*(mus_tight&&mus_miniso<0.2))-0.1", lbins,lmin,lmax,
189 "(trig[22]||trig[26])",
"trig[18]",
"Ele27 || Ele24_22",
"IsoMu20");
190 PlotTurnOn(&c_el,
"Max$(mus_pt*(mus_tight&&mus_miniso<0.2))-0.1", lbins,lmin,lmax,
192 "(trig[22]||trig[26])",
"trig[1]||trig[2]",
"Ele27 || Ele24_22",
"Mu15_(HT350_MET70 || HT600)");
193 PlotTurnOn(&c_el,
"Max$(mus_pt*(mus_tight&&mus_miniso<0.2))-0.1", lbins,lmin,lmax,
195 "(trig[22]||trig[26])",
"trig[21]",
"Ele27 || Ele24_22",
"Mu50");
197 PlotTurnOn(&c_all,
"Max$(mus_pt*(mus_tight&&mus_miniso<0.2))-0.1", lbins,lmin,lmax,
199 "(trig[0]||trig[12])",
"trig[18]",
"HT800 || HT350_MET100",
"IsoMu20");
200 PlotTurnOn(&c_all,
"Max$(mus_pt*(mus_tight&&mus_miniso<0.2))-0.1", lbins,lmin,lmax,
202 "(trig[0]||trig[12])",
"trig[1]||trig[2]",
"HT800 || HT350_MET100",
"Mu15_(HT350_MET70 || HT600)");
203 PlotTurnOn(&c_all,
"Max$(mus_pt*(mus_tight&&mus_miniso<0.2))-0.1", lbins,lmin,lmax,
205 "(trig[0]||trig[12])",
"trig[21]",
"HT800 || HT350_MET100",
"Mu50");
207 PlotTurnOn(&c_all,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2))-0.1", lbins,lmin,lmax,
208 "#mu_{medium} p_{T}",
209 "(trig[0]||trig[12])",
"trig[18]",
"HT800 || HT350_MET100",
"IsoMu20");
210 PlotTurnOn(&c_all,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2))-0.1", lbins,lmin,lmax,
211 "#mu_{medium} p_{T}",
212 "(trig[0]||trig[12])",
"trig[1]||trig[2]",
"HT800 || HT350_MET100",
"Mu15_(HT350_MET70 || HT600)");
213 PlotTurnOn(&c_all,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2))-0.1", lbins,lmin,lmax,
214 "#mu_{medium} p_{T}",
215 "(trig[0]||trig[12])",
"trig[21]",
"HT800 || HT350_MET100",
"Mu50");
217 lmin = 0; lmax = 300; lbins =
static_cast<int>((lmax-lmin)/20);
218 PlotTurnOn(&c_all,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2&&abs(mus_eta)<1.4))-0.1", lbins,lmin,lmax,
219 "#mu_{medium}^{|#eta|<1.4} p_{T}",
220 "(trig[0]||trig[12])",
"trig[1]||trig[2]",
"HT800 || HT350_MET100",
"Mu15_(HT350_MET70 || HT600)");
221 PlotTurnOn(&c_all,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2&&abs(mus_eta)>1.5))-0.1", lbins,lmin,lmax,
222 "#mu_{medium}^{|#eta|>1.5} p_{T}",
223 "(trig[0]||trig[12])",
"trig[1]||trig[2]",
"HT800 || HT350_MET100",
"Mu15_(HT350_MET70 || HT600)");
225 PlotTurnOn(&c_all,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2&&abs(mus_eta)<1.4))-0.1", lbins,lmin,lmax,
226 "#mu_{medium}^{|#eta|<1.4} p_{T}",
227 "(trig[0]||trig[12])",
"trig[21]",
"HT800 || HT350_MET100",
229 PlotTurnOn(&c_all,
"Max$(mus_pt*(mus_sigid&&mus_miniso<0.2&&abs(mus_eta)>1.5))-0.1", lbins,lmin,lmax,
230 "#mu_{medium}^{|#eta|>1.5} p_{T}",
231 "(trig[0]||trig[12])",
"trig[21]",
"HT800 || HT350_MET100",
234 PlotTurnOn(&c_all,
"Max$(els_pt*(els_sigid&&els_miniso<0.1&&abs(els_eta)<1.4))-0.1", lbins,lmin,lmax,
235 "e_{medium}^{|#eta|<1.4} p_{T}",
236 "(trig[0]||trig[12])",
"trig[5]||trig[6]",
"HT800 || HT350_MET100",
"Ele15_(HT350_MET70 || HT600)");
237 PlotTurnOn(&c_all,
"Max$(els_pt*(els_sigid&&els_miniso<0.1&&abs(els_eta)>1.5))-0.1", lbins,lmin,lmax,
238 "e_{medium}^{|#eta|>1.5} p_{T}",
239 "(trig[0]||trig[12])",
"trig[5]||trig[6]",
"HT800 || HT350_MET100",
"Ele15_(HT350_MET70 || HT600)");
241 PlotTurnOn(&c_all,
"Max$(els_pt*(els_sigid&&els_miniso<0.1&&abs(els_eta)<1.4))-0.1", lbins,lmin,lmax,
242 "e_{medium}^{|#eta|<1.4} p_{T}",
243 "(trig[0]||trig[12])",
"trig[24]",
"HT800 || HT350_MET100",
245 PlotTurnOn(&c_all,
"Max$(els_pt*(els_sigid&&els_miniso<0.1&&abs(els_eta)>1.5))-0.1", lbins,lmin,lmax,
246 "e_{medium}^{|#eta|>1.5} p_{T}",
247 "(trig[0]||trig[12])",
"trig[24]",
"HT800 || HT350_MET100",
250 float htmin(175), htmax(1000);
251 int htbins(static_cast<int>((htmax-htmin)/12.5));
252 htmin = 0; htmax = 2400; htbins =
static_cast<int>((htmax-htmin)/200);
253 PlotTurnOn(&c_tt,
"ht_reliso", htbins,htmin,htmax,
"H_{T}",
254 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.12))>40",
255 "trig[18]",
"n_{#mu,40,reliso} #geq 1",
"IsoMu20", -500,
false);
256 PlotTurnOn(&c_tt,
"ht_reliso", htbins,htmin,htmax,
"H_{T}",
257 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.12))>25",
258 "trig[18]",
"n_{#mu,25,reliso} #geq 1",
"IsoMu20", -500,
false);
259 PlotTurnOn(&c_tt,
"ht", htbins,htmin,htmax,
"H_{T}",
260 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_miniso<0.2))>25",
261 "trig[18]",
"n_{#mu,25,miniso} #geq 1",
"IsoMu20", -500,
false);
262 PlotTurnOn(&c_tt,
"ht_reliso", htbins,htmin,htmax,
"H_{T}",
263 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.2))>25",
264 "trig[18]",
"n_{#mu,25,reliso} #geq 1",
"IsoMu20", -500,
false);
266 PlotTurnOn(&c_tt,
"ht", htbins,htmin,htmax,
"H_{T}",
267 "Max$(mus_pt*(mus_sigid&&mus_tru_tm))>25",
268 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_miniso<0.2))>25",
"n_{#mu,25} #geq 1",
269 "n_{#mu,25,miniso} #geq 1", -500,
false);
270 PlotTurnOn(&c_tt,
"ht_reliso", htbins,htmin,htmax,
"H_{T}",
271 "Max$(mus_pt*(mus_sigid&&mus_tru_tm))>25",
272 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.2))>25",
"n_{#mu,25} #geq 1",
273 "n_{#mu,25,reliso} #geq 1", -500,
false);
274 PlotTurnOn(&c_tt,
"ht_reliso", htbins,htmin,htmax,
"H_{T}",
275 "Max$(mus_pt*(mus_sigid&&mus_tru_tm))>25",
276 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.12))>25",
"n_{#mu,25} #geq 1",
277 "n_{#mu,25,reliso} #geq 1", -500,
false);
278 PlotTurnOn(&c_tt,
"ht", htbins,htmin,htmax,
"H_{T}",
279 "Max$(mus_pt*(mus_sigid&&mus_tru_tm))>25",
280 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_miniso<0.2))>25&&trig[18]",
"n_{#mu,25} #geq 1",
281 "n_{#mu,25,miniso} #geq 1, IsoMu20", -500,
false);
282 PlotTurnOn(&c_tt,
"ht_reliso", htbins,htmin,htmax,
"H_{T}",
283 "Max$(mus_pt*(mus_sigid&&mus_tru_tm))>25",
284 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.2))>25&&trig[18]",
"n_{#mu,25} #geq 1",
285 "n_{#mu,25,reliso} #geq 1, IsoMu20", -500,
false);
286 PlotTurnOn(&c_tt,
"ht_reliso", htbins,htmin,htmax,
"H_{T}",
287 "Max$(mus_pt*(mus_sigid&&mus_tru_tm))>25",
288 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.12))>25&&trig[18]",
"n_{#mu,25} #geq 1",
289 "n_{#mu,25,reliso} #geq 1, IsoMu20", -500,
false);
290 PlotTurnOn(&c_tt,
"ht_reliso", htbins,htmin,htmax,
"H_{T}",
291 "Max$(mus_pt*(mus_sigid&&mus_tru_tm))>40",
292 "Max$(mus_pt*(mus_sigid&&mus_tru_tm&&mus_reliso<0.12))>40&&trig[18]",
"n_{#mu,40} #geq 1",
293 "n_{#mu,40,reliso} #geq 1, IsoMu20", -500,
false);
295 float ltmin(0), ltmax(600);
296 int ltbins(static_cast<int>((ltmax-ltmin)/25));
297 PlotTurnOn(&c_jetht,
"met_nohf+Sum$(mus_pt*(mus_sigid&&mus_miniso<0.2))", ltbins, ltmin, ltmax,
"L_{T}",
298 "Sum$((mus_pt>25&&mus_sigid&&mus_miniso<0.2))==1&&ht>500",
"trig[1]||trig[21]",
299 "JetHT, n_{#mu}^{25} = 1, H_{T} > 500",
"Mu15_HT350_MET70 || Mu50");
301 PlotTurnOn(&c_jetht,
"met_nohf+Sum$(els_pt*(els_sigid&&els_miniso<0.1))", ltbins, ltmin, ltmax,
"L_{T}",
302 "Sum$((els_pt>25&&els_sigid&&els_miniso<0.1))==1&&ht>500",
"trig[5]||trig[24]",
303 "JetHT, n_{e}^{25} = 1, H_{T} > 500",
"Ele15_HT350_MET70 || Ele105");
308 float metmin(0), metmax(460);
309 int metbins(static_cast<int>((metmax-metmin)/20));
310 TString vvvl_or(
"(HT400_Btag || HT600)");
311 PlotTurnOn(&c_all,
"met", metbins,metmin,metmax,
"E_{T}^{miss}",
312 "(trig[22]||trig[10])&&mht_ra2b/met>0.5&&mht_ra2b/met<2&&njets_ra2b>=4&&ht_ra2b>500&&onht>350",
"trig[0]",
313 "Ele27 || DoubleEle8, n_{j} #geq 4, H_{T} > 500",
"HT350_MET100");
314 PlotTurnOn(&c_el,
"met", metbins,metmin,metmax,
"E_{T}^{miss}",
315 "(trig[6]||trig[7])&&mht_ra2b/met>0.5&&mht_ra2b/met<2&&njets>=4",
"trig[5]",
316 "Ele15_"+vvvl_or+
", n_{j} #geq 4",
"Ele15_HT350_MET70");
317 PlotTurnOn(&c_all,
"mht_ra2b", metbins,metmin,metmax,
"H_{T}^{miss}",
318 "(trig[22]||trig[10])&&mht_ra2b/met>0.5&&mht_ra2b/met<2&&njets_ra2b>=4&&ht_ra2b>500&&onht>350",
"trig[0]",
319 "Ele27 || DoubleEle8, n_{j} #geq 4, H_{T} > 500",
"HT350_MET100");
322 float htmin(175), htmax(850);
323 int htbins(static_cast<int>((htmax-htmin)/12.5));
324 PlotTurnOn(&c_met,
"ht_hlt", htbins,htmin,htmax,
"H_{T}",
325 "trig[14]&&nvleps==0",
"trig[0]",
"MET170, no leptons",
"HT350_MET100");
326 htmin = 575; htmax = 1450; htbins =
static_cast<int>((htmax-htmin)/25);
327 PlotTurnOn(&c_jetht,
"ht_hlt", htbins,htmin,htmax,
"H_{T}",
328 "trig[11]&&nvleps==0",
"trig[12]",
"HT475, no leptons",
"HT800");
329 htmin = 125; htmax = 850; htbins =
static_cast<int>((htmax-htmin)/25);
330 PlotTurnOn(&c_met,
"ht_hlt", htbins,htmin,htmax,
"H_{T}",
331 "(trig[13])&&(nmus)>=1&&onmaxmu>15",
"trig[1]",
"MET120_Mu5, n_{#mu} #geq 1",
333 htmin = 375; htmax = 1250; htbins =
static_cast<int>((htmax-htmin)/25);
334 PlotTurnOn(&c_el,
"ht_hlt", htbins,htmin,htmax,
"H_{T}",
335 "(trig[5])",
"trig[6]",
"Ele15_HT350_MET70",
"Ele15_HT600");
341 float metmin(0), metmax(500);
342 int metbins(static_cast<int>((metmax-metmin)/20));
343 TString vvvl_or(
"(HT400_Btag || HT600)");
346 vvvl_or =
"HT400_Btag";
347 PlotTurnOn(&c_el,
"met", metbins,metmin,metmax,
"E_{T}^{miss}",
348 "(trig[7])&&njets>=4",
"trig[0]",
349 "Ele15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
350 PlotTurnOn(&c_el,
"mht_ra2b", metbins,metmin,metmax,
"H_{T}^{miss}",
351 "(trig[7])&&mht_ra2b/met>0.5&&mht_ra2b/met<2&&njets>=4",
"trig[0]",
352 "Ele15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
355 PlotTurnOn(&c_el,
"met", metbins,metmin,metmax,
"E_{T}^{miss}",
356 "(trig[6])&&njets>=4",
"trig[0]",
357 "Ele15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
358 PlotTurnOn(&c_el,
"mht_ra2b", metbins,metmin,metmax,
"H_{T}^{miss}",
359 "(trig[6])&&mht_ra2b/met>0.5&&mht_ra2b/met<2&&njets>=4",
"trig[0]",
360 "Ele15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
361 PlotTurnOn(&c_all,
"met", metbins,metmin,metmax,
"E_{T}^{miss}",
362 "(trig[22]||trig[26])&&njets_ra2b>=4&&ht_ra2b>500",
"trig[0]",
363 "(Ele27 || Ele24_22), n_{j}#geq4, H_{T}>500",
"HT350_MET100");
364 PlotTurnOn(&c_all,
"mht_ra2b", metbins,metmin,metmax,
"H_{T}^{miss}",
365 "(trig[22]||trig[26])&&mht_ra2b/met>0.5&&mht_ra2b/met<2&&njets_ra2b>=4&&ht_ra2b>500",
"trig[0]",
366 "(Ele27 || Ele24_22), n_{j}#geq4, H_{T}>500",
"HT350_MET100");
370 PlotTurnOn(&c_el,
"met", metbins,metmin,metmax,
"E_{T}^{miss}",
371 "(trig[6]||trig[7])",
"trig[0]",
"Ele15_"+vvvl_or+
"",
"HT350_MET100");
372 PlotTurnOn(&c_mu,
"met", metbins,metmin,metmax,
"E_{T}^{miss}",
373 "(trig[2]||trig[3])",
"trig[0]",
"Mu15_"+vvvl_or+
"",
"HT350_MET100");
375 PlotTurnOn(&c_el,
"met", metbins,metmin,metmax,
"E_{T}^{miss}",
376 "(trig[6]||trig[7])&&njets>=4",
"trig[0]",
377 "Ele15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
378 PlotTurnOn(&c_mu,
"met", metbins,metmin,metmax,
"E_{T}^{miss}",
379 "(trig[2]||trig[3])&&njets>=4",
"trig[0]",
380 "Mu15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
381 PlotTurnOn(&c_lep,
"met", metbins,metmin,metmax,
"E_{T}^{miss}",
382 "(trig[2]||trig[3]||trig[6]||trig[7])&&njets>=4",
"trig[0]",
383 "Lep15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
386 PlotTurnOn(&c_el,
"met_nohf", metbins,metmin,metmax,
"E_{T}^{miss} no HF",
387 "(trig[6]||trig[7])&&njets>=4",
"trig[0]",
388 "Ele15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
389 PlotTurnOn(&c_mu,
"met_nohf", metbins,metmin,metmax,
"E_{T}^{miss} no HF",
390 "(trig[2]||trig[3])&&njets>=4",
"trig[0]",
391 "Mu15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
392 PlotTurnOn(&c_lep,
"met_nohf", metbins,metmin,metmax,
"E_{T}^{miss} no HF",
393 "(trig[2]||trig[3]||trig[6]||trig[7])&&njets>=4",
"trig[0]",
394 "Lep15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
397 PlotTurnOn(&c_el,
"mht_ra2b", metbins,metmin,metmax,
"H_{T}^{miss}",
398 "(trig[6]||trig[7])&&njets>=4",
"trig[0]",
399 "Ele15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
400 PlotTurnOn(&c_el,
"mht_ra2b", metbins,metmin,metmax,
"H_{T}^{miss}",
401 "(trig[6]||trig[7])&&mht_ra2b/met>0.5&&mht_ra2b/met<2&&njets>=4",
"trig[0]",
402 "Ele15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
403 PlotTurnOn(&c_mu,
"mht_ra2b", metbins,metmin,metmax,
"H_{T}^{miss}",
404 "(trig[2]||trig[3])&&mht_ra2b/met>0.5&&mht_ra2b/met<2&&njets>=4",
"trig[0]",
405 "Mu15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
406 PlotTurnOn(&c_lep,
"mht_ra2b", metbins,metmin,metmax,
"H_{T}^{miss}",
407 "(trig[2]||trig[3]||trig[6]||trig[7])&&mht_ra2b/met>0.5&&mht_ra2b/met<2&&njets>=4",
"trig[0]",
408 "Lep15_"+vvvl_or+
", n_{j}#geq4",
"HT350_MET100");
411 PlotTurnOn(&c_el,
"met", metbins,metmin,metmax,
"E_{T}^{miss}",
412 "(trig[6]||trig[7])&&njets>=4",
"trig[5]",
413 "Ele15_"+vvvl_or+
", n_{j}#geq4",
"Ele15_HT350_MET70");
414 PlotTurnOn(&c_mu,
"met", metbins,metmin,metmax,
"E_{T}^{miss}",
415 "(trig[2]||trig[3])&&njets>=4",
"trig[1]",
416 "Mu15_"+vvvl_or+
", n_{j}#geq4",
"Mu15_HT350_MET70");
417 PlotTurnOn(&c_lep,
"met", metbins,metmin,metmax,
"E_{T}^{miss}",
418 "(trig[2]||trig[3]||trig[6]||trig[7])&&njets>=4",
"trig[1]||trig[5]",
419 "Lep15_"+vvvl_or+
", n_{j}#geq4",
"Lep15_HT350_MET70");
420 PlotTurnOn(&c_el,
"mht_ra2b", metbins,metmin,metmax,
"H_{T}^{miss}",
421 "(trig[6]||trig[7])&&mht_ra2b/met>0.5&&mht_ra2b/met<2&&njets>=4",
"trig[5]",
422 "Ele15_"+vvvl_or+
", n_{j}#geq4",
"Ele15_HT350_MET70");
423 PlotTurnOn(&c_mu,
"mht_ra2b", metbins,metmin,metmax,
"H_{T}^{miss}",
424 "(trig[2]||trig[3])&&mht_ra2b/met>0.5&&mht_ra2b/met<2&&njets>=4",
"trig[1]",
425 "Mu15_"+vvvl_or+
", n_{j}#geq4",
"Mu15_HT350_MET70");
426 PlotTurnOn(&c_lep,
"mht_ra2b", metbins,metmin,metmax,
"H_{T}^{miss}",
427 "(trig[2]||trig[3]||trig[6]||trig[7])&&mht_ra2b/met>0.5&&mht_ra2b/met<2&&njets>=4",
428 "trig[1]||trig[5]",
"Lep15_"+vvvl_or+
", n_{j}#geq4",
"Lep15_HT350_MET70");
434 float htmin(175), htmax(1000);
435 int htbins(static_cast<int>((htmax-htmin)/12.5));
436 PlotTurnOn(&c_met,
"ht", htbins,htmin,htmax,
"H_{T}",
437 "trig[14]&&nvleps==0",
"trig[0]",
"MET170, no leptons",
"HT350_MET100");
438 PlotTurnOn(&c_met,
"ht_hlt", htbins,htmin,htmax,
"H_{T}",
439 "trig[14]&&nvleps==0",
"trig[0]",
"MET170, no leptons",
"HT350_MET100");
440 PlotTurnOn(&c_met,
"ht", htbins,htmin,htmax,
"H_{T}",
441 "trig[14]&&nvleps==0",
"trig[0]",
"MET170, no leptons",
"HT350_MET100",350);
442 PlotTurnOn(&c_met,
"ht_hlt", htbins,htmin,htmax,
"H_{T}",
443 "trig[14]&&nvleps==0",
"trig[0]",
"MET170, no leptons",
"HT350_MET100",350);
445 htmin = 600; htmax = 1600; htbins =
static_cast<int>((htmax-htmin)/25);
446 PlotTurnOn(&c_jetht,
"ht", htbins,htmin,htmax,
"H_{T}",
447 "trig[11]&&nvleps==0",
"trig[12]",
"HT475, no leptons",
"HT800");
448 PlotTurnOn(&c_jetht,
"ht_hlt", htbins,htmin,htmax,
"H_{T}",
449 "trig[11]&&nvleps==0",
"trig[12]",
"HT475, no leptons",
"HT800");
450 PlotTurnOn(&c_jetht,
"ht", htbins,htmin,htmax,
"H_{T}",
451 "trig[11]&&nvleps==0",
"trig[12]",
"HT475, no leptons",
"HT800",825);
452 PlotTurnOn(&c_jetht,
"ht_hlt", htbins,htmin,htmax,
"H_{T}",
453 "trig[11]&&nvleps==0",
"trig[12]",
"HT475, no leptons",
"HT800",825);
456 htmin = 125; htmax = 1000; htbins =
static_cast<int>((htmax-htmin)/25);
457 PlotTurnOn(&c_met,
"ht_hlt", htbins,htmin,htmax,
"H_{T}",
458 "(trig[14])&&nels>=1&&onmaxel>15",
"trig[5]",
"MET170, n_{e} #geq 1",
459 "Ele15_HT350_MET70");
460 PlotTurnOn(&c_met,
"ht_hlt", htbins,htmin,htmax,
"H_{T}",
461 "(trig[13])&&(nmus)>=1&&onmaxmu>15",
"trig[1]",
"MET120_Mu5, n_{#mu} #geq 1",
463 htmin = 400; htmax = 1300; htbins =
static_cast<int>((htmax-htmin)/25);
464 PlotTurnOn(&c_mu,
"ht_hlt", htbins,htmin,htmax,
"H_{T}",
465 "(trig[1])",
"trig[2]",
"Mu15_HT350_MET70",
"Mu15_HT600");
466 PlotTurnOn(&c_el,
"ht_hlt", htbins,htmin,htmax,
"H_{T}",
467 "(trig[5])",
"trig[6]",
"Ele15_HT350_MET70",
"Ele15_HT600");
468 PlotTurnOn(&c_mu,
"ht", htbins,htmin,htmax,
"H_{T}",
469 "(trig[1])",
"trig[2]",
"Mu15_HT350_MET70",
"Mu15_HT600");
470 PlotTurnOn(&c_el,
"ht", htbins,htmin,htmax,
"H_{T}",
471 "(trig[5])",
"trig[6]",
"Ele15_HT350_MET70",
"Ele15_HT600");
472 PlotTurnOn(&c_mu,
"ht", htbins,htmin,htmax,
"H_{T}",
473 "(trig[1])",
"trig[2]",
"Mu15_HT350_MET70",
"Mu15_HT600",600);
474 PlotTurnOn(&c_el,
"ht", htbins,htmin,htmax,
"H_{T}",
475 "(trig[5])",
"trig[6]",
"Ele15_HT350_MET70",
"Ele15_HT600",600);
483 TString den, TString
num, TString title, TString ytitle,
float minfit,
bool isData){
484 styles style(
"HLTStyle"); gStyle->SetPadTickY(0);
485 bool dofit(minfit>=-1);
489 TString hname, totCut, pname;
490 den =
"("+den+
")&&json_golden&&pass";
491 hname =
"den"; totCut = den;
492 histo[0] =
new TH1D(hname,
"", nbins, minx, maxx);
493 data->Project(hname, var, totCut);
495 hname =
"num"; totCut =
"("+den+
")&&("+num+
")";
496 histo[1] =
new TH1D(hname,
"", nbins, minx, maxx);
497 data->Project(hname, var, totCut);
500 for(
unsigned his(0); his<2; his++)
501 histo[his]->SetBinContent(nbins, histo[his]->GetBinContent(nbins)+histo[his]->GetBinContent(nbins+1));
503 TGraphAsymmErrors heff(histo[1], histo[0],
"cp");
505 heff.SetMarkerStyle(20); heff.SetMarkerSize(0.9);
506 heff.SetMarkerColor(1); heff.SetLineColor(1);
508 TString epsi(
"#scale[1.3]{#font[122]{e}}");
511 float hscaled(0.3), maxeff(1.42);
512 float hfactor(hscaled/histo[1]->GetMaximum()), hmax(histo[1]->GetMaximum());
513 float axismax(hmax*maxeff/hscaled);
514 histo[1]->Scale(hfactor);
516 histo[1]->SetFillColor(kBlue-9);
517 histo[1]->SetLineStyle(0);
519 histo[1]->GetXaxis()->SetTitle(
"Offline "+xtitle+
" [GeV]");
520 histo[1]->GetYaxis()->SetTitle(epsi+
" ["+ytitle+
"]");
521 histo[1]->GetYaxis()->SetTitle(
"Efficiency ["+ytitle+
"]");
522 histo[1]->GetYaxis()->SetRangeUser(0,maxeff);
523 histo[1]->GetYaxis()->CenterTitle(
true);
526 TLine line; line.SetLineStyle(3);
527 line.DrawLine(minx, 1, maxx, 1);
529 histo[0]->Scale(hfactor);
530 histo[0]->SetLineColor(kBlue+2);
531 histo[0]->SetLineStyle(2);
532 histo[0]->SetLineWidth(2);
533 histo[0]->Draw(
"same");
537 if(minfit>0) {pname +=
"_min"; pname += minfit; }
538 if(isData) pname +=
"_data";
541 pname.ReplaceAll(
"_json_golden_pass",
"");
545 if(minfit<0 && dofit) minfit = minx;
546 TF1 *fitCurve =
new TF1(
"fitCurve",
errorFun,minx,maxx,3);
547 Double_t params[] = {0.99,minx+(maxx-minx)/4.,50., 50.};
549 fitCurve->SetParameters(params);
550 fitCurve->SetParNames(
"#epsilon",
"#mu",
"#sigma");
551 fitCurve->SetLineColor(2);
552 fitCurve->SetLineWidth(2);
553 if(dofit) heff.Fit(
"fitCurve",
"QEM+",
"",minfit, maxx);
556 histo[1]->Draw(
"axis same");
558 float binw((maxx-minx)/static_cast<float>(nbins));
559 int digits((binw-floor(binw))>0?1:0);
561 TString ntitle(
"Events/("+
RoundNumber(maxx-minx,digits,nbins)+
" GeV)");
562 TGaxis *axis =
new TGaxis(maxx,0, maxx, maxeff,0,axismax,508,
"+L");
563 axis->SetLineColor(kBlue+2);
564 axis->SetTextColor(kBlue+2); axis->SetLabelColor(kBlue+2);
565 axis->SetTextFont(style.
nFont); axis->SetLabelFont(style.
nFont);
567 if(axismax>=1000) axis->SetTitleOffset(style.
yTitleOffset+0.34);
569 axis->SetTitle(ntitle); axis->CenterTitle(
true);
573 float effic, errup, errdown;
574 float mu(fitCurve->GetParameter(1)), sigma(fitCurve->GetParameter(2));
575 float rgev(mu>200?10:5);
576 float var_plateau_f(floor((mu+3*sigma+5)/rgev)*rgev);
577 if(!dofit) var_plateau_f = fabs(minfit);
578 TString den_plateau(den), var_plateau(
RoundNumber(var_plateau_f, 0));
579 den_plateau += (
"&&"+var+
">"+var_plateau);
580 Efficiency(data, den_plateau, num, effic, errup, errdown);
583 float p98(fitCurve->GetParameter(1)+2.05*fitCurve->GetParameter(2));
584 float eplateau(fitCurve->GetParError(0)*100);
585 if(eplateau<0.1 && dofit) cout<<
"Error on plateau "<<eplateau<<
"%"<<endl;
591 TString fitpar(epsi+
"("+xtitle+
" > "+var_plateau+
" GeV) = "+
RoundNumber(effic*100,1)+
"^{+"+
RoundNumber(errup*100,1)+
593 TLatex label; label.SetTextSize(0.042);
594 label.SetTextAlign(33);
595 float range(maxx-minx);
596 float x2(maxx-0.04*range), y2(maxeff-0.07), ysingle(0.1);
597 label.DrawLatex(x2, y2,
"Denom: #font[52]{"+title+
"}");
598 label.DrawLatex(x2, y2-ysingle,fitpar);
599 fitpar =
"98% of plateau at "+
RoundNumber(p98,0)+
" GeV";
600 if(dofit) label.DrawLatex(x2, y2-2.3*ysingle,fitpar);
603 label.SetNDC(); label.SetTextAlign(11); label.SetTextSize(0.045);
604 if(isData) label.DrawLatex(0.13, 0.93,
"#font[61]{CMS} #scale[0.8]{#font[52]{Preliminary}}");
605 else label.DrawLatex(0.13, 0.93,
"#font[61]{CMS} #scale[0.8]{#font[52]{Simulation}}");
607 label.SetTextAlign(31);
608 if(isData) label.DrawLatex(0.85, 0.93,
"42 pb^{-1} (13 TeV)");
609 else label.DrawLatex(0.85, 0.93,
"Spring15 t#bar{t}");
613 for(
unsigned his(0); his<2; his++)
614 histo[his]->Delete();
618 TString
Efficiency(TChain *
data, TString den, TString
num,
float &effic,
float &errup,
float &errdown){
620 TString hname, totCut, pname;
621 den =
"("+den+
")&&json_golden&&pass";
622 hname =
"eden"; totCut = den;
623 histo[0] =
new TH1D(hname,
"", 1, 0, 1);
624 float denom(data->GetEntries(totCut));
625 histo[0]->SetBinContent(1,denom);
627 hname =
"enum"; totCut =
"("+den+
")&&("+num+
")";
628 histo[1] =
new TH1D(hname,
"", 1, 0, 1);
629 float numer(data->GetEntries(totCut));
630 histo[1]->SetBinContent(1,numer);
632 TGraphAsymmErrors heff(histo[1], histo[0],
"cp");
636 errup = heff.GetErrorYhigh(0); errdown = heff.GetErrorYlow(0);
639 den.ReplaceAll(
"&&json_golden",
"");
641 <<
"-"<<
RoundNumber(errdown*100,1)<<
" for num "<<num<<
" and "<<den<<
" with "<<denom<<
" entries"<<endl;
642 else cout<<
"Denominator is zero"<<endl;
647 for(
unsigned his(0); his<2; his++)
648 histo[his]->Delete();
TString Efficiency(TChain *data, TString den, TString num, float &effic, float &errup, float &errdown)
void PlotTurnOn(TChain *data, TString var, int nbins, double minx, double maxx, TString xtitle, TString den, TString num, TString title="", TString ytitle="", float minfit=-1., bool isData=true)
Double_t errorFun(Double_t *x, Double_t *par)
TString format_tag(TString tag)
TString RoundNumber(double num, int decimals, double denom=1.)