1 |
buchmann |
1.1 |
#include <iostream>
|
2 |
|
|
#include <vector>
|
3 |
|
|
#include <sys/stat.h>
|
4 |
|
|
|
5 |
|
|
#include <TCut.h>
|
6 |
|
|
#include <TROOT.h>
|
7 |
|
|
#include <TCanvas.h>
|
8 |
|
|
#include <TMath.h>
|
9 |
|
|
#include <TColor.h>
|
10 |
|
|
#include <TPaveText.h>
|
11 |
|
|
#include <TRandom.h>
|
12 |
|
|
#include <TH1.h>
|
13 |
|
|
#include <TH2.h>
|
14 |
|
|
#include <TF1.h>
|
15 |
|
|
#include <TSQLResult.h>
|
16 |
|
|
#include <TProfile.h>
|
17 |
fronga |
1.9 |
#include <TPaveStats.h>
|
18 |
buchmann |
1.1 |
|
19 |
|
|
//#include "TTbar_stuff.C"
|
20 |
|
|
using namespace std;
|
21 |
|
|
|
22 |
|
|
using namespace PlottingSetup;
|
23 |
|
|
|
24 |
|
|
|
25 |
|
|
void do_experimental_pred_obs_calculation(float cut ,string mcjzb,string datajzb, int mcordata) {
|
26 |
buchmann |
1.4 |
dout << "Crunching the numbers for JZB>" << cut << endl;
|
27 |
buchmann |
1.2 |
string xlabel="JZB [GeV] -- for algoritm internal use only!";
|
28 |
buchmann |
1.1 |
TH1F *ZOSSFP = allsamples.Draw("ZOSSFP",datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSSF&&cutnJets&&basiccut,mcordata,luminosity);
|
29 |
|
|
TH1F *ZOSOFP = allsamples.Draw("ZOSOFP",datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSOF&&cutnJets&&basiccut,mcordata,luminosity);
|
30 |
|
|
TH1F *ZOSSFN = allsamples.Draw("ZOSSFN","-"+datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSSF&&cutnJets&&basiccut,mcordata,luminosity);
|
31 |
|
|
TH1F *ZOSOFN = allsamples.Draw("ZOSOFN","-"+datajzb,1,cut,14000, xlabel, "events",cutmass&&cutOSOF&&cutnJets&&basiccut,mcordata,luminosity);
|
32 |
|
|
|
33 |
|
|
TH1F *SBOSSFP = allsamples.Draw("SBOSSFP",datajzb,1,cut,14000, xlabel, "events",cutOSSF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity);
|
34 |
|
|
TH1F *SBOSOFP = allsamples.Draw("SBOSOFP",datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity);
|
35 |
|
|
TH1F *SBOSSFN = allsamples.Draw("SBOSSFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSSF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity);
|
36 |
|
|
TH1F *SBOSOFN = allsamples.Draw("SBOSOFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity);
|
37 |
|
|
|
38 |
buchmann |
1.4 |
dout << " Observed : " << ZOSSFP->Integral() << endl;
|
39 |
|
|
dout << " Predicted: " << ZOSSFN->Integral() << " + (1/3)*(" << ZOSOFP->Integral() << "-" << ZOSOFN->Integral()<<") + (1/3)*(" << SBOSSFP->Integral() << "-" << SBOSSFN->Integral()<<") + (1/3)*(" << SBOSOFP->Integral() << "-" << SBOSOFN->Integral()<<")" << endl;
|
40 |
|
|
dout << " P(ZJets ) \t " << ZOSSFN->Integral() << endl;
|
41 |
|
|
dout << " P(eμ]) \t " << ZOSOFP->Integral() << "-" << ZOSOFN->Integral() << " = " << ZOSOFP->Integral()-ZOSOFN->Integral()<<endl;
|
42 |
|
|
dout << " P(ossf,sb]) \t " << SBOSSFP->Integral() << "-" << SBOSSFN->Integral()<<" = "<<SBOSSFP->Integral()-SBOSSFN->Integral()<<endl;
|
43 |
|
|
dout << " P(osof,sb]) \t " << SBOSOFP->Integral() << "-" << SBOSOFN->Integral()<<" = "<<SBOSOFP->Integral()-SBOSOFN->Integral()<<endl;
|
44 |
buchmann |
1.1 |
|
45 |
|
|
delete ZOSSFP;
|
46 |
|
|
delete ZOSOFP;
|
47 |
|
|
delete ZOSSFN;
|
48 |
|
|
delete ZOSOFN;
|
49 |
|
|
|
50 |
|
|
delete SBOSSFP;
|
51 |
|
|
delete SBOSOFP;
|
52 |
|
|
delete SBOSSFN;
|
53 |
|
|
delete SBOSOFN;
|
54 |
|
|
}
|
55 |
|
|
|
56 |
buchmann |
1.3 |
void look_at_sidebands(string mcjzb, string datajzb, bool includejetcut, float cutat=0) {
|
57 |
buchmann |
1.1 |
|
58 |
buchmann |
1.4 |
dout << "Looking at sidebands ... " << endl;
|
59 |
buchmann |
1.1 |
int mcordata=data;//data // you can perform this study for mc or data ...
|
60 |
|
|
|
61 |
|
|
TCut specialjetcut;
|
62 |
|
|
if(includejetcut) specialjetcut=cutnJets&&basiccut;
|
63 |
|
|
else specialjetcut="mll>0";
|
64 |
buchmann |
1.4 |
dout << "The datajzb variable is defined as " << datajzb << endl;
|
65 |
buchmann |
1.3 |
stringstream addcut;
|
66 |
|
|
addcut<<"(pt>"<<cutat<<")";
|
67 |
|
|
TCut additionalcut=addcut.str().c_str();
|
68 |
buchmann |
1.1 |
|
69 |
buchmann |
1.2 |
int nbins=75; float min=51;float max=201;string xlabel="mll [GeV]";
|
70 |
buchmann |
1.1 |
TCanvas *c1 = new TCanvas("c1","c1");
|
71 |
|
|
c1->SetLogy(1);
|
72 |
buchmann |
1.2 |
TH1F *datahistoOSSF = allsamples.Draw("datahistoOSSF","mll",nbins,min,max, xlabel, "events",cutOSSF&&specialjetcut&&additionalcut,data,luminosity);
|
73 |
|
|
THStack mcstackOSSF = allsamples.DrawStack("mcstackOSSF","mll",nbins,min,max, xlabel, "events",cutOSSF&&specialjetcut&&additionalcut,mc,luminosity);
|
74 |
buchmann |
1.1 |
|
75 |
|
|
datahistoOSSF->SetMinimum(1);
|
76 |
|
|
datahistoOSSF->Draw();
|
77 |
|
|
mcstackOSSF.Draw("same");
|
78 |
|
|
datahistoOSSF->Draw("same");
|
79 |
|
|
TLegend *kinleg = allsamples.allbglegend();
|
80 |
|
|
kinleg->AddEntry(datahistoOSSF,"OSSF (data)","p");
|
81 |
|
|
kinleg->Draw();
|
82 |
buchmann |
1.3 |
if(includejetcut) CompleteSave(c1,"sidebands/"+any2string(cutat)+"/OSSF");
|
83 |
|
|
else CompleteSave(c1,"sidebands/"+any2string(cutat)+"/OSSF_nojetcut");
|
84 |
buchmann |
1.1 |
|
85 |
buchmann |
1.2 |
TH1F *datahistoOSOF = allsamples.Draw("datahistoOSOF","mll",nbins,min,max, xlabel, "events",cutOSOF&&specialjetcut&&additionalcut,data,luminosity);
|
86 |
|
|
THStack mcstackOSOF = allsamples.DrawStack("mcstackOSOF","mll",nbins,min,max, xlabel, "events",cutOSOF&&specialjetcut&&additionalcut,mc,luminosity);
|
87 |
|
|
// datahistoOSOF->SetMinimum(0.4);
|
88 |
buchmann |
1.1 |
datahistoOSOF->Draw();
|
89 |
|
|
mcstackOSOF.Draw("same");
|
90 |
|
|
datahistoOSOF->Draw("same");
|
91 |
|
|
TLegend *kinleg2 = allsamples.allbglegend();
|
92 |
|
|
kinleg2->AddEntry(datahistoOSOF,"OSOF (data)","p");
|
93 |
|
|
kinleg2->Draw();
|
94 |
buchmann |
1.3 |
if(includejetcut) CompleteSave(c1,"sidebands/"+any2string(cutat)+"/OSOF");
|
95 |
|
|
else CompleteSave(c1,"sidebands/"+any2string(cutat)+"/OSOF_nojetcut");
|
96 |
buchmann |
1.1 |
|
97 |
buchmann |
1.2 |
TH1F *rawmlleemmData = allsamples.Draw("rawmlleemmData","mll",200,0,200, "mll [GeV]", "events", cutOSSF&&specialjetcut&&sidebandcut&&additionalcut,data, luminosity);
|
98 |
|
|
TH1F *rawmllemData = allsamples.Draw("rawmllemData" ,"mll",200,0,200, "mll [GeV]", "events", cutmass&&cutOSOF&&specialjetcut&&additionalcut,data, luminosity);
|
99 |
buchmann |
1.4 |
dout << "Number of events in peak for OSOF: " << rawmllemData->GetEntries() << endl;
|
100 |
|
|
dout << "Number of events in SB for OSSF: " << rawmlleemmData->GetEntries() << endl;
|
101 |
buchmann |
1.1 |
|
102 |
buchmann |
1.2 |
TH1F *SFttbarZpeak = allsamples.Draw("SFttbarZpeak",mcjzb,100,-200,400, "JZB [GeV]", "events",cutmass&&cutOSSF&&specialjetcut&&additionalcut,mc,luminosity,allsamples.FindSample("TTJets"));
|
103 |
|
|
TH1F *OFttbarZpeak = allsamples.Draw("OFttbarZpeak",mcjzb,100,-200,400, "JZB [GeV]", "events",cutmass&&cutOSOF&&specialjetcut&&additionalcut,mc,luminosity,allsamples.FindSample("TTJets"));
|
104 |
|
|
TH1F *SFttbarsideb = allsamples.Draw("SFttbarsideb",mcjzb,100,-200,400, "JZB [GeV]", "events",cutOSSF&&specialjetcut&&sidebandcut&&additionalcut,mc,luminosity,allsamples.FindSample("TTJets"));
|
105 |
buchmann |
1.1 |
|
106 |
|
|
SFttbarZpeak->SetLineColor(kBlack);
|
107 |
|
|
OFttbarZpeak->SetLineColor(kBlue);
|
108 |
|
|
OFttbarZpeak->SetMarkerColor(kBlue);
|
109 |
|
|
SFttbarsideb->SetLineColor(kPink);
|
110 |
|
|
SFttbarsideb->SetMarkerColor(kPink);
|
111 |
|
|
|
112 |
|
|
SFttbarZpeak->Draw("histo");
|
113 |
|
|
OFttbarZpeak->Draw("histo,same");
|
114 |
|
|
SFttbarsideb->Draw("histo,same");
|
115 |
|
|
|
116 |
|
|
TLegend *leg3 = new TLegend(0.6,0.8,0.89,0.89);
|
117 |
|
|
leg3->AddEntry(SFttbarZpeak,"SF ttbar Z peak","l");
|
118 |
|
|
leg3->AddEntry(OFttbarZpeak,"OF ttbar Z peak","l");
|
119 |
|
|
leg3->AddEntry(SFttbarsideb,"SF ttbar SB","l");
|
120 |
|
|
leg3->SetFillColor(kWhite);
|
121 |
|
|
leg3->SetLineColor(kWhite);
|
122 |
|
|
leg3->SetBorderSize(0);
|
123 |
|
|
|
124 |
|
|
leg3->Draw();
|
125 |
buchmann |
1.3 |
if(includejetcut) CompleteSave(c1,"sidebands/"+any2string(cutat)+"/ttbar_comparison");
|
126 |
|
|
else CompleteSave(c1,"sidebands/"+any2string(cutat)+"/ttbar_comparison_nojetcut");
|
127 |
buchmann |
1.1 |
|
128 |
|
|
|
129 |
|
|
c1->SetLogy(0);
|
130 |
|
|
|
131 |
|
|
SFttbarsideb->SetFillColor(TColor::GetColor("#F5A9A9"));
|
132 |
|
|
SFttbarsideb->SetLineColor(TColor::GetColor("#F5A9A9"));
|
133 |
|
|
SFttbarsideb->SetFillStyle(3004);
|
134 |
|
|
OFttbarZpeak->SetFillColor(TColor::GetColor("#819FF7"));
|
135 |
|
|
OFttbarZpeak->SetLineColor(TColor::GetColor("#819FF7"));
|
136 |
|
|
OFttbarZpeak->SetFillColor(kBlue);
|
137 |
|
|
OFttbarZpeak->SetFillStyle(3005);
|
138 |
|
|
|
139 |
|
|
OFttbarZpeak->Rebin(2);
|
140 |
|
|
SFttbarZpeak->Rebin(2);
|
141 |
|
|
SFttbarsideb->Rebin(2);
|
142 |
|
|
OFttbarZpeak->Divide(SFttbarZpeak);
|
143 |
|
|
SFttbarsideb->Divide(SFttbarZpeak);
|
144 |
|
|
OFttbarZpeak->GetYaxis()->SetRangeUser(0,5);
|
145 |
|
|
OFttbarZpeak->GetYaxis()->SetTitle("ratio");
|
146 |
buchmann |
1.2 |
TF1 *centralfitO = new TF1("centralfitO","pol1",-40,120);
|
147 |
|
|
TF1 *centralfit1 = new TF1("centralfit1","pol1",-200,400);
|
148 |
|
|
// TF1 *centralfitS = new TF1("centralfitS","pol1",-40,120);
|
149 |
|
|
SFttbarsideb->Fit(centralfitO,"R");
|
150 |
|
|
//OFttbarZpeak->Fit(centralfitO,"R");
|
151 |
|
|
centralfit1->SetParameters(centralfitO->GetParameters());
|
152 |
|
|
// SFttbarZpeak->Fit(centralfitS,"R");
|
153 |
buchmann |
1.1 |
OFttbarZpeak->Draw("e5");
|
154 |
|
|
SFttbarsideb->Draw("e5,same");
|
155 |
|
|
OFttbarZpeak->Draw("same");
|
156 |
|
|
SFttbarsideb->Draw("same");
|
157 |
buchmann |
1.2 |
centralfit1->SetLineColor(kOrange);
|
158 |
|
|
// centralfitS->SetLineColor(kOrange);
|
159 |
|
|
centralfit1->SetLineWidth(2);
|
160 |
|
|
// centralfitS->SetLineWidth(2);
|
161 |
|
|
centralfit1->Draw("same");
|
162 |
|
|
// centralfitS->Draw("same");
|
163 |
|
|
TLine *oneline = new TLine(-200,1,400,1);
|
164 |
|
|
oneline->SetLineColor(kBlue);
|
165 |
|
|
TLine *point5 = new TLine(-200,0.5,400,0.5);
|
166 |
|
|
point5->SetLineStyle(2);
|
167 |
|
|
point5->SetLineColor(kGreen);
|
168 |
|
|
TLine *op5 = new TLine(-200,1.5,400,1.5);
|
169 |
|
|
op5->SetLineStyle(2);
|
170 |
|
|
op5->SetLineColor(kGreen);
|
171 |
|
|
TLine *point7 = new TLine(-200,0.7,400,0.7);
|
172 |
|
|
point7->SetLineStyle(2);
|
173 |
|
|
point7->SetLineColor(kBlack);
|
174 |
|
|
TLine *op7 = new TLine(-200,1.3,400,1.3);
|
175 |
|
|
op7->SetLineStyle(2);
|
176 |
|
|
op7->SetLineColor(kBlack);
|
177 |
|
|
oneline->Draw("same");
|
178 |
|
|
point5->Draw("same");
|
179 |
|
|
point7->Draw("same");
|
180 |
|
|
op5->Draw("same");
|
181 |
|
|
op7->Draw("same");
|
182 |
|
|
TLegend *leg4 = new TLegend(0.6,0.65,0.89,0.89);
|
183 |
buchmann |
1.1 |
leg4->AddEntry(OFttbarZpeak,"OF ttbar Z peak / truth","l");
|
184 |
|
|
leg4->AddEntry(SFttbarsideb,"SF ttbar SB / truth","l");
|
185 |
buchmann |
1.2 |
leg4->AddEntry(centralfit1,"Fit to [-40,120] GeV region (OF)","l");
|
186 |
|
|
leg4->AddEntry(point5,"50% systematic envelope","l");
|
187 |
|
|
leg4->AddEntry(point7,"30% systematic envelope","l");
|
188 |
|
|
// leg4->AddEntry(centralfitS,"Fit to [-40,120] GeV region (SF)","l");
|
189 |
buchmann |
1.1 |
leg4->SetFillColor(kWhite);
|
190 |
|
|
leg4->SetLineColor(kWhite);
|
191 |
|
|
leg4->SetBorderSize(0);
|
192 |
|
|
leg4->Draw("same");
|
193 |
buchmann |
1.3 |
if(includejetcut) CompleteSave(c1,"sidebands/"+any2string(cutat)+"/ttbar_comparison_ratio");
|
194 |
|
|
else CompleteSave(c1,"sidebands/"+any2string(cutat)+"/ttbar_comparison_ratio_nojetcut");
|
195 |
buchmann |
1.4 |
dout << "Moving on to predicted / observed yields! " << endl;
|
196 |
|
|
dout << "Sideband definition: " << (const char*) sidebandcut << endl;
|
197 |
buchmann |
1.1 |
/*
|
198 |
|
|
do_experimental_pred_obs_calculation(50,mcjzb,datajzb,mcordata);
|
199 |
|
|
do_experimental_pred_obs_calculation(75,mcjzb,datajzb,mcordata);
|
200 |
|
|
do_experimental_pred_obs_calculation(100,mcjzb,datajzb,mcordata);
|
201 |
|
|
do_experimental_pred_obs_calculation(125,mcjzb,datajzb,mcordata);
|
202 |
|
|
do_experimental_pred_obs_calculation(150,mcjzb,datajzb,mcordata);
|
203 |
|
|
*/
|
204 |
|
|
|
205 |
buchmann |
1.2 |
delete rawmlleemmData;
|
206 |
|
|
delete rawmllemData;
|
207 |
|
|
delete SFttbarZpeak;
|
208 |
|
|
delete OFttbarZpeak;
|
209 |
|
|
delete SFttbarsideb;
|
210 |
|
|
delete datahistoOSOF;
|
211 |
|
|
delete datahistoOSSF;
|
212 |
|
|
|
213 |
buchmann |
1.1 |
|
214 |
|
|
}
|
215 |
|
|
|
216 |
|
|
void look_at_sidebands(string mcjzb, string datajzb) {
|
217 |
buchmann |
1.3 |
// for (int i=0;i<100;i+=10) {
|
218 |
|
|
int i=0;
|
219 |
|
|
{
|
220 |
|
|
look_at_sidebands(mcjzb,datajzb, true,i);
|
221 |
|
|
look_at_sidebands(mcjzb,datajzb, false,i);
|
222 |
|
|
}
|
223 |
buchmann |
1.1 |
}
|
224 |
buchmann |
1.2 |
|
225 |
|
|
void find_sideband_definition() {
|
226 |
|
|
TH1F *mllttbar = allsamples.Draw("mllttbar","mll",145,55,200, "mll [GeV]", "events",cutOSSF&&cutnJets&&!cutmass,mc,luminosity,allsamples.FindSample("TTJets"));
|
227 |
|
|
TH1F *mllttbarz = allsamples.Draw("mllttbarz","mll",1,50,200, "mll [GeV]", "events",cutOSSF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("TTJets"));
|
228 |
|
|
float leftstop=0;
|
229 |
|
|
float rightstop=0;
|
230 |
|
|
int pos90=mllttbar->FindBin(90);
|
231 |
|
|
float leftsum=0; float rightsum=0;
|
232 |
|
|
float peaksum=mllttbarz->Integral();
|
233 |
|
|
for(int i=0;i<mllttbar->GetNbinsX()&&!(leftstop&&rightstop);i++) {
|
234 |
|
|
if(pos90-i<1) leftstop=mllttbar->GetBinLowEdge(1);
|
235 |
|
|
if(mllttbar->GetBinLowEdge(pos90+i)+mllttbar->GetBinWidth(pos90+i)>190) rightstop=190;
|
236 |
|
|
if(!leftstop) leftsum+=mllttbar->GetBinContent(pos90-i);
|
237 |
|
|
if(!rightstop) rightsum+=mllttbar->GetBinContent(pos90+i);
|
238 |
|
|
if(leftsum+rightsum>peaksum) {
|
239 |
|
|
if(!leftstop) leftstop=mllttbar->GetBinLowEdge(pos90-i);
|
240 |
|
|
if(!rightstop) rightstop=mllttbar->GetBinLowEdge(pos90+i)+mllttbar->GetBinWidth(pos90+i);
|
241 |
buchmann |
1.4 |
dout << "Found the boundaries! on the left: " << leftstop << " and on the right " << rightstop << endl;
|
242 |
|
|
dout << "Total sum : " << leftsum+rightsum << " which supposedly corresponds ~ to " << peaksum << endl;
|
243 |
buchmann |
1.2 |
}
|
244 |
|
|
}
|
245 |
|
|
TH1F *mllttbart = allsamples.Draw("mllttbart","mll",1,55,155, "mll [GeV]", "events",cutOSSF&&cutnJets&&!cutmass,mc,luminosity,allsamples.FindSample("TTJets"));
|
246 |
buchmann |
1.4 |
dout << mllttbart->Integral() << endl;
|
247 |
buchmann |
1.2 |
|
248 |
|
|
|
249 |
buchmann |
1.5 |
}
|
250 |
|
|
|
251 |
|
|
void calculate_upper_limits(string mcjzb, string datajzb) {
|
252 |
|
|
write_warning("calculate_upper_limits","Upper limit calculation temporarily deactivated");
|
253 |
|
|
// write_warning("calculate_upper_limits","Calculation of SUSY upper limits has been temporarily suspended in favor of top discovery");
|
254 |
|
|
// rediscover_the_top(mcjzb,datajzb);
|
255 |
|
|
/*
|
256 |
|
|
TCanvas *c3 = new TCanvas("c3","c3");
|
257 |
|
|
c3->SetLogy(1);
|
258 |
|
|
vector<float> binning;
|
259 |
|
|
//binning=allsamples.get_optimal_binsize(mcjzb,cutmass&&cutOSSF&&cutnJets,20,50,800);
|
260 |
|
|
binning.push_back(50);
|
261 |
|
|
binning.push_back(100);
|
262 |
|
|
binning.push_back(150);
|
263 |
|
|
binning.push_back(200);
|
264 |
|
|
binning.push_back(500);
|
265 |
|
|
TH1F *datapredictiona = allsamples.Draw("datapredictiona", "-"+datajzb, binning, "JZB [GeV]", "events", cutmass&&cutOSSF&&cutnJets,mc, luminosity);
|
266 |
|
|
TH1F *datapredictionb = allsamples.Draw("datapredictionb", "-"+datajzb, binning, "JZB [GeV]", "events", cutmass&&cutOSOF&&cutnJets,mc, luminosity);
|
267 |
|
|
TH1F *datapredictionc = allsamples.Draw("datapredictionc", datajzb, binning, "JZB [GeV]", "events", cutmass&&cutOSOF&&cutnJets,mc, luminosity);
|
268 |
|
|
TH1F *dataprediction = (TH1F*)datapredictiona->Clone();
|
269 |
|
|
dataprediction->Add(datapredictionb,-1);
|
270 |
|
|
dataprediction->Add(datapredictionc);
|
271 |
|
|
TH1F *puresignal = allsamples.Draw("puresignal", mcjzb, binning, "JZB [GeV]", "events", cutmass&&cutOSSF&&cutnJets,mc, luminosity,allsamples.FindSample("LM4"));
|
272 |
|
|
TH1F *signalpred = allsamples.Draw("signalpred", "-"+mcjzb, binning, "JZB [GeV]", "events", cutmass&&cutOSSF&&cutnJets,mc, luminosity,allsamples.FindSample("LM4"));
|
273 |
|
|
TH1F *signalpredlo = allsamples.Draw("signalpredlo", "-"+mcjzb, binning, "JZB [GeV]", "events", cutmass&&cutOSOF&&cutnJets,mc, luminosity,allsamples.FindSample("LM4"));
|
274 |
|
|
TH1F *signalpredro = allsamples.Draw("signalpredro", mcjzb, binning, "JZB [GeV]", "events", cutmass&&cutOSOF&&cutnJets,mc, luminosity,allsamples.FindSample("LM4"));
|
275 |
|
|
TH1F *puredata = allsamples.Draw("puredata", datajzb,binning, "JZB [GeV]", "events", cutmass&&cutOSSF&&cutnJets,data,luminosity);
|
276 |
|
|
signalpred->Add(signalpredlo,-1);
|
277 |
|
|
signalpred->Add(signalpredro);
|
278 |
|
|
puresignal->Add(signalpred,-1);//subtracting signal contamination
|
279 |
|
|
ofstream myfile;
|
280 |
|
|
myfile.open ("ShapeFit_log.txt");
|
281 |
|
|
establish_upper_limits(puredata,dataprediction,puresignal,"LM4",myfile);
|
282 |
|
|
myfile.close();
|
283 |
|
|
*/
|
284 |
|
|
}
|
285 |
|
|
|
286 |
buchmann |
1.6 |
TH1F *runcheckhisto(string cut) {
|
287 |
|
|
string histoname=GetNumericHistoName();
|
288 |
|
|
TH1F *histo = new TH1F(histoname.c_str(),histoname.c_str(),100,163000,168000);
|
289 |
|
|
(allsamples.collection)[0].events->Draw(("runNum>>"+histoname).c_str(),cut.c_str());
|
290 |
|
|
return histo;
|
291 |
|
|
}
|
292 |
|
|
|
293 |
|
|
void run_check() {
|
294 |
|
|
gROOT->SetStyle("Plain");
|
295 |
|
|
TCanvas *c1 = new TCanvas("runnum","runnum",800,1000);
|
296 |
|
|
c1->Divide(2,4);
|
297 |
|
|
c1->cd(1);
|
298 |
|
|
TH1F *ossfp = runcheckhisto((const char*)(cutmass&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)"));
|
299 |
|
|
ossfp->Draw();
|
300 |
|
|
TText *t1 = write_title("OSSF,P");t1->Draw();
|
301 |
|
|
|
302 |
|
|
c1->cd(2);
|
303 |
|
|
TH1F *ossfn = runcheckhisto((const char*)(cutmass&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)"));
|
304 |
|
|
ossfn->Draw();
|
305 |
|
|
TText *t2 = write_title("OSSF,N");t2->Draw();
|
306 |
|
|
|
307 |
|
|
c1->cd(3);
|
308 |
|
|
TH1F *osofp = runcheckhisto((const char*)(cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)"));
|
309 |
|
|
osofp->Draw();
|
310 |
|
|
TText *t3 = write_title("OSOF,P");t3->Draw();
|
311 |
|
|
c1->cd(4);
|
312 |
|
|
TH1F *osofn = runcheckhisto((const char*)(cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)"));
|
313 |
|
|
osofn->Draw();
|
314 |
|
|
TText *t4 = write_title("OSOF,N");t4->Draw();
|
315 |
|
|
|
316 |
|
|
c1->cd(5);
|
317 |
|
|
TH1F *sbofp = runcheckhisto((const char*)(sidebandcut&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)"));
|
318 |
|
|
sbofp->Draw();
|
319 |
|
|
TText *t5 = write_title("SB,OSOF,P");t5->Draw();
|
320 |
|
|
c1->cd(6);
|
321 |
|
|
TH1F *sbofn = runcheckhisto((const char*)(cutOSOF&&cutnJets&&basiccut&&sidebandcut&&"((jzb[1]+0.06*pt-2.84727)<-100)"));
|
322 |
|
|
sbofn->Draw();
|
323 |
|
|
TText *t6 = write_title("SB,OSOF,N");t6->Draw();
|
324 |
|
|
|
325 |
|
|
c1->cd(7);
|
326 |
|
|
TH1F *sbsfp = runcheckhisto((const char*)(sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)"));
|
327 |
|
|
sbsfp->Draw();
|
328 |
|
|
TText *t7 = write_title("SB,OSSF,P");t7->Draw();
|
329 |
|
|
c1->cd(8);
|
330 |
|
|
TH1F *sbsfn = runcheckhisto((const char*)(sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)"));
|
331 |
|
|
sbsfn->Draw();
|
332 |
|
|
TText *t8 = write_title("SB,OSSF,N");t8->Draw();
|
333 |
|
|
|
334 |
|
|
c1->SaveAs("runNumber.png");
|
335 |
|
|
}
|
336 |
|
|
|
337 |
|
|
TH1F *give_boson_pred(TCut bcut,string mcjzb) {
|
338 |
|
|
int nbins=50;
|
339 |
|
|
TH1F *jzbn = allsamples.Draw("jzbn","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events", bcut&&cutOSSF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
|
340 |
|
|
TH1F *jzbno = allsamples.Draw("jzbno","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events",bcut&&cutOSOF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
|
341 |
|
|
TH1F *jzbpo = allsamples.Draw("jzbp",mcjzb,nbins,0,350, "JZB [GeV]", "events", bcut&&cutOSOF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
|
342 |
|
|
|
343 |
|
|
//Sidebands
|
344 |
|
|
TH1F *jzbnos = allsamples.Draw("jzbnos","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events",bcut&&cutOSOF&&cutnJets&&sidebandcut,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
|
345 |
|
|
TH1F *jzbpos = allsamples.Draw("jzbpos",mcjzb,nbins,0,350, "JZB [GeV]", "events", bcut&&cutOSOF&&cutnJets&&sidebandcut,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
|
346 |
|
|
TH1F *jzbnss = allsamples.Draw("jzbnss","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events",bcut&&cutOSSF&&cutnJets&&sidebandcut,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
|
347 |
|
|
TH1F *jzbpss = allsamples.Draw("jzbpss",mcjzb,nbins,0,350, "JZB [GeV]", "events", bcut&&cutOSSF&&cutnJets&&sidebandcut,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
|
348 |
|
|
|
349 |
|
|
TH1F *pred = (TH1F*)jzbn->Clone("pred");
|
350 |
|
|
pred->Add(jzbno,-1.0/3);
|
351 |
|
|
pred->Add(jzbpo,1.0/3);
|
352 |
|
|
pred->Add(jzbnos,-1.0/3);
|
353 |
|
|
pred->Add(jzbpos,1.0/3);
|
354 |
|
|
pred->Add(jzbnss,-1.0/3);
|
355 |
|
|
pred->Add(jzbpss,1.0/3);
|
356 |
|
|
pred->SetLineColor(kRed);
|
357 |
|
|
pred->SetMinimum(0);
|
358 |
|
|
delete jzbn;
|
359 |
|
|
delete jzbpo;
|
360 |
|
|
delete jzbno;
|
361 |
|
|
delete jzbpos;
|
362 |
|
|
delete jzbnos;
|
363 |
|
|
delete jzbpss;
|
364 |
|
|
delete jzbnss;
|
365 |
|
|
|
366 |
|
|
return pred;
|
367 |
|
|
}
|
368 |
|
|
|
369 |
|
|
|
370 |
|
|
void show_dibosons(string datajzb, string mcjzb) {
|
371 |
|
|
TCut WW("(abs(genMID1)==24&&abs(genMID2)==24)||(abs(genGMID1)==24&&abs(genGMID2)==24)");
|
372 |
|
|
TCut ZZ("(abs(genMID1)==23&&abs(genMID2)==23)||(abs(genGMID1)==23&&abs(genGMID2)==23)");
|
373 |
|
|
TCut WZ("((abs(genMID1)==23&&abs(genMID2)==24)||(abs(genGMID1)==23&&abs(genGMID2)==24))||((abs(genMID1)==24&&abs(genMID2)==23)||(abs(genGMID1)==24&&abs(genGMID2)==23))");
|
374 |
|
|
|
375 |
|
|
TCanvas *dibs = new TCanvas("dibs","dibs",900,900);
|
376 |
|
|
dibs->Divide(2,2);
|
377 |
|
|
|
378 |
|
|
dibs->cd(1);
|
379 |
|
|
TH1F *wwjzbp = allsamples.Draw("wwjzbp",mcjzb,70,0,350, "JZB [GeV]", "events", WW&&cutOSSF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
|
380 |
|
|
TH1F *wwpred = (TH1F*) give_boson_pred(WW,mcjzb);
|
381 |
|
|
wwpred->Draw("histo");
|
382 |
|
|
wwjzbp->Draw("histo,same");
|
383 |
buchmann |
1.11 |
TLegend *leg = make_legend("WW");
|
384 |
buchmann |
1.6 |
leg->SetFillColor(kWhite);
|
385 |
|
|
leg->SetLineColor(kWhite);
|
386 |
buchmann |
1.11 |
leg->SetHeader("WW (MC)");
|
387 |
buchmann |
1.6 |
leg->AddEntry(wwjzbp,"Observed","l");
|
388 |
|
|
leg->AddEntry(wwpred,"Predicted","l");
|
389 |
|
|
leg->Draw("same");
|
390 |
|
|
|
391 |
|
|
dibs->cd(2);
|
392 |
|
|
TH1F *wzjzbp = allsamples.Draw("wzjzbp",mcjzb,70,0,350, "JZB [GeV]", "events",WZ&&cutOSSF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
|
393 |
|
|
TH1F *wzpred = (TH1F*) give_boson_pred(WZ,mcjzb);
|
394 |
|
|
wzpred->Draw("histo");
|
395 |
|
|
wzjzbp->Draw("same,histo");
|
396 |
buchmann |
1.11 |
TLegend *leg2 = (TLegend*)leg->Clone("leg2");
|
397 |
|
|
leg2->SetHeader("WZ (MC)");
|
398 |
|
|
leg2->Draw("same");
|
399 |
|
|
DrawPrelim();
|
400 |
buchmann |
1.6 |
|
401 |
|
|
dibs->cd(3);
|
402 |
|
|
TH1F *zzjzbp = allsamples.Draw("zzjzbp",mcjzb,70,0,350, "JZB [GeV]", "events",ZZ&&cutOSSF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
|
403 |
|
|
TH1F *zzpred = (TH1F*) give_boson_pred(ZZ,mcjzb);
|
404 |
|
|
zzpred->Draw("histo");
|
405 |
|
|
zzjzbp->Draw("same,histo");
|
406 |
buchmann |
1.11 |
TLegend *leg3 = (TLegend*)leg->Clone("leg2");
|
407 |
|
|
leg3->SetHeader("ZZ (MC)");
|
408 |
|
|
leg3->Draw("same");
|
409 |
|
|
leg3->Draw("same");
|
410 |
|
|
DrawPrelim();
|
411 |
buchmann |
1.6 |
|
412 |
|
|
dibs->cd(4);
|
413 |
|
|
TH1F *alljzbp = allsamples.Draw("alljzbp",mcjzb,70,0,350, "JZB [GeV]", "events",(WW||WZ||ZZ)&&cutOSSF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
|
414 |
|
|
TH1F *allpred = (TH1F*) give_boson_pred((WW||WZ||ZZ),mcjzb);
|
415 |
|
|
allpred->Draw("histo");
|
416 |
|
|
alljzbp->Draw("same,histo");
|
417 |
buchmann |
1.11 |
TLegend *leg4 = (TLegend*)leg->Clone("leg2");
|
418 |
|
|
leg4->SetHeader("All dibosons (MC)");
|
419 |
|
|
leg4->Draw("same");
|
420 |
|
|
DrawPrelim();
|
421 |
buchmann |
1.6 |
|
422 |
buchmann |
1.11 |
CompleteSave(dibs,"Studies/Dibosons");
|
423 |
buchmann |
1.6 |
|
424 |
buchmann |
1.7 |
}
|
425 |
|
|
|
426 |
|
|
class signature {
|
427 |
|
|
public:
|
428 |
|
|
int runNum;
|
429 |
|
|
int eventNum;
|
430 |
|
|
int lumi;
|
431 |
|
|
};
|
432 |
|
|
|
433 |
|
|
vector<signature> get_list_of_events(string cut) {
|
434 |
|
|
float jzb;
|
435 |
|
|
int runNum,lumi,eventNum;
|
436 |
|
|
(allsamples.collection)[0].events->SetBranchAddress("jzb",&jzb);
|
437 |
|
|
(allsamples.collection)[0].events->SetBranchAddress("eventNum",&eventNum);
|
438 |
|
|
(allsamples.collection)[0].events->SetBranchAddress("lumi",&lumi);
|
439 |
|
|
(allsamples.collection)[0].events->SetBranchAddress("runNum",&runNum);
|
440 |
|
|
|
441 |
|
|
TTreeFormula *select = new TTreeFormula("select", cut.c_str()&&essentialcut, (allsamples.collection)[0].events);
|
442 |
|
|
vector<signature> allevents;
|
443 |
|
|
for (Int_t entry = 0 ; entry < (allsamples.collection)[0].events->GetEntries() ; entry++) {
|
444 |
|
|
(allsamples.collection)[0].events->LoadTree(entry);
|
445 |
|
|
if (select->EvalInstance()) {
|
446 |
|
|
(allsamples.collection)[0].events->GetEntry(entry);
|
447 |
|
|
signature newevent;
|
448 |
|
|
newevent.runNum=runNum;
|
449 |
|
|
newevent.eventNum=eventNum;
|
450 |
|
|
newevent.lumi=lumi;
|
451 |
|
|
allevents.push_back(newevent);
|
452 |
|
|
}
|
453 |
|
|
}
|
454 |
|
|
cout << "Done looping!" << endl;
|
455 |
|
|
return allevents;
|
456 |
|
|
}
|
457 |
|
|
|
458 |
fronga |
1.9 |
void make_double_plot(string variable, int nbins, float min, float max, float ymax, bool logscale,string xlabel, string filename,TCut observed, TCut predicted, bool is_data, bool noscale = false) {
|
459 |
buchmann |
1.7 |
TCut ibasiccut=basiccut;
|
460 |
|
|
|
461 |
|
|
//Step 2: Refine the cut
|
462 |
|
|
TCanvas *ckin = new TCanvas("ckin","Kinematic Plots (in the making)",600,600);
|
463 |
|
|
ckin->SetLogy(logscale);
|
464 |
|
|
|
465 |
fronga |
1.9 |
TH1F *datahistoa = allsamples.Draw("datahistoa",variable,nbins,min,max, xlabel, "events",observed,is_data,luminosity);
|
466 |
|
|
TH1F *datahistob = allsamples.Draw("datahistob",variable,nbins,min,max, xlabel, "events",predicted,is_data,luminosity);
|
467 |
buchmann |
1.7 |
|
468 |
buchmann |
1.8 |
datahistoa->SetLineColor(kBlue);
|
469 |
buchmann |
1.7 |
datahistob->SetLineColor(kRed);
|
470 |
|
|
|
471 |
fronga |
1.9 |
TLegend *kinleg = new TLegend(0.6,0.7,0.8,0.89);
|
472 |
buchmann |
1.7 |
kinleg->SetFillColor(kWhite);
|
473 |
|
|
kinleg->SetLineColor(kWhite);
|
474 |
|
|
kinleg->SetBorderSize(0);
|
475 |
fronga |
1.9 |
kinleg->AddEntry(datahistoa,"Observed "+TString(is_data?"Data":"MC"),"l");
|
476 |
|
|
kinleg->AddEntry(datahistob,"Predicted "+TString(is_data?"Data":"MC"),"l");
|
477 |
|
|
|
478 |
|
|
datahistoa->SetMaximum(ymax);
|
479 |
|
|
datahistoa->Draw("histo");
|
480 |
|
|
datahistob->SetLineStyle(2);
|
481 |
|
|
if ( !noscale ) datahistob->Scale(0.3);
|
482 |
|
|
datahistob->Draw("histo,sames");
|
483 |
|
|
TVirtualPad::Pad()->Update();
|
484 |
|
|
|
485 |
|
|
TPaveStats *sa = (TPaveStats*)datahistoa->GetListOfFunctions()->FindObject("stats");
|
486 |
|
|
TPaveStats *sb = (TPaveStats*)datahistob->GetListOfFunctions()->FindObject("stats");
|
487 |
|
|
if ( sa && sb ) {
|
488 |
|
|
sa->SetTextColor(datahistoa->GetLineColor());
|
489 |
|
|
sb->SetTextColor(datahistob->GetLineColor());
|
490 |
|
|
sb->SetY1NDC(sb->GetY1NDC()-0.25);
|
491 |
|
|
sb->SetY2NDC(sb->GetY2NDC()-0.25);
|
492 |
|
|
TVirtualPad::Pad()->Update();
|
493 |
buchmann |
1.7 |
}
|
494 |
|
|
kinleg->Draw();
|
495 |
|
|
TText* write_cut = write_title(variable);
|
496 |
|
|
write_cut->Draw();
|
497 |
|
|
CompleteSave(ckin,"special_kin/"+filename);
|
498 |
|
|
datahistoa->Delete();
|
499 |
|
|
datahistob->Delete();
|
500 |
buchmann |
1.11 |
delete ckin;
|
501 |
buchmann |
1.7 |
}
|
502 |
|
|
|
503 |
|
|
|
504 |
buchmann |
1.10 |
void kinematic_dist_of_pred_and_obs() {//former plot_list
|
505 |
fronga |
1.9 |
gStyle->SetOptStat("oueMri");
|
506 |
buchmann |
1.7 |
TCut observed=(cutmass&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)");
|
507 |
fronga |
1.9 |
|
508 |
|
|
TCut predicted = (cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")
|
509 |
|
|
|| (sidebandcut&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")
|
510 |
|
|
|| (sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)");
|
511 |
|
|
TCut predictedMC = (cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.04*pt-1.82559)>100)")
|
512 |
|
|
|| (sidebandcut&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.04*pt-1.82559)>100)")
|
513 |
|
|
|| (sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.04*pt-1.82559)>100)");
|
514 |
|
|
|
515 |
|
|
// TCut predicted=((cutmass&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)")
|
516 |
|
|
// ||(cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")
|
517 |
|
|
// ||(cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)")
|
518 |
|
|
// ||(sidebandcut&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")
|
519 |
|
|
// ||(sidebandcut&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)")
|
520 |
|
|
// ||(sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")
|
521 |
|
|
// ||(sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)"));
|
522 |
buchmann |
1.7 |
|
523 |
|
|
bool doPF=false;
|
524 |
|
|
bool dolog=true;
|
525 |
|
|
bool nolog=false;
|
526 |
|
|
|
527 |
fronga |
1.9 |
// Mll: do not scale
|
528 |
|
|
make_double_plot("mll",20,50,150,11,nolog,"m_{ll} [GeV]","mll",observed,predicted,data,true);
|
529 |
|
|
make_double_plot("mll",20,50,150,11,nolog,"m_{ll} [GeV]","mll_MC",observed,predictedMC,mc,true);
|
530 |
|
|
make_double_plot("met[4]",20,0,400,11,nolog,"pfMET [GeV]","pfMET",observed,predicted,data);
|
531 |
|
|
make_double_plot("met[4]",20,0,400,11,nolog,"pfMET [GeV]","pfMET_MC",observed,predictedMC,mc);
|
532 |
|
|
make_double_plot("jetpt[0]",10,0,400,11,nolog,"leading jet p_{T} [GeV]","pfJetGoodPt_0",observed,predicted,data);
|
533 |
|
|
make_double_plot("jetpt[0]",10,0,400,11,nolog,"leading jet p_{T} [GeV]","pfJetGoodPt_0_MC",observed,predictedMC,mc);
|
534 |
|
|
make_double_plot("jeteta[0]",10,-5,5,11,nolog,"leading jet #eta","pfJetGoodEta_0",observed,predicted,data);
|
535 |
|
|
make_double_plot("jeteta[0]",10,-5,5,11,nolog,"leading jet #eta","pfJetGoodEta_0_MC",observed,predictedMC,mc);
|
536 |
|
|
make_double_plot("pt",10,0,300,11,nolog,"Z p_{T} [GeV]","Zpt",observed,predicted,data);
|
537 |
|
|
make_double_plot("pt",10,0,300,11,nolog,"Z p_{T} [GeV]","Zpt_MC",observed,predictedMC,mc);
|
538 |
|
|
make_double_plot("pt1",10,0,200,15,nolog,"p_{T} [GeV]","pt1",observed,predicted,data);
|
539 |
|
|
make_double_plot("pt1",10,0,200,15,nolog,"p_{T} [GeV]","pt1_MC",observed,predictedMC,mc);
|
540 |
|
|
make_double_plot("pt2",10,0,200,25,nolog,"p_{T} [GeV]","pt2",observed,predicted,data);
|
541 |
|
|
make_double_plot("pt2",10,0,200,25,nolog,"p_{T} [GeV]","pt2_MC",observed,predictedMC,mc);
|
542 |
|
|
make_double_plot("eta1",10,-5,5,11,nolog,"#eta_{1,l}","eta_1",observed,predicted,data);
|
543 |
|
|
make_double_plot("eta1",10,-5,5,11,nolog,"#eta_{1,l}","eta_1_MC",observed,predictedMC,mc);
|
544 |
|
|
make_double_plot("eta2",10,-5,5,11,nolog,"#eta_{2,l}","eta_2",observed,predicted,data);
|
545 |
|
|
make_double_plot("eta2",10,-5,5,11,nolog,"#eta_{2,l}","eta_2_MC",observed,predictedMC,mc);
|
546 |
|
|
make_double_plot("phi1-phi2",10,-6.0,6.0,11,nolog,"#phi_{1}-#phi_{2}","dphi",observed,predicted,data);
|
547 |
|
|
make_double_plot("phi1-phi2",10,-6.0,6.0,11,nolog,"#phi_{1}-#phi_{2}","dphi_MC",observed,predictedMC,mc);
|
548 |
|
|
make_double_plot("pfJetGoodNum",8,0.5,8.5,20,nolog,"nJets","nJets",observed,predicted,data);
|
549 |
|
|
make_double_plot("pfJetGoodNum",8,0.5,8.5,20,nolog,"nJets","nJets_MC",observed,predictedMC,mc);
|
550 |
|
|
|
551 |
|
|
}
|