12 #include "TGraphAsymmErrors.h" 24 TString folders[] ={
"/net/cms2/cms2r0/manuelf/root/small/hlt/15-04-01/el15/",
25 "/net/cms2/cms2r0/manuelf/root/small/hlt/15-04-01/mu15/"};
26 TString folder_offline=
"/cms5r0/ald77/archive/2015_05_10/";
27 TString leptag[] = {
"electron",
"muon"};
28 vector<TString> s_t1t[2], s_t1tc[2], s_tt[2], s_qcd[2], s_wjets[2];
29 vector<TString> s_t1t_offline;
30 s_t1t_offline.push_back(folder_offline+
"*T1tttt*1500_*PU20*");
31 vector<TString> s_t1tc_offline;
32 s_t1tc_offline.push_back(folder_offline+
"*T1tttt*1200_*PU20*");
33 vector<TString> s_tt_offline;
34 s_tt_offline.push_back(folder_offline+
"*_TTJet*12.root");
35 s_tt_offline.push_back(folder_offline+
"*_TTJet*11.root");
37 vector<sfeats> Samples;
39 for(
int lep(0); lep<2; lep++){
40 s_t1t[lep].push_back(folders[lep]+
"*T1tttt*1500_*PU20*root");
41 s_t1tc[lep].push_back(folders[lep]+
"*T1tttt*1200_*PU20*");
42 s_tt[lep].push_back(folders[lep]+
"*TT_Tune*");
43 s_wjets[lep].push_back(folders[lep]+
"*WTo*");
44 s_qcd[lep].push_back(folders[lep]+
"*QCD_Pt*");
50 Samples.push_back(
sfeats(s_qcd[lep],
"QCD", 1));
51 if(lep==0) Nsam = Samples.size();
57 vector<int> all_sam[2], tt_t1[2], tt_t1_offline;
58 for(
unsigned lep(0); lep<2; lep++){
59 for(
unsigned iall(0); iall<Nsam; iall++) all_sam[lep].push_back(iall+lep*Nsam);
60 tt_t1[lep].push_back(0+lep*Nsam);
61 tt_t1[lep].push_back(1+lep*Nsam);
62 tt_t1[lep].push_back(2+lep*Nsam);
64 tt_t1_offline.push_back(2*Nsam+0);
65 tt_t1_offline.push_back(2*Nsam+1);
66 tt_t1_offline.push_back(2*Nsam+2);
69 vector<hfeats> std_varis;
70 std_varis.push_back(
hfeats(
"Max$(mus_pt)",60,0,300, tt_t1[1],
"Leading #mu HLT p_{T} [GeV]",
71 "onht>350&&Sum$(genmus_pt>0)>=1",20,
"muon"));
72 std_varis.push_back(
hfeats(
"Max$(els_pt)",60,0,300, tt_t1[0],
"Leading e HLT p_{T} [GeV]",
73 "onht>350&&Sum$(genels_pt>0)>=1",20,
"electron"));
74 for(
unsigned lep(0); lep<2; lep++){
75 std_varis.push_back(
hfeats(
"onht",75,0,2500, all_sam[lep],
"HLT H_{T} [GeV]",
76 "1",350,leptag[lep]));
77 std_varis.push_back(
hfeats(
"onmet",65,0,650, all_sam[lep],
"HLT MET [GeV]",
81 std_varis.push_back(
hfeats(
"Max$(mc_pt*(abs(mc_id)==13))",60,0,300, tt_t1_offline,
"Leading gen #mu p_{T} (GeV)",
82 "ht>350&&Sum$(abs(mc_id)==13)>=1",20,
"muon"));
83 std_varis.push_back(
hfeats(
"Max$(mc_pt*(abs(mc_id)==11))",60,0,300, tt_t1_offline,
"Leading gen e p_{T} (GeV)",
84 "ht>350&&Sum$(abs(mc_id)==11)>=1",20,
"electron"));
86 TString filetype(
".png"), namestyle(
"RA4");
97 TString title, hname, totCut, pname;
98 for(
unsigned lep(0); lep<2; lep++) {
99 chain[lep] =
new TChain(
"tree");
100 chain[lep]->Add(s_t1tc[lep][0]);
105 vars.push_back(
hfeats(
"genmet",40,0,400, tt_t1[1],
"True MET [GeV]",
"1",70,
"onmet"));
106 vars.push_back(
hfeats(
"genmet",40,0,400, tt_t1[1],
"True MET [GeV]",
"1",100,
"onmet"));
107 vars.push_back(
hfeats(
"genmet",40,0,400, tt_t1[1],
"True MET [GeV]",
"1",170,
"onmet"));
108 vars.push_back(
hfeats(
"genht",85,200,1050, tt_t1[1],
"True H_{T} [GeV]",
"1",350,
"onht"));
109 vars.push_back(
hfeats(
"genht",85,200,1050, tt_t1[1],
"True H_{T} [GeV]",
"1",400,
"onht"));
110 vars.push_back(
hfeats(
"genht",85,200,1050, tt_t1[1],
"True H_{T} [GeV]",
"1",600,
"onht"));
111 for(
unsigned var(0); var<vars.size(); var++){
113 for(
unsigned his(0); his < 2; his++){
114 hname =
"histo"; hname += var; hname += his;
115 totCut = vars[var].cuts;
117 totCut += (
"&&"+vars[var].tagname+
">");
118 totCut += vars[var].cut;
120 histo[his][var] =
new TH1D(hname, title, vars[var].
nbins, vars[var].minx, vars[var].maxx);
122 if(do_mu) chain[1]->Project(hname, vars[var].varname, totCut);
123 else chain[0]->Project(hname, vars[var].varname, totCut);
129 double legW = 0.13, legH = legSingle*Ncurves;
131 TLegend
leg[2];
int nLegs(2);
132 for(
int ileg(0); ileg<nLegs; ileg++){
133 leg[ileg].SetX1NDC(legX1); leg[ileg].SetX2NDC(legX1+legW);
134 leg[ileg].SetY1NDC(legY); leg[ileg].SetY2NDC(legY+legH);
135 leg[ileg].SetTextSize(style.
LegendSize); leg[ileg].SetFillColor(0);
136 leg[ileg].SetFillStyle(0); leg[ileg].SetBorderSize(0);
137 leg[ileg].SetTextFont(style.
nFont);
139 int colors[] = {1,4,2};
140 TString labtag[] = {
"HLT MET > ",
"HLT H_{T} > "}, label;
141 TGraphAsymmErrors heff[20];
142 for(
unsigned type(0); type<2; type++){
143 for(
unsigned ivar(0); ivar<Ncurves; ivar++){
144 unsigned var = ivar+Ncurves*type;
145 heff[var] = TGraphAsymmErrors(histo[1][var], histo[0][var]);
146 heff[var].SetMarkerStyle(20); heff[var].SetMarkerSize(0.9);
147 heff[var].SetMarkerColor(colors[ivar]); heff[var].SetLineColor(colors[ivar]);
149 heff[var].GetXaxis()->SetTitle(vars[var].title);
150 heff[var].GetYaxis()->SetTitle(
"Efficiency");
151 if(do_mu) heff[var].SetTitle(
"15 GeV #mu trigger");
152 else heff[var].SetTitle(
"15 GeV e trigger");
153 heff[var].Draw(
"ap");
154 }
else heff[var].Draw(
"p same");
155 label = labtag[type]; label += vars[var].cut; label +=
" GeV";
156 leg[type].AddEntry(&heff[var],label,
"pl");
159 pname =
"plots/1d/turnon_"+vars[Ncurves*type].varname+(do_mu?
"_mu":
"_el")+filetype;
TString cuts2title(TString title)