26 TString folder=
"archive/2015_05_02/skim/";
27 TString folder_noskim=
"archive/15-05-02//";
29 s_tt.push_back(folder+
"*_TTJet*");
30 vector<TString> s_tt_noskim;
31 s_tt_noskim.push_back(folder_noskim+
"*_TTJet*12.root");
32 vector<TString> s_wjets;
33 s_wjets.push_back(folder+
"*WJetsToLNu_HT*");
34 vector<TString> s_single;
35 s_single.push_back(folder+
"*_T*channel*");
36 vector<TString> s_ttv;
37 s_ttv.push_back(folder+
"*TTW*");
38 s_ttv.push_back(folder+
"*TTZ*");
39 vector<TString> s_other;
40 s_other.push_back(folder+
"*QCD_HT*");
41 s_other.push_back(folder+
"*_ZJet*");
42 s_other.push_back(folder+
"*DY*");
43 s_other.push_back(folder+
"*WH_HToBB*");
44 vector<TString> s_t1t;
45 s_t1t.push_back(folder+
"*T1tttt*1500_*PU20*");
46 vector<TString> s_t1tc;
47 s_t1tc.push_back(folder+
"*T1tttt*1200_*PU20*");
50 vector<TChain *> chain;
51 vector<sfeats> Samples;
52 Samples.push_back(
sfeats(s_other,
"Other", 1001));
53 Samples.push_back(
sfeats(s_ttv,
"ttV", 1002));
54 Samples.push_back(
sfeats(s_single,
"Single top", 1005));
55 Samples.push_back(
sfeats(s_wjets,
"W + jets", 1004));
56 Samples.push_back(
sfeats(s_tt,
"t#bar{t}, 2 l", 1006,1,
"((mc_type&0x0F00)/0x100+(mc_type&0x000F)-(mc_type&0x00F0)/0x10)>=2"));
57 Samples.push_back(
sfeats(s_tt,
"t#bar{t}, 1 l", 1000,1,
"((mc_type&0x0F00)/0x100+(mc_type&0x000F)-(mc_type&0x00F0)/0x10)<=1"));
58 Samples.push_back(
sfeats(s_t1t,
"T1tttt(1500,100)", 2));
59 Samples.push_back(
sfeats(s_t1tc,
"T1tttt(1200,800)", 2,2));
60 Samples.push_back(
sfeats(s_tt_noskim,
"t#bar{t}", 1000,1));
63 for(
unsigned sam(0); sam < Samples.size(); sam++){
64 chain.push_back(
new TChain(
"tree"));
65 for(
unsigned insam(0); insam < Samples[sam].file.size(); insam++)
66 chain[sam]->Add(Samples[sam].
file[insam]);
80 vector<int> ra4_tt_t1;
81 ra4_tt_t1.push_back(4);
82 ra4_tt_t1.push_back(5);
83 ra4_tt_t1.push_back(6);
84 ra4_tt_t1.push_back(7);
87 vector<int> ra4_tt2l_t1;
88 ra4_tt2l_t1.push_back(4);
89 ra4_tt2l_t1.push_back(6);
90 ra4_tt2l_t1.push_back(7);
118 vars.push_back(
hfeats(
"mt",50,0,200, ra4_tt2l_t1,
"m_{T} (GeV)",
119 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1"));
121 vars.push_back(
hfeats(
"mt",50,0,200, ra4_tt2l_t1,
"m_{T} (GeV)",
122 "ht>500&&mj>500&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1"));
124 vars.push_back(
hfeats(
"mt",50,0,200, ra4_tt2l_t1,
"m_{T} (GeV)",
125 "ht>500&&mj>300&&met>400&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1"));
134 vars.push_back(
hfeats(
"(tks_pt)*(tks_mini_ne+tks_mini_ch)",40,0,100, ra4_tt2l_t1,
"abs chg+neu mini isolation, hadronic tracks",
135 "ht>500&&mj>500&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)"));
138 vars.push_back(
hfeats(
"(tks_pt)*(tks_mini_ne+tks_mini_ch)",40,0,100, ra4_tt2l_t1,
"abs chg+neu mini isolation, hadronic tracks",
139 "ht>500&&mj>500&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&!(tks_from_w)"));
142 vars.push_back(
hfeats(
"(tks_pt)*(tks_mini_ch)",40,0,100, ra4_tt2l_t1,
"abs chg mini isolation, hadronic tracks",
143 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)"));
145 vars.push_back(
hfeats(
"(tks_pt)*(tks_mini_ch)",40,0,100, ra4_tt2l_t1,
"abs chg mini isolation, hadronic tracks",
146 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&!(tks_from_w)"));
151 vars.push_back(
hfeats(
"(tks_pt)*(tks_mini_ne+tks_mini_ch)",40,0,100, ra4_tt2l_t1,
"abs chg+neu mini isolation, hadronic tracks",
152 "ht>500&&mj>300&&met>400&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)"));
154 vars.push_back(
hfeats(
"(tks_pt)*(tks_mini_ne+tks_mini_ch)",40,0,100, ra4_tt2l_t1,
"abs chg+neu mini isolation, hadronic tracks",
155 "ht>500&&mj>300&&met>400&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&!(tks_from_w)"));
159 vars.push_back(
hfeats(
"tks_mini_ne+tks_mini_ch",60,0,3, ra4_tt2l_t1,
"chg+neu mini isolation, hadronic tracks",
160 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)"));
162 vars.push_back(
hfeats(
"tks_mini_ne+tks_mini_ch",60,0,3, ra4_tt2l_t1,
"chg+neu mini isolation, hadronic tracks",
163 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&!(tks_from_w)"));
166 vars.push_back(
hfeats(
"tks_mini_ch",60,0,3, ra4_tt2l_t1,
"chg mini isolation, hadronic tracks",
167 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)"));
168 vars.push_back(
hfeats(
"tks_mini_ch",60,0,3, ra4_tt2l_t1,
"chg mini isolation, hadronic tracks",
169 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&!(tks_from_w)"));
174 vars.push_back(
hfeats(
"tks_mt",30,0,300, ra4_tt2l_t1,
"track m_{T} (GeV), hadronic tracks, abs chg+neu mini iso < 10",
175 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)&&((tks_pt)*(tks_mini_ne+tks_mini_ch))<10"));
176 vars.push_back(
hfeats(
"tks_mt",30,0,300, ra4_tt2l_t1,
"track m_{T} (GeV), hadronic tracks, abs chg+neu iso mini < 20",
177 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)&&((tks_pt)*(tks_mini_ne+tks_mini_ch))<20"));
181 vars.push_back(
hfeats(
"tks_mt",30,0,300, ra4_tt2l_t1,
"track m_{T} (GeV), hadronic tracks",
182 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)"));
186 vars.push_back(
hfeats(
"tks_pt",30,0,150, ra4_tt2l_t1,
"track p_{T} (GeV), hadronic tracks",
187 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)"));
188 vars.push_back(
hfeats(
"tks_pt",30,0,150, ra4_tt2l_t1,
"track p_{T} (GeV), hadronic tracks, chg+neu iso < 0.2",
189 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)&&(tks_mini_ne+tks_mini_ch)<0.2"));
190 vars.push_back(
hfeats(
"tks_pt",30,0,150, ra4_tt2l_t1,
"track p_{T} (GeV), hadronic tracks, chg+neu iso < 1.0",
191 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)&&(tks_mini_ne+tks_mini_ch)<1.0"));
196 vars.push_back(
hfeats(
"(tks_pt)*(tks_mini_ne+tks_mini_ch)",40,0,100, ra4_tt2l_t1,
"abs chg+neu mini isolation, hadronic tracks",
197 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)&&tks_mt<100"));
199 vars.push_back(
hfeats(
"(tks_pt)*(tks_mini_ne+tks_mini_ch)",40,0,100, ra4_tt2l_t1,
"abs chg+neu mini isolation, hadronic tracks",
200 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&!(tks_from_w)&&tks_mt<100"));
203 vars.push_back(
hfeats(
"(tks_pt)*(tks_mini_ch)",40,0,100, ra4_tt2l_t1,
"abs chg mini isolation, hadronic tracks",
204 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)&&tks_mt<100"));
206 vars.push_back(
hfeats(
"(tks_pt)*(tks_mini_ch)",40,0,100, ra4_tt2l_t1,
"abs chg mini isolation, hadronic tracks",
207 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&!(tks_from_w)&&tks_mt<100"));
210 vars.push_back(
hfeats(
"tks_mini_ne+tks_mini_ch",60,0,3, ra4_tt2l_t1,
"chg+neu mini isolation, hadronic tracks",
211 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)&&tks_mt<100"));
212 vars.push_back(
hfeats(
"tks_mini_ne+tks_mini_ch",60,0,3, ra4_tt2l_t1,
"chg+neu mini isolation, hadronic tracks",
213 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&!(tks_from_w)&&tks_mt<100"));
216 vars.push_back(
hfeats(
"tks_mini_ch",60,0,3, ra4_tt2l_t1,
"chg mini isolation, hadronic tracks",
217 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&(tks_from_w)&&tks_mt<100"));
218 vars.push_back(
hfeats(
"tks_mini_ch",60,0,3, ra4_tt2l_t1,
"chg mini isolation, hadronic tracks",
219 "ht>500&&mj>300&&met>200&&nbm>=1&&mt>140&&njets>=6&&(nmus+nels)==1&&((tks_id*lep_charge)<0)&&(!tks_is_primary)&&!(tks_id*tks_id==169||tks_id*tks_id==121)&&!(tks_from_w)&&tks_mt<100"));
232 float minLog = 0.04, maxLog = 20;
233 double legX = 0.44, legY = 0.88, legSingle = 0.055;
234 double legW = 0.26, legH = legSingle*vars[0].samples.size();
235 TLegend
leg(legX, legY-legH, legX+legW, legY);
236 leg.SetTextSize(0.04); leg.SetFillColor(0); leg.SetFillStyle(0); leg.SetBorderSize(0);
239 TLine line; line.SetLineColor(28); line.SetLineWidth(4); line.SetLineStyle(2);
240 vector< vector<TH1D*> > histo[2];
241 vector<TH1D*> varhisto;
242 vector<float> nentries;
244 vector<float> nevents1;
245 vector<float> nevents2;
246 vector<float> nevents3;
248 nevents2.resize(0); nevents3.resize(0);
249 TString hname, pname, variable, leghisto, totCut, title, ytitle;
250 for(
unsigned var(0); var<vars.size(); var++){
254 title = vars[var].cuts;
if(title==
"1") title =
"";
255 title.ReplaceAll(
"Sum$(abs(mc_id)==11)>0",
"");title.ReplaceAll(
"Sum$(abs(mc_id)==13)>0",
"");
256 title.ReplaceAll(
"nvmus==1&&nmus==1&&nvels==0",
"1 #mu");
257 title.ReplaceAll(
"nvmus10==0&&nvels10==0",
"0 leptons");
258 title.ReplaceAll(
"(nmus+nels)",
"n_{lep}"); title.ReplaceAll(
"njets30",
"n_{jets}^{30}");
259 title.ReplaceAll(
"els_pt",
"p^{e}_{T}");title.ReplaceAll(
"mus_pt",
"p^{#mu}_{T}");
260 title.ReplaceAll(
"mus_reliso",
"RelIso"); title.ReplaceAll(
"els_reliso",
"RelIso");
261 title.ReplaceAll(
"mus_miniso_tr15",
"MiniIso"); title.ReplaceAll(
"els_miniso_tr15",
"MiniIso");
262 title.ReplaceAll(
"njets",
"n_{jets}");title.ReplaceAll(
"abs(lep_id)==13&&",
"");
263 title.ReplaceAll(
">=",
" #geq "); title.ReplaceAll(
">",
" > "); title.ReplaceAll(
"&&",
", ");
264 title.ReplaceAll(
"met",
"MET"); title.ReplaceAll(
"ht",
"H_{T}"); title.ReplaceAll(
"mt",
"m_{T}");
265 title.ReplaceAll(
"nleps==1",
"1 lepton"); title.ReplaceAll(
"nbm",
"n_{b}"); title.ReplaceAll(
"==",
" = ");
266 title.ReplaceAll(
"nbl[1]",
"n_{b,l}");
268 for(
unsigned his(0); his < 2; his++){
270 for(
unsigned sam(0); sam < vars[var].samples.size(); sam++){
271 hname =
"histo"; hname += var; hname += his; hname += sam;
272 varhisto.push_back(
new TH1D(hname, title, vars[var].
nbins, vars[var].minx, vars[var].maxx));
274 histo[his].push_back(varhisto);
280 variable = vars[var].varname;
281 float maxhisto(-999);
282 for(
unsigned sam(0); sam < vars[var].samples.size(); sam++){
283 int isam = vars[var].samples[sam];
284 bool isSig = Samples[isam].isSig;
285 totCut = Samples[isam].factor+
"*"+luminosity+
"*weight*("+vars[var].cuts+
"&&"+Samples[isam].cut+
")";
287 chain[isam]->Project(histo[0][var][sam]->GetName(), variable, totCut);
288 histo[0][var][sam]->SetBinContent(vars[var].
nbins,
289 histo[0][var][sam]->GetBinContent(vars[var].nbins)+
290 histo[0][var][sam]->GetBinContent(vars[var].nbins+1));
291 nentries.push_back(histo[0][var][sam]->Integral(1,vars[var].nbins));
292 if(var==0) nevents1.push_back(nentries[sam]);
293 if(var==1) nevents2.push_back(nentries[sam]);
294 if(var==2) nevents3.push_back(nentries[sam]);
295 histo[0][var][sam]->SetXTitle(vars[var].title);
296 ytitle =
"Entries for "+luminosity+
" fb^{-1}";
297 if(vars[var].unit!=
"") {
299 float binwidth((vars[var].maxx-vars[var].minx)/static_cast<float>(vars[var].nbins));
300 if(binwidth<1) digits = 1;
301 ytitle += (
"/("+
RoundNumber(binwidth,digits) +
" "+vars[var].unit+
")");
303 histo[0][var][sam]->SetYTitle(ytitle);
305 for(
int bin(0); bin<=histo[0][var][sam]->GetNbinsX()+1; bin++)
306 histo[1][var][sam]->SetBinContent(bin, histo[0][var][sam]->GetBinContent(bin));
309 for(
int bsam(sam-1); bsam >= 0; bsam--){
310 histo[0][var][sam]->Add(histo[0][var][bsam]);
317 histo[0][var][sam]->SetFillColor(Samples[isam].color);
318 histo[0][var][sam]->SetFillStyle(1001);
319 histo[0][var][sam]->SetLineColor(1);
320 histo[0][var][sam]->SetLineWidth(1);
322 histo[0][var][sam]->SetLineColor(Samples[isam].color);
323 histo[0][var][sam]->SetLineStyle(Samples[isam].style);
324 histo[0][var][sam]->SetLineWidth(3);
326 if(maxhisto < histo[0][var][sam]->GetMaximum()) maxhisto = histo[0][var][sam]->GetMaximum();
328 int firstplotted(-1);
329 for(
int sam(vars[var].samples.size()-1); sam >= 0; sam--){
330 int isam = vars[var].samples[sam];
331 leghisto = Samples[isam].label+
" [N = " +
RoundNumber(nentries[sam],0) +
"]";
333 cout<<endl<<Samples[isam].label<<
" Total entries: " <<
RoundNumber(nentries[sam],0)<<endl;
336 leg.AddEntry(histo[0][var][sam], leghisto);
337 bool isSig = Samples[isam].isSig;
339 if(firstplotted < 0) {
340 histo[0][var][sam]->Draw();
342 }
else histo[0][var][sam]->Draw(
"same");
345 for(
int sam(vars[var].samples.size()-1); sam >= 0; sam--){
346 int isam = vars[var].samples[sam];
347 bool isSig = Samples[isam].isSig;
348 if(isSig) histo[0][var][sam]->Draw(
"same");
350 legH = legSingle*vars[var].samples.size(); leg.SetY1NDC(legY-legH);
351 leg.SetX1NDC(legX); leg.SetX2NDC(legX+legW);
353 if(histo[0][var][firstplotted]->GetMinimum() > minLog) histo[0][var][firstplotted]->SetMinimum(minLog);
354 histo[0][var][firstplotted]->SetMinimum(minLog);
355 histo[0][var][firstplotted]->SetMaximum(maxhisto*maxLog);
360 histo[0][var][firstplotted]->Draw(
"axis same");
361 if(vars[var].cut>0) line.DrawLine(vars[var].cut, 0, vars[var].cut, maxhisto*maxLog);
363 pname =
"plots/1d6_tau/log_lumi_"+vars[var].tag+
".pdf";
365 histo[0][var][firstplotted]->SetMinimum(0);
366 histo[0][var][firstplotted]->SetMaximum(maxhisto*1.1);
368 pname =
"plots/1d6_tau/lumi_"+vars[var].tag+
".pdf";
372 leg.Clear(); maxhisto = -999;
373 leg.SetX1NDC(legX-0.08); leg.SetX2NDC(legX+legW-0.08);
374 for(
unsigned sam(0); sam < vars[var].samples.size(); sam++){
375 int isam = vars[var].samples[sam];
376 histo[1][var][sam]->SetLineColor(Samples[isam].color);
377 histo[1][var][sam]->SetLineStyle(Samples[isam].style);
378 histo[1][var][sam]->SetLineWidth(3);
379 if(nentries[sam]) histo[1][var][sam]->Scale(100./nentries[sam]);
380 if(maxhisto < histo[1][var][sam]->GetMaximum()) maxhisto = histo[1][var][sam]->GetMaximum();
382 histo[1][var][sam]->SetXTitle(vars[var].title);
383 histo[1][var][sam]->SetYTitle(
"Entries (%)");
384 histo[1][var][sam]->Draw();
385 }
else histo[1][var][sam]->Draw(
"same");
386 if(vars[var].title.Contains(
"mini") && !vars[var].title.Contains(
"abs") && (sam !=1 || vars[var].samples.size()<4 )){
388 cout<<Samples[isam].label<<
" track isolation efficiency"<<endl<<Form(
"0.05: %.2f",histo[1][var][sam]->Integral(histo[1][var][sam]->FindBin(0),histo[1][var][sam]->FindBin(0.049)))<<
"%"<<endl;
389 cout<<Form(
"0.1: %.2f",histo[1][var][sam]->Integral(histo[1][var][sam]->FindBin(0),histo[1][var][sam]->FindBin(0.09)))<<
"%"<<endl;
390 cout<<Form(
"0.2: %.1f",histo[1][var][sam]->Integral(histo[1][var][sam]->FindBin(0),histo[1][var][sam]->FindBin(0.19)))<<
"%"<<endl;
391 cout<<Form(
"0.3: %.1f",histo[1][var][sam]->Integral(histo[1][var][sam]->FindBin(0),histo[1][var][sam]->FindBin(0.29)))<<
"%"<<endl;
392 cout<<Form(
"0.5: %.1f",histo[1][var][sam]->Integral(histo[1][var][sam]->FindBin(0),histo[1][var][sam]->FindBin(0.49)))<<
"%"<<endl<<endl;
396 if(vars[var].title.Contains(
"mini") && vars[var].title.Contains(
"abs") && (sam !=1 || vars[var].samples.size()<4 )){
398 cout<<Samples[isam].label<<
" track isolation efficiency"<<endl<<Form(
"2.5: %.2f",histo[1][var][sam]->Integral(histo[1][var][sam]->FindBin(0),histo[1][var][sam]->FindBin(2.49)))<<
"%"<<endl;
399 cout<<Form(
"5: %.2f",histo[1][var][sam]->Integral(histo[1][var][sam]->FindBin(0),histo[1][var][sam]->FindBin(4.9)))<<
"%"<<endl;
400 cout<<Form(
"10: %.1f",histo[1][var][sam]->Integral(histo[1][var][sam]->FindBin(0),histo[1][var][sam]->FindBin(9.9)))<<
"%"<<endl;
401 cout<<Form(
"20: %.1f",histo[1][var][sam]->Integral(histo[1][var][sam]->FindBin(0),histo[1][var][sam]->FindBin(19.9)))<<
"%"<<endl;
402 cout<<Form(
"30: %.1f",histo[1][var][sam]->Integral(histo[1][var][sam]->FindBin(0),histo[1][var][sam]->FindBin(29.9)))<<
"%"<<endl<<endl;
407 leghisto = Samples[isam].label;
412 if(vars[var].cuts.Contains(
"mj>500&&met>200"))leghisto+= +
" [N_{tks} = " +
RoundNumber(nentries[sam],0) +
", from N_{events} = "+
RoundNumber(nevents2[sam],0)+
"]";
413 else if(vars[var].cuts.Contains(
"mj>300&&met>400"))leghisto+= +
" [N_{tks} = " +
RoundNumber(nentries[sam],0) +
", from N_{events} = "+
RoundNumber(nevents3[sam],0)+
"]";
414 else leghisto+= +
" [N_{tks} = " +
RoundNumber(nentries[sam],0) +
", from N_{events} = "+
RoundNumber(nevents1[sam],0)+
"]";
415 leg.AddEntry(histo[1][var][sam], leghisto);
418 if(vars[var].cut>0) line.DrawLine(vars[var].cut, 0, vars[var].cut, maxhisto*1.1);
419 histo[1][var][0]->SetMaximum(maxhisto*1.1);
420 histo[1][var][0]->Draw(
"axis same");
422 pname =
"plots/1d6_tau/shapes_"+vars[var].tag+
".pdf";
424 histo[1][var][0]->SetMaximum(maxhisto*maxLog);
426 pname =
"plots/1d6_tau/log_shapes_"+vars[var].tag+
".pdf";
430 for(
unsigned his(0); his < 2; his++){
431 for(
unsigned var(0); var<vars.size(); var++){
433 for(
unsigned sam(0); sam < vars[var].samples.size(); sam++)
434 if(histo[his][var][sam]) histo[his][var][sam]->Delete();
TString RoundNumber(double num, int decimals, double denom=1.)