ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/cbrown/AnalysisFramework/Plotting/Modules/StudyModule.C
Revision: 1.16
Committed: Wed Nov 9 12:13:46 2011 UTC (13 years, 6 months ago) by buchmann
Content type: text/plain
Branch: MAIN
CVS Tags: cbaf_4_98ifb_paper, beforeFR20120418, cbaf_4p7ifb, HEAD
Changes since 1.15: +1 -1 lines
Log Message:
Reduced verbose compiling output (e.g. double instead of float and such)

File Contents

# User Rev Content
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 buchmann 1.15 TH1F *SBOSSFP;
34     TH1F *SBOSOFP;
35     TH1F *SBOSSFN;
36     TH1F *SBOSOFN;
37    
38     flag_this_change(__FUNCTION__,__LINE__,false);//PlottingSetup::RestrictToMassPeak
39     if(PlottingSetup::RestrictToMassPeak) {
40     SBOSSFP = allsamples.Draw("SBOSSFP",datajzb,1,cut,14000, xlabel, "events",cutOSSF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity);
41     SBOSOFP = allsamples.Draw("SBOSOFP",datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity);
42     SBOSSFN = allsamples.Draw("SBOSSFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSSF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity);
43     SBOSOFN = allsamples.Draw("SBOSOFN","-"+datajzb,1,cut,14000, xlabel, "events",cutOSOF&&cutnJets&&basiccut&&sidebandcut,mcordata,luminosity);
44     }
45    
46    
47     flag_this_change(__FUNCTION__,__LINE__,false);//PlottingSetup::RestrictToMassPeak
48     if(PlottingSetup::RestrictToMassPeak) {
49     dout << " Observed : " << ZOSSFP->Integral() << endl;
50     dout << " Predicted: " << ZOSSFN->Integral() << " + (1/3)*(" << ZOSOFP->Integral() << "-" << ZOSOFN->Integral()<<") + (1/3)*(" << SBOSSFP->Integral() << "-" << SBOSSFN->Integral()<<") + (1/3)*(" << SBOSOFP->Integral() << "-" << SBOSOFN->Integral()<<")" << endl;
51     dout << " P(ZJets ) \t " << ZOSSFN->Integral() << endl;
52     dout << " P(e&mu;]) \t " << ZOSOFP->Integral() << "-" << ZOSOFN->Integral() << " = " << ZOSOFP->Integral()-ZOSOFN->Integral()<<endl;
53     dout << " P(ossf,sb]) \t " << SBOSSFP->Integral() << "-" << SBOSSFN->Integral()<<" = "<<SBOSSFP->Integral()-SBOSSFN->Integral()<<endl;
54     dout << " P(osof,sb]) \t " << SBOSOFP->Integral() << "-" << SBOSOFN->Integral()<<" = "<<SBOSOFP->Integral()-SBOSOFN->Integral()<<endl;
55     } else {
56     dout << " Observed : " << ZOSSFP->Integral() << endl;
57     dout << " Predicted: " << ZOSSFN->Integral() << " + (" << ZOSOFP->Integral() << "-" << ZOSOFN->Integral()<<")" << endl;
58     dout << " P(ZJets ) \t " << ZOSSFN->Integral() << endl;
59     dout << " P(e&mu;]) \t " << ZOSOFP->Integral() << "-" << ZOSOFN->Integral() << " = " << ZOSOFP->Integral()-ZOSOFN->Integral()<<endl;
60     }
61    
62 buchmann 1.1
63     delete ZOSSFP;
64     delete ZOSOFP;
65     delete ZOSSFN;
66     delete ZOSOFN;
67    
68     delete SBOSSFP;
69     delete SBOSOFP;
70     delete SBOSSFN;
71     delete SBOSOFN;
72     }
73    
74 buchmann 1.3 void look_at_sidebands(string mcjzb, string datajzb, bool includejetcut, float cutat=0) {
75 buchmann 1.1
76 buchmann 1.15 flag_this_change(__FUNCTION__,__LINE__,false);//PlottingSetup::RestrictToMassPeak -- this funciton is meaningless for the offpeak case
77     if(!PlottingSetup::RestrictToMassPeak) return;
78 buchmann 1.4 dout << "Looking at sidebands ... " << endl;
79 buchmann 1.1 int mcordata=data;//data // you can perform this study for mc or data ...
80    
81     TCut specialjetcut;
82     if(includejetcut) specialjetcut=cutnJets&&basiccut;
83     else specialjetcut="mll>0";
84 buchmann 1.4 dout << "The datajzb variable is defined as " << datajzb << endl;
85 buchmann 1.3 stringstream addcut;
86     addcut<<"(pt>"<<cutat<<")";
87     TCut additionalcut=addcut.str().c_str();
88 buchmann 1.1
89 buchmann 1.2 int nbins=75; float min=51;float max=201;string xlabel="mll [GeV]";
90 buchmann 1.1 TCanvas *c1 = new TCanvas("c1","c1");
91     c1->SetLogy(1);
92 buchmann 1.2 TH1F *datahistoOSSF = allsamples.Draw("datahistoOSSF","mll",nbins,min,max, xlabel, "events",cutOSSF&&specialjetcut&&additionalcut,data,luminosity);
93     THStack mcstackOSSF = allsamples.DrawStack("mcstackOSSF","mll",nbins,min,max, xlabel, "events",cutOSSF&&specialjetcut&&additionalcut,mc,luminosity);
94 buchmann 1.1
95     datahistoOSSF->SetMinimum(1);
96     datahistoOSSF->Draw();
97     mcstackOSSF.Draw("same");
98     datahistoOSSF->Draw("same");
99     TLegend *kinleg = allsamples.allbglegend();
100     kinleg->AddEntry(datahistoOSSF,"OSSF (data)","p");
101     kinleg->Draw();
102 buchmann 1.3 if(includejetcut) CompleteSave(c1,"sidebands/"+any2string(cutat)+"/OSSF");
103     else CompleteSave(c1,"sidebands/"+any2string(cutat)+"/OSSF_nojetcut");
104 buchmann 1.1
105 buchmann 1.2 TH1F *datahistoOSOF = allsamples.Draw("datahistoOSOF","mll",nbins,min,max, xlabel, "events",cutOSOF&&specialjetcut&&additionalcut,data,luminosity);
106     THStack mcstackOSOF = allsamples.DrawStack("mcstackOSOF","mll",nbins,min,max, xlabel, "events",cutOSOF&&specialjetcut&&additionalcut,mc,luminosity);
107     // datahistoOSOF->SetMinimum(0.4);
108 buchmann 1.1 datahistoOSOF->Draw();
109     mcstackOSOF.Draw("same");
110     datahistoOSOF->Draw("same");
111     TLegend *kinleg2 = allsamples.allbglegend();
112     kinleg2->AddEntry(datahistoOSOF,"OSOF (data)","p");
113     kinleg2->Draw();
114 buchmann 1.3 if(includejetcut) CompleteSave(c1,"sidebands/"+any2string(cutat)+"/OSOF");
115     else CompleteSave(c1,"sidebands/"+any2string(cutat)+"/OSOF_nojetcut");
116 buchmann 1.1
117 buchmann 1.2 TH1F *rawmlleemmData = allsamples.Draw("rawmlleemmData","mll",200,0,200, "mll [GeV]", "events", cutOSSF&&specialjetcut&&sidebandcut&&additionalcut,data, luminosity);
118     TH1F *rawmllemData = allsamples.Draw("rawmllemData" ,"mll",200,0,200, "mll [GeV]", "events", cutmass&&cutOSOF&&specialjetcut&&additionalcut,data, luminosity);
119 buchmann 1.4 dout << "Number of events in peak for OSOF: " << rawmllemData->GetEntries() << endl;
120     dout << "Number of events in SB for OSSF: " << rawmlleemmData->GetEntries() << endl;
121 buchmann 1.1
122 buchmann 1.2 TH1F *SFttbarZpeak = allsamples.Draw("SFttbarZpeak",mcjzb,100,-200,400, "JZB [GeV]", "events",cutmass&&cutOSSF&&specialjetcut&&additionalcut,mc,luminosity,allsamples.FindSample("TTJets"));
123     TH1F *OFttbarZpeak = allsamples.Draw("OFttbarZpeak",mcjzb,100,-200,400, "JZB [GeV]", "events",cutmass&&cutOSOF&&specialjetcut&&additionalcut,mc,luminosity,allsamples.FindSample("TTJets"));
124     TH1F *SFttbarsideb = allsamples.Draw("SFttbarsideb",mcjzb,100,-200,400, "JZB [GeV]", "events",cutOSSF&&specialjetcut&&sidebandcut&&additionalcut,mc,luminosity,allsamples.FindSample("TTJets"));
125 buchmann 1.1
126     SFttbarZpeak->SetLineColor(kBlack);
127     OFttbarZpeak->SetLineColor(kBlue);
128     OFttbarZpeak->SetMarkerColor(kBlue);
129     SFttbarsideb->SetLineColor(kPink);
130     SFttbarsideb->SetMarkerColor(kPink);
131    
132     SFttbarZpeak->Draw("histo");
133     OFttbarZpeak->Draw("histo,same");
134     SFttbarsideb->Draw("histo,same");
135    
136     TLegend *leg3 = new TLegend(0.6,0.8,0.89,0.89);
137     leg3->AddEntry(SFttbarZpeak,"SF ttbar Z peak","l");
138     leg3->AddEntry(OFttbarZpeak,"OF ttbar Z peak","l");
139     leg3->AddEntry(SFttbarsideb,"SF ttbar SB","l");
140     leg3->SetFillColor(kWhite);
141     leg3->SetLineColor(kWhite);
142     leg3->SetBorderSize(0);
143    
144     leg3->Draw();
145 buchmann 1.3 if(includejetcut) CompleteSave(c1,"sidebands/"+any2string(cutat)+"/ttbar_comparison");
146     else CompleteSave(c1,"sidebands/"+any2string(cutat)+"/ttbar_comparison_nojetcut");
147 buchmann 1.1
148    
149     c1->SetLogy(0);
150    
151     SFttbarsideb->SetFillColor(TColor::GetColor("#F5A9A9"));
152     SFttbarsideb->SetLineColor(TColor::GetColor("#F5A9A9"));
153     SFttbarsideb->SetFillStyle(3004);
154     OFttbarZpeak->SetFillColor(TColor::GetColor("#819FF7"));
155     OFttbarZpeak->SetLineColor(TColor::GetColor("#819FF7"));
156     OFttbarZpeak->SetFillColor(kBlue);
157     OFttbarZpeak->SetFillStyle(3005);
158    
159     OFttbarZpeak->Rebin(2);
160     SFttbarZpeak->Rebin(2);
161     SFttbarsideb->Rebin(2);
162     OFttbarZpeak->Divide(SFttbarZpeak);
163     SFttbarsideb->Divide(SFttbarZpeak);
164     OFttbarZpeak->GetYaxis()->SetRangeUser(0,5);
165     OFttbarZpeak->GetYaxis()->SetTitle("ratio");
166 buchmann 1.2 TF1 *centralfitO = new TF1("centralfitO","pol1",-40,120);
167     TF1 *centralfit1 = new TF1("centralfit1","pol1",-200,400);
168     // TF1 *centralfitS = new TF1("centralfitS","pol1",-40,120);
169     SFttbarsideb->Fit(centralfitO,"R");
170     //OFttbarZpeak->Fit(centralfitO,"R");
171     centralfit1->SetParameters(centralfitO->GetParameters());
172     // SFttbarZpeak->Fit(centralfitS,"R");
173 buchmann 1.1 OFttbarZpeak->Draw("e5");
174     SFttbarsideb->Draw("e5,same");
175     OFttbarZpeak->Draw("same");
176     SFttbarsideb->Draw("same");
177 buchmann 1.2 centralfit1->SetLineColor(kOrange);
178     // centralfitS->SetLineColor(kOrange);
179     centralfit1->SetLineWidth(2);
180     // centralfitS->SetLineWidth(2);
181     centralfit1->Draw("same");
182     // centralfitS->Draw("same");
183     TLine *oneline = new TLine(-200,1,400,1);
184     oneline->SetLineColor(kBlue);
185     TLine *point5 = new TLine(-200,0.5,400,0.5);
186     point5->SetLineStyle(2);
187     point5->SetLineColor(kGreen);
188     TLine *op5 = new TLine(-200,1.5,400,1.5);
189     op5->SetLineStyle(2);
190     op5->SetLineColor(kGreen);
191     TLine *point7 = new TLine(-200,0.7,400,0.7);
192     point7->SetLineStyle(2);
193     point7->SetLineColor(kBlack);
194     TLine *op7 = new TLine(-200,1.3,400,1.3);
195     op7->SetLineStyle(2);
196     op7->SetLineColor(kBlack);
197     oneline->Draw("same");
198     point5->Draw("same");
199     point7->Draw("same");
200     op5->Draw("same");
201     op7->Draw("same");
202     TLegend *leg4 = new TLegend(0.6,0.65,0.89,0.89);
203 buchmann 1.1 leg4->AddEntry(OFttbarZpeak,"OF ttbar Z peak / truth","l");
204     leg4->AddEntry(SFttbarsideb,"SF ttbar SB / truth","l");
205 buchmann 1.2 leg4->AddEntry(centralfit1,"Fit to [-40,120] GeV region (OF)","l");
206     leg4->AddEntry(point5,"50% systematic envelope","l");
207     leg4->AddEntry(point7,"30% systematic envelope","l");
208     // leg4->AddEntry(centralfitS,"Fit to [-40,120] GeV region (SF)","l");
209 buchmann 1.1 leg4->SetFillColor(kWhite);
210     leg4->SetLineColor(kWhite);
211     leg4->SetBorderSize(0);
212     leg4->Draw("same");
213 buchmann 1.3 if(includejetcut) CompleteSave(c1,"sidebands/"+any2string(cutat)+"/ttbar_comparison_ratio");
214     else CompleteSave(c1,"sidebands/"+any2string(cutat)+"/ttbar_comparison_ratio_nojetcut");
215 buchmann 1.4 dout << "Moving on to predicted / observed yields! " << endl;
216     dout << "Sideband definition: " << (const char*) sidebandcut << endl;
217 buchmann 1.1 /*
218     do_experimental_pred_obs_calculation(50,mcjzb,datajzb,mcordata);
219     do_experimental_pred_obs_calculation(75,mcjzb,datajzb,mcordata);
220     do_experimental_pred_obs_calculation(100,mcjzb,datajzb,mcordata);
221     do_experimental_pred_obs_calculation(125,mcjzb,datajzb,mcordata);
222     do_experimental_pred_obs_calculation(150,mcjzb,datajzb,mcordata);
223     */
224    
225 buchmann 1.2 delete rawmlleemmData;
226     delete rawmllemData;
227     delete SFttbarZpeak;
228     delete OFttbarZpeak;
229     delete SFttbarsideb;
230     delete datahistoOSOF;
231     delete datahistoOSSF;
232    
233 buchmann 1.1
234     }
235    
236     void look_at_sidebands(string mcjzb, string datajzb) {
237 buchmann 1.3 // for (int i=0;i<100;i+=10) {
238     int i=0;
239     {
240     look_at_sidebands(mcjzb,datajzb, true,i);
241     look_at_sidebands(mcjzb,datajzb, false,i);
242     }
243 buchmann 1.1 }
244 buchmann 1.2
245     void find_sideband_definition() {
246 buchmann 1.15 flag_this_change(__FUNCTION__,__LINE__,false);//PlottingSetup::RestrictToMassPeak
247     if(!PlottingSetup::RestrictToMassPeak) return; // this function is meaningless for the offpeak analysis
248    
249 buchmann 1.2 TH1F *mllttbar = allsamples.Draw("mllttbar","mll",145,55,200, "mll [GeV]", "events",cutOSSF&&cutnJets&&!cutmass,mc,luminosity,allsamples.FindSample("TTJets"));
250     TH1F *mllttbarz = allsamples.Draw("mllttbarz","mll",1,50,200, "mll [GeV]", "events",cutOSSF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("TTJets"));
251     float leftstop=0;
252     float rightstop=0;
253     int pos90=mllttbar->FindBin(90);
254     float leftsum=0; float rightsum=0;
255     float peaksum=mllttbarz->Integral();
256     for(int i=0;i<mllttbar->GetNbinsX()&&!(leftstop&&rightstop);i++) {
257     if(pos90-i<1) leftstop=mllttbar->GetBinLowEdge(1);
258     if(mllttbar->GetBinLowEdge(pos90+i)+mllttbar->GetBinWidth(pos90+i)>190) rightstop=190;
259     if(!leftstop) leftsum+=mllttbar->GetBinContent(pos90-i);
260     if(!rightstop) rightsum+=mllttbar->GetBinContent(pos90+i);
261     if(leftsum+rightsum>peaksum) {
262     if(!leftstop) leftstop=mllttbar->GetBinLowEdge(pos90-i);
263     if(!rightstop) rightstop=mllttbar->GetBinLowEdge(pos90+i)+mllttbar->GetBinWidth(pos90+i);
264 buchmann 1.4 dout << "Found the boundaries! on the left: " << leftstop << " and on the right " << rightstop << endl;
265     dout << "Total sum : " << leftsum+rightsum << " which supposedly corresponds ~ to " << peaksum << endl;
266 buchmann 1.2 }
267     }
268     TH1F *mllttbart = allsamples.Draw("mllttbart","mll",1,55,155, "mll [GeV]", "events",cutOSSF&&cutnJets&&!cutmass,mc,luminosity,allsamples.FindSample("TTJets"));
269 buchmann 1.4 dout << mllttbart->Integral() << endl;
270 buchmann 1.2
271    
272 buchmann 1.5 }
273    
274     void calculate_upper_limits(string mcjzb, string datajzb) {
275     write_warning("calculate_upper_limits","Upper limit calculation temporarily deactivated");
276     // write_warning("calculate_upper_limits","Calculation of SUSY upper limits has been temporarily suspended in favor of top discovery");
277     // rediscover_the_top(mcjzb,datajzb);
278     /*
279     TCanvas *c3 = new TCanvas("c3","c3");
280     c3->SetLogy(1);
281     vector<float> binning;
282     //binning=allsamples.get_optimal_binsize(mcjzb,cutmass&&cutOSSF&&cutnJets,20,50,800);
283     binning.push_back(50);
284     binning.push_back(100);
285     binning.push_back(150);
286     binning.push_back(200);
287     binning.push_back(500);
288     TH1F *datapredictiona = allsamples.Draw("datapredictiona", "-"+datajzb, binning, "JZB [GeV]", "events", cutmass&&cutOSSF&&cutnJets,mc, luminosity);
289     TH1F *datapredictionb = allsamples.Draw("datapredictionb", "-"+datajzb, binning, "JZB [GeV]", "events", cutmass&&cutOSOF&&cutnJets,mc, luminosity);
290     TH1F *datapredictionc = allsamples.Draw("datapredictionc", datajzb, binning, "JZB [GeV]", "events", cutmass&&cutOSOF&&cutnJets,mc, luminosity);
291     TH1F *dataprediction = (TH1F*)datapredictiona->Clone();
292     dataprediction->Add(datapredictionb,-1);
293     dataprediction->Add(datapredictionc);
294     TH1F *puresignal = allsamples.Draw("puresignal", mcjzb, binning, "JZB [GeV]", "events", cutmass&&cutOSSF&&cutnJets,mc, luminosity,allsamples.FindSample("LM4"));
295     TH1F *signalpred = allsamples.Draw("signalpred", "-"+mcjzb, binning, "JZB [GeV]", "events", cutmass&&cutOSSF&&cutnJets,mc, luminosity,allsamples.FindSample("LM4"));
296     TH1F *signalpredlo = allsamples.Draw("signalpredlo", "-"+mcjzb, binning, "JZB [GeV]", "events", cutmass&&cutOSOF&&cutnJets,mc, luminosity,allsamples.FindSample("LM4"));
297     TH1F *signalpredro = allsamples.Draw("signalpredro", mcjzb, binning, "JZB [GeV]", "events", cutmass&&cutOSOF&&cutnJets,mc, luminosity,allsamples.FindSample("LM4"));
298     TH1F *puredata = allsamples.Draw("puredata", datajzb,binning, "JZB [GeV]", "events", cutmass&&cutOSSF&&cutnJets,data,luminosity);
299     signalpred->Add(signalpredlo,-1);
300     signalpred->Add(signalpredro);
301     puresignal->Add(signalpred,-1);//subtracting signal contamination
302     ofstream myfile;
303     myfile.open ("ShapeFit_log.txt");
304     establish_upper_limits(puredata,dataprediction,puresignal,"LM4",myfile);
305     myfile.close();
306     */
307     }
308    
309 buchmann 1.6 TH1F *runcheckhisto(string cut) {
310     string histoname=GetNumericHistoName();
311     TH1F *histo = new TH1F(histoname.c_str(),histoname.c_str(),100,163000,168000);
312     (allsamples.collection)[0].events->Draw(("runNum>>"+histoname).c_str(),cut.c_str());
313     return histo;
314     }
315    
316     void run_check() {
317     gROOT->SetStyle("Plain");
318     TCanvas *c1 = new TCanvas("runnum","runnum",800,1000);
319     c1->Divide(2,4);
320 buchmann 1.15 flag_this_change(__FUNCTION__,__LINE__,false);//PlottingSetup::RestrictToMassPeak
321     if(PlottingSetup::RestrictToMassPeak) c1->Divide(2,2); // there are only four regions ...
322    
323 buchmann 1.6 c1->cd(1);
324     TH1F *ossfp = runcheckhisto((const char*)(cutmass&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)"));
325     ossfp->Draw();
326     TText *t1 = write_title("OSSF,P");t1->Draw();
327    
328     c1->cd(2);
329     TH1F *ossfn = runcheckhisto((const char*)(cutmass&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)"));
330     ossfn->Draw();
331     TText *t2 = write_title("OSSF,N");t2->Draw();
332    
333     c1->cd(3);
334     TH1F *osofp = runcheckhisto((const char*)(cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)"));
335     osofp->Draw();
336     TText *t3 = write_title("OSOF,P");t3->Draw();
337     c1->cd(4);
338     TH1F *osofn = runcheckhisto((const char*)(cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)"));
339     osofn->Draw();
340     TText *t4 = write_title("OSOF,N");t4->Draw();
341    
342 buchmann 1.15 flag_this_change(__FUNCTION__,__LINE__,false);//PlottingSetup::RestrictToMassPeak
343     if(PlottingSetup::RestrictToMassPeak) {
344     c1->cd(5);
345     TH1F *sbofp = runcheckhisto((const char*)(sidebandcut&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)"));
346     sbofp->Draw();
347     TText *t5 = write_title("SB,OSOF,P");t5->Draw();
348     c1->cd(6);
349     TH1F *sbofn = runcheckhisto((const char*)(cutOSOF&&cutnJets&&basiccut&&sidebandcut&&"((jzb[1]+0.06*pt-2.84727)<-100)"));
350     sbofn->Draw();
351     TText *t6 = write_title("SB,OSOF,N");t6->Draw();
352    
353     c1->cd(7);
354     TH1F *sbsfp = runcheckhisto((const char*)(sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)"));
355     sbsfp->Draw();
356     TText *t7 = write_title("SB,OSSF,P");t7->Draw();
357     c1->cd(8);
358     TH1F *sbsfn = runcheckhisto((const char*)(sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)"));
359     sbsfn->Draw();
360     TText *t8 = write_title("SB,OSSF,N");t8->Draw();
361     }
362 buchmann 1.6
363     c1->SaveAs("runNumber.png");
364     }
365    
366     TH1F *give_boson_pred(TCut bcut,string mcjzb) {
367     int nbins=50;
368     TH1F *jzbn = allsamples.Draw("jzbn","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events", bcut&&cutOSSF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
369     TH1F *jzbno = allsamples.Draw("jzbno","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events",bcut&&cutOSOF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
370     TH1F *jzbpo = allsamples.Draw("jzbp",mcjzb,nbins,0,350, "JZB [GeV]", "events", bcut&&cutOSOF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
371    
372     //Sidebands
373 buchmann 1.15 TH1F *jzbnos;
374     TH1F *jzbpos;
375     TH1F *jzbnss;
376     TH1F *jzbpss;
377    
378     flag_this_change(__FUNCTION__,__LINE__,false);//PlottingSetup::RestrictToMassPeak
379     if(PlottingSetup::RestrictToMassPeak) {
380     jzbnos = allsamples.Draw("jzbnos","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events",bcut&&cutOSOF&&cutnJets&&sidebandcut,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
381     jzbpos = allsamples.Draw("jzbpos",mcjzb,nbins,0,350, "JZB [GeV]", "events", bcut&&cutOSOF&&cutnJets&&sidebandcut,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
382     jzbnss = allsamples.Draw("jzbnss","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events",bcut&&cutOSSF&&cutnJets&&sidebandcut,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
383     jzbpss = allsamples.Draw("jzbpss",mcjzb,nbins,0,350, "JZB [GeV]", "events", bcut&&cutOSSF&&cutnJets&&sidebandcut,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
384     }
385 buchmann 1.6
386 buchmann 1.15
387 buchmann 1.6 TH1F *pred = (TH1F*)jzbn->Clone("pred");
388 buchmann 1.15 flag_this_change(__FUNCTION__,__LINE__,false);//PlottingSetup::RestrictToMassPeak
389     if(PlottingSetup::RestrictToMassPeak) {
390     pred->Add(jzbno,-1.0/3);
391     pred->Add(jzbpo,1.0/3);
392     pred->Add(jzbnos,-1.0/3);
393     pred->Add(jzbpos,1.0/3);
394     pred->Add(jzbnss,-1.0/3);
395     pred->Add(jzbpss,1.0/3);
396     } else {
397     pred->Add(jzbno,-1.0);
398     pred->Add(jzbpo,1.0);
399     }
400 buchmann 1.6 pred->SetLineColor(kRed);
401     pred->SetMinimum(0);
402     delete jzbn;
403     delete jzbpo;
404     delete jzbno;
405     delete jzbpos;
406     delete jzbnos;
407     delete jzbpss;
408     delete jzbnss;
409    
410     return pred;
411     }
412    
413    
414     void show_dibosons(string datajzb, string mcjzb) {
415     TCut WW("(abs(genMID1)==24&&abs(genMID2)==24)||(abs(genGMID1)==24&&abs(genGMID2)==24)");
416     TCut ZZ("(abs(genMID1)==23&&abs(genMID2)==23)||(abs(genGMID1)==23&&abs(genGMID2)==23)");
417     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))");
418    
419     TCanvas *dibs = new TCanvas("dibs","dibs",900,900);
420     dibs->Divide(2,2);
421    
422     dibs->cd(1);
423     TH1F *wwjzbp = allsamples.Draw("wwjzbp",mcjzb,70,0,350, "JZB [GeV]", "events", WW&&cutOSSF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
424     TH1F *wwpred = (TH1F*) give_boson_pred(WW,mcjzb);
425     wwpred->Draw("histo");
426     wwjzbp->Draw("histo,same");
427 buchmann 1.11 TLegend *leg = make_legend("WW");
428 buchmann 1.6 leg->SetFillColor(kWhite);
429     leg->SetLineColor(kWhite);
430 buchmann 1.11 leg->SetHeader("WW (MC)");
431 buchmann 1.6 leg->AddEntry(wwjzbp,"Observed","l");
432     leg->AddEntry(wwpred,"Predicted","l");
433     leg->Draw("same");
434    
435     dibs->cd(2);
436     TH1F *wzjzbp = allsamples.Draw("wzjzbp",mcjzb,70,0,350, "JZB [GeV]", "events",WZ&&cutOSSF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
437     TH1F *wzpred = (TH1F*) give_boson_pred(WZ,mcjzb);
438     wzpred->Draw("histo");
439     wzjzbp->Draw("same,histo");
440 buchmann 1.11 TLegend *leg2 = (TLegend*)leg->Clone("leg2");
441     leg2->SetHeader("WZ (MC)");
442     leg2->Draw("same");
443     DrawPrelim();
444 buchmann 1.6
445     dibs->cd(3);
446     TH1F *zzjzbp = allsamples.Draw("zzjzbp",mcjzb,70,0,350, "JZB [GeV]", "events",ZZ&&cutOSSF&&cutnJets&&cutmass,mc,luminosity,allsamples.FindSample("VVJetsTo4L_TuneD6T_7TeV"));
447     TH1F *zzpred = (TH1F*) give_boson_pred(ZZ,mcjzb);
448     zzpred->Draw("histo");
449     zzjzbp->Draw("same,histo");
450 buchmann 1.11 TLegend *leg3 = (TLegend*)leg->Clone("leg2");
451     leg3->SetHeader("ZZ (MC)");
452     leg3->Draw("same");
453     leg3->Draw("same");
454     DrawPrelim();
455 buchmann 1.6
456     dibs->cd(4);
457     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"));
458     TH1F *allpred = (TH1F*) give_boson_pred((WW||WZ||ZZ),mcjzb);
459     allpred->Draw("histo");
460     alljzbp->Draw("same,histo");
461 buchmann 1.11 TLegend *leg4 = (TLegend*)leg->Clone("leg2");
462     leg4->SetHeader("All dibosons (MC)");
463     leg4->Draw("same");
464     DrawPrelim();
465 buchmann 1.6
466 buchmann 1.11 CompleteSave(dibs,"Studies/Dibosons");
467 buchmann 1.6
468 buchmann 1.7 }
469    
470 buchmann 1.13 void show_rare_samples(string datajzb, string mcjzb) {
471     TCanvas *rares = new TCanvas("rares","Rare Samples",900,900);
472    
473     int nbins=50;
474     TH1F *jzbp = raresample.Draw("jzbp", mcjzb,nbins,0,350, "JZB [GeV]", "events",cutOSSF&&cutnJets&&cutmass,mc,luminosity);
475    
476     TH1F *jzbn = raresample.Draw("jzbn", "-"+mcjzb,nbins,0,350, "JZB [GeV]", "events",cutOSSF&&cutnJets&&cutmass,mc,luminosity);
477     TH1F *jzbno = raresample.Draw("jzbno", "-"+mcjzb,nbins,0,350, "JZB [GeV]", "events",cutOSOF&&cutnJets&&cutmass,mc,luminosity);
478     TH1F *jzbpo = raresample.Draw("jzbp", mcjzb,nbins,0,350, "JZB [GeV]", "events",cutOSOF&&cutnJets&&cutmass,mc,luminosity);
479    
480     //Sidebands
481     TH1F *jzbnos = raresample.Draw("jzbnos","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events",cutOSOF&&cutnJets&&sidebandcut,mc,luminosity);
482     TH1F *jzbpos = raresample.Draw("jzbpos", mcjzb,nbins,0,350, "JZB [GeV]", "events",cutOSOF&&cutnJets&&sidebandcut,mc,luminosity);
483     TH1F *jzbnss = raresample.Draw("jzbnss","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events",cutOSSF&&cutnJets&&sidebandcut,mc,luminosity);
484     TH1F *jzbpss = raresample.Draw("jzbpss", mcjzb,nbins,0,350, "JZB [GeV]", "events",cutOSSF&&cutnJets&&sidebandcut,mc,luminosity);
485    
486     TH1F *pred = (TH1F*)jzbn->Clone("pred");
487     pred->Add(jzbno,-1.0/3);
488     pred->Add(jzbpo,1.0/3);
489     pred->Add(jzbnos,-1.0/3);
490     pred->Add(jzbpos,1.0/3);
491     pred->Add(jzbnss,-1.0/3);
492     pred->Add(jzbpss,1.0/3);
493     pred->SetLineColor(kRed);
494     pred->SetMinimum(0);
495     delete jzbn;
496     delete jzbpo;
497     delete jzbno;
498     delete jzbpos;
499     delete jzbnos;
500     delete jzbpss;
501     delete jzbnss;
502    
503     pred->Draw("histo");
504     pred->GetYaxis()->SetTitleOffset(1.3);
505     jzbp->Draw("histo,same");
506     TLegend *leg = make_legend("WW");
507     leg->SetFillColor(kWhite);
508     leg->SetLineColor(kWhite);
509     leg->SetHeader("Rare Samples (MC)");
510     leg->AddEntry(jzbp,"Observed","l");
511     leg->AddEntry(pred,"Predicted","l");
512     leg->Draw("same");
513    
514    
515     CompleteSave(rares,"Studies/Rare_Samples");
516 buchmann 1.14 delete jzbp;
517     delete pred;
518     delete leg;
519 buchmann 1.13 delete rares;
520     }
521    
522 buchmann 1.15
523 buchmann 1.7 class signature {
524     public:
525     int runNum;
526     int eventNum;
527     int lumi;
528     };
529    
530     vector<signature> get_list_of_events(string cut) {
531     float jzb;
532     int runNum,lumi,eventNum;
533     (allsamples.collection)[0].events->SetBranchAddress("jzb",&jzb);
534     (allsamples.collection)[0].events->SetBranchAddress("eventNum",&eventNum);
535     (allsamples.collection)[0].events->SetBranchAddress("lumi",&lumi);
536     (allsamples.collection)[0].events->SetBranchAddress("runNum",&runNum);
537    
538     TTreeFormula *select = new TTreeFormula("select", cut.c_str()&&essentialcut, (allsamples.collection)[0].events);
539     vector<signature> allevents;
540     for (Int_t entry = 0 ; entry < (allsamples.collection)[0].events->GetEntries() ; entry++) {
541     (allsamples.collection)[0].events->LoadTree(entry);
542     if (select->EvalInstance()) {
543     (allsamples.collection)[0].events->GetEntry(entry);
544     signature newevent;
545     newevent.runNum=runNum;
546     newevent.eventNum=eventNum;
547     newevent.lumi=lumi;
548     allevents.push_back(newevent);
549     }
550     }
551     cout << "Done looping!" << endl;
552     return allevents;
553     }
554    
555 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) {
556 buchmann 1.7 TCut ibasiccut=basiccut;
557    
558     //Step 2: Refine the cut
559     TCanvas *ckin = new TCanvas("ckin","Kinematic Plots (in the making)",600,600);
560     ckin->SetLogy(logscale);
561    
562 fronga 1.9 TH1F *datahistoa = allsamples.Draw("datahistoa",variable,nbins,min,max, xlabel, "events",observed,is_data,luminosity);
563     TH1F *datahistob = allsamples.Draw("datahistob",variable,nbins,min,max, xlabel, "events",predicted,is_data,luminosity);
564 buchmann 1.7
565 buchmann 1.8 datahistoa->SetLineColor(kBlue);
566 buchmann 1.7 datahistob->SetLineColor(kRed);
567    
568 fronga 1.9 TLegend *kinleg = new TLegend(0.6,0.7,0.8,0.89);
569 buchmann 1.7 kinleg->SetFillColor(kWhite);
570     kinleg->SetLineColor(kWhite);
571     kinleg->SetBorderSize(0);
572 fronga 1.9 kinleg->AddEntry(datahistoa,"Observed "+TString(is_data?"Data":"MC"),"l");
573     kinleg->AddEntry(datahistob,"Predicted "+TString(is_data?"Data":"MC"),"l");
574    
575     datahistoa->SetMaximum(ymax);
576     datahistoa->Draw("histo");
577     datahistob->SetLineStyle(2);
578     if ( !noscale ) datahistob->Scale(0.3);
579     datahistob->Draw("histo,sames");
580     TVirtualPad::Pad()->Update();
581    
582     TPaveStats *sa = (TPaveStats*)datahistoa->GetListOfFunctions()->FindObject("stats");
583     TPaveStats *sb = (TPaveStats*)datahistob->GetListOfFunctions()->FindObject("stats");
584     if ( sa && sb ) {
585     sa->SetTextColor(datahistoa->GetLineColor());
586     sb->SetTextColor(datahistob->GetLineColor());
587     sb->SetY1NDC(sb->GetY1NDC()-0.25);
588     sb->SetY2NDC(sb->GetY2NDC()-0.25);
589     TVirtualPad::Pad()->Update();
590 buchmann 1.7 }
591     kinleg->Draw();
592     TText* write_cut = write_title(variable);
593     write_cut->Draw();
594     CompleteSave(ckin,"special_kin/"+filename);
595     datahistoa->Delete();
596     datahistob->Delete();
597 buchmann 1.11 delete ckin;
598 buchmann 1.7 }
599    
600 buchmann 1.12 TH1F *give_lm0_pred(TCut bcut,string mcjzb) {
601     int nbins=50;
602     TH1F *jzbn = signalsamples.Draw("jzbn","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events", cutOSSF&&cutnJets&&cutmass,mc,luminosity,signalsamples.FindSample("LM0"));
603     TH1F *jzbno = signalsamples.Draw("jzbno","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events",cutOSOF&&cutnJets&&cutmass,mc,luminosity,signalsamples.FindSample("LM0"));
604     TH1F *jzbpo = signalsamples.Draw("jzbp",mcjzb,nbins,0,350, "JZB [GeV]", "events", cutOSOF&&cutnJets&&cutmass,mc,luminosity,signalsamples.FindSample("LM0"));
605    
606     //Sidebands
607 buchmann 1.15 flag_this_change(__FUNCTION__,__LINE__,false);//PlottingSetup::RestrictToMassPeak
608     TH1F *jzbnos;
609     TH1F *jzbpos;
610     TH1F *jzbnss;
611     TH1F *jzbpss;
612    
613     if(PlottingSetup::RestrictToMassPeak) {
614     jzbnos = signalsamples.Draw("jzbnos","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events",cutOSOF&&cutnJets&&sidebandcut,mc,luminosity,signalsamples.FindSample("LM0"));
615     jzbpos = signalsamples.Draw("jzbpos",mcjzb,nbins,0,350, "JZB [GeV]", "events", cutOSOF&&cutnJets&&sidebandcut,mc,luminosity,signalsamples.FindSample("LM0"));
616     jzbnss = signalsamples.Draw("jzbnss","-"+mcjzb,nbins,0,350, "JZB [GeV]", "events",cutOSSF&&cutnJets&&sidebandcut,mc,luminosity,signalsamples.FindSample("LM0"));
617     jzbpss = signalsamples.Draw("jzbpss",mcjzb,nbins,0,350, "JZB [GeV]", "events", cutOSSF&&cutnJets&&sidebandcut,mc,luminosity,signalsamples.FindSample("LM0"));
618     }
619 buchmann 1.12
620     TH1F *pred = (TH1F*)jzbn->Clone("pred");
621 buchmann 1.15 flag_this_change(__FUNCTION__,__LINE__,false);//PlottingSetup::RestrictToMassPeak
622     if(PlottingSetup::RestrictToMassPeak) {
623     pred->Add(jzbno,-1.0/3);
624     pred->Add(jzbpo,1.0/3);
625     pred->Add(jzbnos,-1.0/3);
626     pred->Add(jzbpos,1.0/3);
627     pred->Add(jzbnss,-1.0/3);
628     pred->Add(jzbpss,1.0/3);
629     } else {
630     pred->Add(jzbno,-1.0);
631     pred->Add(jzbpo,1.0);
632     }
633    
634 buchmann 1.12 pred->SetLineColor(kRed);
635     pred->SetMinimum(0);
636 buchmann 1.15
637 buchmann 1.12 delete jzbn;
638     delete jzbpo;
639     delete jzbno;
640     delete jzbpos;
641     delete jzbnos;
642     delete jzbpss;
643     delete jzbnss;
644     cout << "pred contains " << pred->Integral() << "entries" << endl;
645     return pred;
646     }
647    
648    
649     void lm0_illustration() {
650     TCanvas *can = new TCanvas("can","Signal Background Comparison Canvas");
651     can->SetLogy(1);
652    
653     int sbg_nbins=130;
654     float sbg_min=-500; //-110;
655     float sbg_max=800; //jzbHigh;
656    
657     float simulatedlumi=1000;//in pb please
658    
659     TH1F *JZBplotZJETs = allsamples.Draw("JZBplotZJETs",jzbvariablemc,sbg_nbins,sbg_min,sbg_max, "JZB [GeV]", "events",cutmass&&cutOSSF&&cutnJets,mc,simulatedlumi,allsamples.FindSample("DYJetsToLL"));
660     TH1F *JZBplotLM0 = signalsamples.Draw("JZBplotLM0",jzbvariablemc,sbg_nbins,sbg_min,sbg_max, "JZB [GeV]", "events",cutmass&&cutOSSF&&cutnJets,mc,simulatedlumi,signalsamples.FindSample("LM0"));
661     TH1F *JZBplotTtbar = allsamples.Draw("JZBplotTtbar",jzbvariablemc,sbg_nbins,sbg_min,sbg_max, "JZB [GeV]", "events",cutmass&&cutOSSF&&cutnJets,mc,simulatedlumi,allsamples.FindSample("TTJets"));
662    
663     JZBplotTtbar->SetLineColor(allsamples.GetColor("TTJet"));
664     JZBplotZJETs->SetFillColor(allsamples.GetColor("DY"));
665     JZBplotZJETs->SetLineColor(kBlack);
666     JZBplotLM0->SetLineStyle(2);
667     JZBplotZJETs->SetMaximum(JZBplotZJETs->GetMaximum()*5);
668     JZBplotZJETs->SetMinimum(1);
669    
670     JZBplotTtbar->SetMaximum(JZBplotZJETs->GetMaximum());
671     JZBplotTtbar->SetMinimum(0.01);
672     JZBplotTtbar->SetFillColor(allsamples.GetColor("TTJets"));
673     JZBplotTtbar->DrawClone("histo");
674     JZBplotZJETs->Draw("histo,same");
675     JZBplotTtbar->SetFillColor(0);
676     JZBplotTtbar->DrawClone("histo,same");
677     JZBplotTtbar->SetFillColor(allsamples.GetColor("TTJets"));
678     JZBplotLM0->Draw("histo,same");
679    
680    
681     TLegend *signal_bg_comparison_leg2 = make_legend("",0.55,0.75,false);
682     signal_bg_comparison_leg2->AddEntry(JZBplotZJETs,"Z+Jets","f");
683     signal_bg_comparison_leg2->AddEntry(JZBplotTtbar,"t#bar{t}","f");
684     signal_bg_comparison_leg2->AddEntry(JZBplotLM0,"LM0","f");
685     signal_bg_comparison_leg2->Draw();
686     TText* title = write_title("CMS MC simulation, #sqrt{s}= 7 TeV @ L=1 fb^{-1}");
687     title->Draw();
688     CompleteSave(can,"LM0/jzb_bg_vs_signal_distribution__LM0");
689     can->SetLogy(0);
690     TH1F *lm0jzbp = signalsamples.Draw("lm0jzb",jzbvariablemc,70,0,350, "JZB [GeV]", "events",cutOSSF&&cutnJets&&cutmass,mc,luminosity,signalsamples.FindSample("LM0"));
691     TH1F *lm0pred = (TH1F*) give_lm0_pred("mll>0",jzbvariablemc);
692     lm0pred->Draw("histo");
693     lm0jzbp->Draw("histo,same");
694     TLegend *leg = make_legend("LM0");
695     leg->SetFillColor(kWhite);
696     leg->SetLineColor(kWhite);
697     leg->SetHeader("LM0 (MC)");
698     leg->AddEntry(lm0jzbp,"Observed","l");
699     leg->AddEntry(lm0pred,"Predicted","l");
700     leg->Draw("same");
701     CompleteSave(can,"LM0/LeftRight");
702    
703     delete lm0jzbp;
704     delete lm0pred;
705     }
706 buchmann 1.7
707 buchmann 1.10 void kinematic_dist_of_pred_and_obs() {//former plot_list
708 fronga 1.9 gStyle->SetOptStat("oueMri");
709 buchmann 1.7 TCut observed=(cutmass&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)");
710 fronga 1.9
711     TCut predicted = (cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")
712     || (sidebandcut&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")
713     || (sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)");
714     TCut predictedMC = (cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.04*pt-1.82559)>100)")
715     || (sidebandcut&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.04*pt-1.82559)>100)")
716     || (sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.04*pt-1.82559)>100)");
717    
718 buchmann 1.15 flag_this_change(__FUNCTION__,__LINE__,false);//PlottingSetup::RestrictToMassPeak
719     if(!PlottingSetup::RestrictToMassPeak) {
720     predicted = TCut((cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)"));
721     predictedMC = TCut((cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.04*pt-1.82559)>100)"));
722     }
723 fronga 1.9 // TCut predicted=((cutmass&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)")
724     // ||(cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")
725     // ||(cutmass&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)")
726     // ||(sidebandcut&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")
727     // ||(sidebandcut&&cutOSOF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)")
728     // ||(sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)>100)")
729     // ||(sidebandcut&&cutOSSF&&cutnJets&&basiccut&&"((jzb[1]+0.06*pt-2.84727)<-100)"));
730 buchmann 1.7
731     bool doPF=false;
732     bool dolog=true;
733     bool nolog=false;
734    
735 fronga 1.9 // Mll: do not scale
736     make_double_plot("mll",20,50,150,11,nolog,"m_{ll} [GeV]","mll",observed,predicted,data,true);
737     make_double_plot("mll",20,50,150,11,nolog,"m_{ll} [GeV]","mll_MC",observed,predictedMC,mc,true);
738     make_double_plot("met[4]",20,0,400,11,nolog,"pfMET [GeV]","pfMET",observed,predicted,data);
739     make_double_plot("met[4]",20,0,400,11,nolog,"pfMET [GeV]","pfMET_MC",observed,predictedMC,mc);
740     make_double_plot("jetpt[0]",10,0,400,11,nolog,"leading jet p_{T} [GeV]","pfJetGoodPt_0",observed,predicted,data);
741     make_double_plot("jetpt[0]",10,0,400,11,nolog,"leading jet p_{T} [GeV]","pfJetGoodPt_0_MC",observed,predictedMC,mc);
742     make_double_plot("jeteta[0]",10,-5,5,11,nolog,"leading jet #eta","pfJetGoodEta_0",observed,predicted,data);
743     make_double_plot("jeteta[0]",10,-5,5,11,nolog,"leading jet #eta","pfJetGoodEta_0_MC",observed,predictedMC,mc);
744     make_double_plot("pt",10,0,300,11,nolog,"Z p_{T} [GeV]","Zpt",observed,predicted,data);
745     make_double_plot("pt",10,0,300,11,nolog,"Z p_{T} [GeV]","Zpt_MC",observed,predictedMC,mc);
746     make_double_plot("pt1",10,0,200,15,nolog,"p_{T} [GeV]","pt1",observed,predicted,data);
747     make_double_plot("pt1",10,0,200,15,nolog,"p_{T} [GeV]","pt1_MC",observed,predictedMC,mc);
748     make_double_plot("pt2",10,0,200,25,nolog,"p_{T} [GeV]","pt2",observed,predicted,data);
749     make_double_plot("pt2",10,0,200,25,nolog,"p_{T} [GeV]","pt2_MC",observed,predictedMC,mc);
750     make_double_plot("eta1",10,-5,5,11,nolog,"#eta_{1,l}","eta_1",observed,predicted,data);
751     make_double_plot("eta1",10,-5,5,11,nolog,"#eta_{1,l}","eta_1_MC",observed,predictedMC,mc);
752     make_double_plot("eta2",10,-5,5,11,nolog,"#eta_{2,l}","eta_2",observed,predicted,data);
753     make_double_plot("eta2",10,-5,5,11,nolog,"#eta_{2,l}","eta_2_MC",observed,predictedMC,mc);
754     make_double_plot("phi1-phi2",10,-6.0,6.0,11,nolog,"#phi_{1}-#phi_{2}","dphi",observed,predicted,data);
755     make_double_plot("phi1-phi2",10,-6.0,6.0,11,nolog,"#phi_{1}-#phi_{2}","dphi_MC",observed,predictedMC,mc);
756     make_double_plot("pfJetGoodNum",8,0.5,8.5,20,nolog,"nJets","nJets",observed,predicted,data);
757     make_double_plot("pfJetGoodNum",8,0.5,8.5,20,nolog,"nJets","nJets_MC",observed,predictedMC,mc);
758    
759 buchmann 1.16 }