ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/SusyScan/PlotScript/plot50tb.cc
Revision: 1.6
Committed: Wed Mar 2 13:31:33 2011 UTC (14 years, 2 months ago) by auterman
Content type: text/plain
Branch: MAIN
Changes since 1.5: +96 -47 lines
Log Message:
ARC review improvements

File Contents

# Content
1 #include "plot.h"
2 #include "SusyScan.h"
3 #include "GeneratorMasses.h"
4 #include "PlotTools.h"
5 #include "TheLimits.h"
6 #include "GlobalFunctions.h"
7 #include "StyleSettings.h"
8
9 #include "TRint.h"
10 #include "TROOT.h"
11 #include "TObjArray.h"
12 #include "TStyle.h"
13
14 #include "TChain.h"
15 #include "TFile.h"
16 #include "TGraph.h"
17 #include "TH1.h"
18 #include "TH2.h"
19 #include "TH2F.h"
20 #include "TTree.h"
21 #include "TKey.h"
22 #include "Riostream.h"
23 #include "TCanvas.h"
24 #include "TLegend.h"
25 #include "TLatex.h"
26 #include "TMarker.h"
27
28 #include <string>
29 #include <cmath>
30 #include <stdio.h>
31
32 int plot(int argc, char** argv)
33 {
34 //interactive root session
35 //TApplication theApp("App", 0, 0);
36 if (gROOT->IsBatch()) {
37 fprintf(stderr, "%s: cannot run in batch mode\n", argv[0]);
38 return 1;
39 }
40
41 /*
42 //Style stuff
43 gStyle->SetHistFillColor(0);
44 gStyle->SetPalette(1);
45 gStyle->SetCanvasColor(0);
46 gStyle->SetCanvasBorderMode(0);
47 gStyle->SetPadColor(0);
48 gStyle->SetPadBorderMode(0);
49 gStyle->SetFrameBorderMode(0);
50
51 gStyle->SetTitleFillColor(0);
52 gStyle->SetTitleBorderSize(0);
53 gStyle->SetTitleX(0.10);
54 gStyle->SetTitleY(0.98);
55 gStyle->SetTitleW(0.8);
56 gStyle->SetTitleH(0.06);
57
58 gStyle->SetErrorX(0);
59 gStyle->SetStatColor(0);
60 gStyle->SetStatBorderSize(0);
61 gStyle->SetStatX(0);
62 gStyle->SetStatY(0);
63 gStyle->SetStatW(0);
64 gStyle->SetStatH(0);
65
66 gStyle->SetTitleFont(22);
67 gStyle->SetLabelFont(22,"X");
68 gStyle->SetLabelFont(22,"Y");
69 gStyle->SetLabelFont(22,"Z");
70 gStyle->SetLabelSize(0.03,"X");
71 gStyle->SetLabelSize(0.03,"Y");
72 gStyle->SetLabelSize(0.03,"Z");
73 */
74 util::StyleSettings::paper();
75 gStyle->SetPadBottomMargin(0.18);
76
77 //gROOT->SetStyle("MyStyle");
78 TCanvas * c1 = new TCanvas("c1","c1",600,600);
79 //c1->SetFillStyle ( 4000 );
80 //c1->SetLeftMargin ( 0.15 );
81 //c1->SetRightMargin ( 0.15 );
82 //c1->SetBottomMargin( 0.10 );
83 c1->cd();
84
85 //Get limits and generator masses ---------------------------------------------------
86 TheLimits * genpoints = new TheLimits();
87 //genpoints->Fill(argc, argv);
88 genpoints->Fill("limits_MHT_tb50-20110301/filelist.txt");
89
90 TheLimits * genpointsHT = new TheLimits();
91 genpointsHT->Fill("limits_HT_tb50-20110301/filelist.txt");
92
93
94 //Replace read limits with specific numbers
95 //genpoints->OverwriteLimits("ABCD_MHT");
96
97 genpoints->FillGeneratorMasses("GenScan_tb50.dat");
98 genpoints->match();
99 genpointsHT->FillGeneratorMasses("GenScan_tb50.dat");
100 genpointsHT->match();
101
102 //the plotting ----------------------------------------------------------------------
103 //plotting helper functions
104 PlotTools<SusyScan> * plotTools = new PlotTools<SusyScan>(genpoints->GetScan());
105 PlotTools<SusyScan> * plotToolsHT = new PlotTools<SusyScan>(genpointsHT->GetScan());
106 PlotTools<GeneratorMasses> * plotMasses = new PlotTools<GeneratorMasses>(genpoints->GetGeneratorMasses());
107
108 //iso mass lines
109 TGraph * gl500 = plotMasses->Line(Mzero, Mhalf, MGluino, 500);
110 TGraph * sq500 = plotMasses->Line(Mzero, Mhalf, MSquarkL, 500, 10);
111 sq500->SetLineWidth(2); sq500->SetLineColor(7);
112
113 TGraph * chi100 = plotMasses->Line(Mzero, Mhalf, MChi1, 50, 20);
114 TGraph * cha200 = plotMasses->Line(Mzero, Mhalf, MCha1, 200, 20);
115 cha200->SetLineColor(2);
116
117 //the histograms
118 c1->SetLogz(1);
119 //h->SetMaximum(27);
120 //h->SetMinimum(0.01);
121
122 /**/
123 // cross-section in M0 - M1/2
124 TH2F*hxsec = new TH2F("xsec",";m_{0} [GeV]; m_{1/2} [GeV]; cross section [pb]",
125 40,200,600,26,140,400);
126 plotTools->Area(hxsec, Mzero, Mhalf, Xsection);
127 hxsec->SetMinimum(0.01);
128 //sq500->Draw();
129 //gl500->Draw();
130 hxsec->Draw("colz");
131 c1->SaveAs("results_tb50/Xsection_m0_m12_tb50.pdf");
132 std::string wait;
133 //std::cin>>wait;
134
135 // Observed Limit in M0 - M1/2
136 TH2F*hobslimit = new TH2F("obslimit",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL Observed Limit [pb]",
137 40,200,600,26,140,400);
138 plotTools->Area(hobslimit, Mzero, Mhalf, ObsXsecLimit);
139 hobslimit->SetMinimum(0.01);
140 hobslimit->Draw("colz");
141 c1->SaveAs("results_tb50/ObsLimit_m0_m12_tb50.pdf");
142
143 // Expected Limit in M0 - M1/2
144 TH2F*hexplimit = new TH2F("explimit",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL Expected Limit [pb]",
145 40,200,600,26,140,400);
146 plotTools->Area(hexplimit, Mzero, Mhalf, ExpXsecLimit);
147 hexplimit->SetMinimum(0.01);
148 hexplimit->Draw("colz");
149 c1->SaveAs("results_tb50/ExpLimit_m0_m12_tb50.pdf");
150
151 // Signal Acceptance in M0 - M1/2
152 TH2F*hsigacc = new TH2F("sigacc",";m_{0} [GeV]; m_{1/2} [GeV]; Signal Acceptance",
153 40,200,600,26,140,400);
154 plotTools->Area(hsigacc, Mzero, Mhalf, SignalAcceptance);
155 hsigacc->SetMinimum(0.01);
156 hsigacc->SetMaximum(1.0);
157 hsigacc->Draw("colz");
158 chi100->Draw();
159 cha200->Draw();
160 gl500 ->Draw();
161 sq500 ->Draw();
162 c1->SaveAs("results_tb50/SigAcc_m0_m12_tb50.pdf");
163
164 // Exp. Limit on Number of Signal Events in M0 - M1/2
165 c1->SetLogz(0);
166 TH2F*hexplimitnsig = new TH2F("explimitnsig",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL exp. limit signal events [# ]",
167 40,200,600,26,140,400);
168 plotTools->Area(hexplimitnsig, Mzero, Mhalf, ExpNSignLimit);
169 hexplimitnsig->SetMinimum(0.0);
170 hexplimitnsig->SetMaximum(20);
171 hexplimitnsig->Draw("colz");
172 c1->SaveAs("results_tb50/ExpLimitOnNSig_m0_m12_tb50.pdf");
173
174 // Obs. Limit on Number of Signal Events in M0 - M1/2
175 TH2F*hobslimitnsig = new TH2F("obslimitnsig",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL obs. limit signal events [# ]",
176 40,200,600,26,140,400);
177 plotTools->Area(hobslimitnsig, Mzero, Mhalf, ObsNSignLimit);
178 hobslimitnsig->SetMinimum(0.0);
179 hobslimitnsig->SetMaximum(20);
180 hobslimitnsig->Draw("colz");
181 c1->SaveAs("results_tb50/ObsLimitOnNSig_m0_m12_tb50.pdf");
182
183 c1->SetLogz(0);
184 // Expected Exclusion in M0 - M1/2
185 TH2F*hexpexcl = new TH2F("expexcl",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL Expected Exclusion",
186 40,200,600,26,140,400);
187 plotTools->Area(hexpexcl, Mzero, Mhalf, ExpExclCL);
188 hexpexcl->Draw("colz");
189 c1->SaveAs("results_tb50/ExpExclusion_m0_m12_tb50.pdf");
190
191 // Observed Exclusion in M0 - M1/2
192 TH2F*hobsexcl = new TH2F("obsexcl",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL Observed Exclusion",
193 40,200,600,26,140,400);
194 plotTools->Area(hobsexcl, Mzero, Mhalf, ObsExclCL);
195 hobsexcl->Draw("colz");
196 c1->SaveAs("results_tb50/ObsExclusion_m0_m12_tb50.pdf");
197
198 // Observed Exclusion in M0 - M1/2
199 TH2F*hPLobsexcl = new TH2F("plobsexcl",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL Observed Exclusion",
200 40,200,600,26,140,400);
201 plotTools->Area(hPLobsexcl, Mzero, Mhalf, PLObsExclusion);
202 hPLobsexcl->Draw("colz");
203 c1->SaveAs("results_tb50/PL_ObsExclusion_m0_m12_tb50.pdf");
204
205 // TestContours in M0 - M1/2
206 TH2F*texcl = new TH2F("texcl",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL Expected Exclusion",
207 40,200,600,26,140,400);
208 TH2F*texpexcl=(TH2F*)texcl->Clone();
209 plotToolsHT->Area(texpexcl, Mzero, Mhalf, NLOExpExclCLp1sigma);
210 std::vector<TGraph*> contours = plotTools->GetContours(texpexcl,3);
211 texpexcl->Draw("colz");
212 int col=kBlue-10;
213 for (std::vector<TGraph*>::iterator cont=contours.begin(); cont!=contours.end(); ++cont){
214 if (! *cont) continue;
215 double x, y;
216 (*cont)->GetPoint(0, x, y);
217 (*cont)->SetLineColor(col);
218 (*cont)->Draw("l");
219 TLatex l; l.SetTextSize(0.04); l.SetTextColor(col++);
220 char val[20];
221 sprintf(val,"%d",(int)(cont-contours.begin()));
222 l.DrawLatex(x,y,val);
223 //if (cont-contours.begin()>3) break;
224 }
225 c1->SaveAs("results_tb50/ExclusionTestContours_m0_m12_tb50.pdf");
226
227
228 // Exclusion in M0 - M1/2
229 TH2F*hexcl = new TH2F("hexcl",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL Expected Exclusion",
230 40,200,600,26,140,450);
231 TH2F*hs = new TH2F("hs","",40,200,600,26,140,400);
232 TGraph * gexpexcl = plotTools ->GetContour(hs,Mzero,Mhalf,NLOExpExclCL, 3,0, 2,2);
233 TGraph * gexpexcl_LO = plotTools ->GetContour(hs,Mzero,Mhalf,ExpExclCL, 3,0, 2,4);
234 TGraph * gobsexcl = plotTools ->GetContour(hs,Mzero,Mhalf,NLOObsExclCL, 3,0, 2,1);
235 TGraph * gMCMCexpexcl = plotToolsHT->GetContour(hs,Mzero,Mhalf,MCMCExpExclusion, 3,0, 3,2);
236 TGraph * gMCMCobsexcl = plotToolsHT->GetContour(hs,Mzero,Mhalf,MCMCObsExclusion, 3,0, 3,1);
237 TGraph * gFCexpexclHT = plotToolsHT->GetContour(hs,Mzero,Mhalf,NLOFCExpExclusion, 3,0, 3,2);
238 TGraph * gFCexpexclHT_LO = plotToolsHT->GetContour(hs,Mzero,Mhalf,FCExpExclusion, 3,0, 3,4);
239 TGraph * gFCexpexclMHT = plotTools->GetContour(hs,Mzero,Mhalf,NLOFCExpExclusion, 3,0, 3,2);
240 TGraph * gFCexpexclMHT_LO = plotTools->GetContour(hs,Mzero,Mhalf,FCExpExclusion, 3,0, 3,4);
241 TGraph * gFCobsexclHT = plotToolsHT->GetContour(hs,Mzero,Mhalf,NLOFCObsExclusion, 3,0, 3,1);
242 TGraph * gFCobsexclMHT = plotToolsHT->GetContour(hs,Mzero,Mhalf,NLOFCObsExclusion, 3,0, 3,1);
243 TGraph * gCLsExpExclHT = plotToolsHT->GetContour(hs,Mzero,Mhalf,NLOExpExclCL, 3,0, 1,2);
244 TGraph * gCLsObsExclHT = plotToolsHT->GetContour(hs,Mzero,Mhalf,NLOObsExclCL, 3,0, 1,1);
245 TGraph * gCLsExpExclHT_LO = plotToolsHT->GetContour(hs,Mzero,Mhalf,ExpExclCL, 3,0, 1,4);
246 TGraph * gCLsObsExclHT_LO = plotToolsHT->GetContour(hs,Mzero,Mhalf,ObsExclCL, 3,0, 1,1);
247 TGraph * gCLsExpExclHTm1 = plotToolsHT->GetContour(hs,Mzero,Mhalf,NLOExpExclCLm1sigma,3,0, 5,2);
248 TGraph * gCLsExpExclHTp1 = plotToolsHT->GetContour(hs,Mzero,Mhalf,NLOExpExclCLp1sigma,3,0, 5,2);
249 TGraph * gCLsExpExclMHTm1 = plotTools ->GetContour(hs,Mzero,Mhalf,NLOExpExclCLm1sigma, 3,0, 5,2);
250 TGraph * gCLsExpExclMHTp1 = plotTools ->GetContour(hs,Mzero,Mhalf,NLOExpExclCLp1sigma, 3,0, 5,2);
251 TGraph * gCheck1 = (TGraph*)gobsexcl->Clone();
252 TGraph * gCheck2 = (TGraph*)gexpexcl->Clone();
253 Smooth( gCLsObsExclHT, 33); gCLsObsExclHT->SetLineWidth( 3 );
254 Smooth( gCLsExpExclHT, 33 ); gCLsExpExclHT->SetLineWidth( 3 );
255 Smooth( gCLsObsExclHT_LO, 33); gCLsObsExclHT_LO->SetLineWidth( 3 );
256 Smooth( gCLsExpExclHT_LO, 33 ); gCLsExpExclHT_LO->SetLineWidth( 3 );
257 Smooth( gexpexcl, 33 );
258 Smooth( gobsexcl, 33 );
259 Smooth( gobsexcl, 33 );
260 Smooth( gexpexcl_LO, 33 );
261 Smooth( gFCexpexclHT, 33 );
262 Smooth( gFCexpexclHT_LO, 33 );gFCexpexclHT_LO->SetLineWidth( 3 );
263 Smooth( gFCexpexclMHT, 33 );
264 Smooth( gFCexpexclMHT_LO, 33 );
265 Smooth( gFCobsexclHT, 33 );gFCobsexclHT->SetLineWidth( 3 );
266 Smooth( gFCobsexclMHT, 33 );
267 Smooth( gCLsExpExclHTm1, 33 );
268 Smooth( gCLsExpExclHTp1, 33 );
269 Smooth( gCLsExpExclMHTm1, 33 );
270 Smooth( gCLsExpExclMHTp1, 33 );
271 TGraph * CLsObsNLO = plotToolsHT->ChooseBest(gCLsObsExclHT,gobsexcl, gCLsObsExclHT,gobsexcl);
272 TGraph * CLsExpNLO = plotToolsHT->ChooseBest(gCLsExpExclHT,gexpexcl, gCLsExpExclHT,gexpexcl);
273 TGraph * CLsExpLO = plotToolsHT->ChooseBest(gCLsExpExclHT_LO,gexpexcl_LO, gCLsExpExclHT_LO,gexpexcl_LO);
274 TGraph * FCExpLO = plotToolsHT->ChooseBest(gFCexpexclHT_LO,gFCexpexclMHT_LO,gFCexpexclHT_LO,gFCexpexclMHT_LO);
275 TGraph * FCObsNLO = plotToolsHT->ChooseBest(gFCobsexclHT,gFCobsexclMHT,gFCobsexclHT,gFCobsexclMHT);
276 TGraph * gCLsExpExclp1 = plotToolsHT->ChooseBest(gCLsExpExclHTp1,gCLsExpExclMHTp1, gCLsExpExclHTp1,gCLsExpExclMHTp1);
277 TGraph * gCLsExpExclm1 = plotToolsHT->ChooseBest(gCLsExpExclHTm1,gCLsExpExclMHTm1, gCLsExpExclHTm1,gCLsExpExclMHTm1);
278 TGraph * gCLsExp1Sigma = MakeBand(gCLsExpExclp1, gCLsExpExclm1);
279 hexcl->GetYaxis()->SetTitleOffset(1.3);
280 hexcl->Draw("colz");
281 //gCLsExpExclHTp1->Draw("l");
282 //gCLsExpExclMHTp1->Draw("l");
283 //gCLsExpExclHTm1->Draw("l");
284 //gCLsExpExclMHTm1->Draw("l");
285 gCLsExp1Sigma->Draw("f");
286 //set old exclusion Limits
287 TGraph* LEP_ch = set_lep_ch(50);
288 TGraph* LEP_sl = set_lep_sl(50);//slepton curve
289 TGraph* TEV_sg_cdf = set_tev_sg_cdf(50);//squark gluino cdf
290 TGraph* TEV_sg_d0 = set_tev_sg_d0(50);//squark gluino d0
291 //TGraph* TEV_tlp_cdf = set_tev_tlp_cdf(10);//trilepton cdf
292 //TGraph* TEV_tlp_d0 = set_tev_tlp_d0(10);//trilepton d0
293 TGraph* stau = set_tev_stau(50);//stau
294 TGraph* TEV_sn_d0_1 = set_sneutrino_d0_1(50);
295 TGraph* TEV_sn_d0_2 = set_sneutrino_d0_2(50);
296 TGraphErrors* First = getObserved_NLO_tanBeta50();
297 TGraphErrors* Second = getExpected_NLO_tanBeta50();//getLO_jetMultis();
298 TGraphErrors* Third = getLO_tanBeta50();
299 First->GetXaxis()->SetRangeUser(0,505);
300 First->GetYaxis()->SetRangeUser(80,500);
301 First->GetXaxis()->SetTitle("m_{0} (GeV)");
302 First->GetYaxis()->SetTitle("m_{1/2} (GeV)");
303 TSpline3 *sFirst = new TSpline3("sFirst",First);
304 sFirst->SetLineColor(kBlue);
305 //sFirst->SetLineWidth(3);
306 TSpline3 *sSecond = new TSpline3("sSecond",Second);
307 sSecond->SetLineColor(kBlue);
308 sSecond->SetLineStyle(2);
309 //sSecond->SetLineWidth(3);
310 TSpline3 *sThird = new TSpline3("sThird",Third);
311 sThird->SetLineColor(kBlue);
312 sThird->SetLineStyle(4);
313 //sThird->SetLineWidth(3);
314 TEV_sn_d0_1->Draw("fsame");
315 TEV_sn_d0_2->Draw("fsame");
316 TEV_sg_d0->Draw("fsame");
317 TEV_sg_cdf->Draw("fsame");
318 LEP_ch->Draw("fsame");
319 LEP_sl->Draw("fsame");
320 stau->Draw("fsame");
321 sFirst->Draw("same");
322 sSecond->Draw("same");
323 sThird->Draw("same");
324 TLatex b; b.SetTextSize(0.02); b.SetTextColor(1);
325 //b.DrawLatex( 10,420,"#tilde{#tau} LSP");
326 b.DrawLatex(230,145,"LEP2");
327 //b.DrawLatex( 22,138,"#tilde{l}^{#pm}");
328 //b.DrawLatex(360,110,"LEP2 #tilde{#chi}^{#pm}");
329 //b.DrawLatex(100,140,"CDF");
330 //b.DrawLatex(230,145,"D0 #tilde{g}, #tilde{q}");
331 //b.DrawLatex( 80,180,"D0 #tilde{#nu}");
332 CLsObsNLO->Draw("l");
333 CLsExpNLO->Draw("l");
334 CLsExpLO->Draw("l");
335 FCExpLO->Draw("l");
336 //FCObsNLO->Draw("l");
337
338 //gl500->Draw("c"); gl600->Draw("c"); gl700->Draw("c"); gl800->Draw("c"); gl900->Draw("c"); gl1000->Draw("c");
339 //sq500->Draw("c"); sq600->Draw("c"); sq700->Draw("c"); sq800->Draw("c"); sq900->Draw("c"); sq1000->Draw("c");
340 //TLegend * leg = new TLegend(0.45,0.65,0.84,0.89);
341 //leg->SetBorderSize(0);leg->SetFillColor(0);
342 TLegend * leg = new TLegend(0.6,0.66,0.96,0.90);
343 leg->SetBorderSize(0);leg->SetFillColor(0);leg->SetFillStyle(4000);leg->SetTextFont(42);
344 TGraph * expLeg = (TGraph*)CLsExpNLO->Clone();expLeg->SetFillStyle(gCLsExp1Sigma->GetFillStyle());expLeg->SetFillColor(gCLsExp1Sigma->GetFillColor());
345 leg->SetHeader("CMS preliminary, 95%CL");
346 leg->AddEntry(expLeg, "Expected (CLs, NLO)","l");
347 leg->AddEntry(CLsObsNLO,"Observed (CLs, NLO)","l");
348 leg->AddEntry(CLsExpLO, "Expected (CLs, LO)","l");
349 leg->AddEntry(FCExpLO, "Expected (FC, LO)","l");
350 //if (gobsexcl) leg->AddEntry(gobsexcl,"Observed (MHT, CLs, TLimit)","l");
351 //if (gCLsExpExclHT) leg->AddEntry(expLeg ,"NLO Expected (HT, CLs)","l");
352 //if (gCLsObsExclHT) leg->AddEntry(gCLsObsExclHT,"NLO Observed (HT, CLs)","l");
353 //if (gCLsObsExclHT_LO) leg->AddEntry(gCLsObsExclHT_LO,"LO Observed (HT, CLs)","l");
354 //if (gCLsExpExclHT_LO) leg->AddEntry(gCLsExpExclHT_LO,"LO Expected (HT, CLs)","l");
355 //if (gPLobsexcl) leg->AddEntry(gPLobsexcl,"Observed (PL, RooStat)","l");
356 //if (gPLexpexcl) leg->AddEntry(gPLexpexcl,"Expected (PL, RooStat)","l");
357 //if (gFCobsexcl) leg->AddEntry(gFCobsexcl,"NLO Observed (HT, FC, RooStat)","l");
358 //if (gFCexpexcl) leg->AddEntry(gFCexpexcl,"NLO Expected (HT, FC, RooStat)","l");
359 //if (gMCMCobsexcl) leg->AddEntry(gMCMCobsexcl,"Observed (MHT, MCMC, RooStat)","l");
360 //if (gMCMCexpexcl) leg->AddEntry(gMCMCexpexcl,"LO Expected (HT, MCMC, RooStat)","l");
361 //if (gexpexcl) leg->AddEntry(gexpexcl,"NLO Expected (MHT, CLs)","l");
362 //if (gobsexcl) leg->AddEntry(gobsexcl,"NLO Observed (MHT, CLs)","l");
363 if (sSecond) leg->AddEntry(sSecond,"#alpha_{T} Expected (FC, NLO)");
364 if (sFirst) leg->AddEntry(sFirst, "#alpha_{T} Observed (FC, NLO)");
365 if (sThird) leg->AddEntry(sThird, "#alpha_{T} Expected (FC, LO)");
366 leg->Draw();
367 gPad->RedrawAxis();
368 c1->SaveAs("results_tb50/Exclusion_m0_m12_tb50.pdf");
369
370 // Signal Contamination in M0 - M1/2
371 c1->SetLogz(0);
372 TH2F*hsigcont = new TH2F("sigcont",";m_{0} [GeV]; m_{1/2}; number of signal in bkg yield [events]",
373 40,200,600,26,140,400);
374 plotToolsHT->Area(hsigcont, Mzero, Mhalf, SignalContamination);
375 hsigcont->SetMinimum(0.01);
376 hsigcont->SetMaximum(20);
377 hsigcont->Draw("colz");
378 if (gCLsObsExclHT) gCLsObsExclHT->Draw("l");
379 c1->SaveAs("results_tb50/SignalContamination_HT_m0_m12_tb50.pdf");
380
381 // Signal Contamination in M0 - M1/2
382 c1->SetLogz(0);
383 TH2F*hsigcontMHT = new TH2F("sigcontMHT",";m_{0} [GeV]; m_{1/2}; number of signal in bkg yield [events]",
384 40,200,600,26,140,400);
385 plotTools->Area(hsigcontMHT, Mzero, Mhalf, SignalContamination);
386 hsigcontMHT->SetMinimum(0.01);
387 hsigcontMHT->SetMaximum(20);
388 hsigcontMHT->Draw("colz");
389 if (gobsexcl) gobsexcl->Draw("l");
390 c1->SaveAs("results_tb50/SignalContamination_MHT_m0_m12_tb50.pdf");
391
392 // Signal JEC Uncertainty MHT
393 c1->SetLogz(0);
394 TH2F*hsig_jec_mht = new TH2F("sigjecmht",";m_{0} [GeV]; m_{1/2} [GeV]; Signal JEC uncertainty",
395 40,200,600,26,140,400);
396 plotTools->Area(hsig_jec_mht, Mzero, Mhalf, SignalUncertJEC);
397 hsig_jec_mht->SetMinimum(0.0);
398 hsig_jec_mht->SetMaximum(0.25);
399 hsig_jec_mht->SetContour(10);
400 hsig_jec_mht->Draw("colz");
401 if (gobsexcl) gobsexcl->Draw("l");
402 c1->SaveAs("results_tb50/SigJEC_MHT_m0_m12_tb50.pdf");
403
404 // Signal JEC Uncertainty HT
405 c1->SetLogz(0);
406 TH2F*hsig_jec_ht = new TH2F("sigjecht",";m_{0} [GeV]; m_{1/2} [GeV]; Signal JEC uncertainty",
407 40,200,600,26,140,400);
408 plotTools->Area(hsig_jec_ht, Mzero, Mhalf, SignalUncertJEC);
409 hsig_jec_ht->SetMinimum(0.0);
410 hsig_jec_ht->SetMaximum(0.25);
411 hsig_jec_ht->SetContour(10);
412 hsig_jec_ht->Draw("colz");
413 if (gCLsObsExclHT) gCLsObsExclHT->Draw("l");
414 c1->SaveAs("results_tb50/SigJEC_HT_m0_m12_tb50.pdf");
415
416
417 // Signal MuIso Uncertainty MHT
418 c1->SetLogz(0);
419 TH2F*hsig_MuIso_mht = new TH2F("sigMuIsomht",";m_{0} [GeV]; m_{1/2} [GeV]; Signal #mu_{iso} uncertainty",
420 40,200,600,26,140,400);
421 plotTools->Area(hsig_MuIso_mht, Mzero, Mhalf, SignalUncertMuIso);
422 hsig_MuIso_mht->SetMinimum(0.0);
423 hsig_MuIso_mht->SetMaximum(0.05);
424 hsig_MuIso_mht->SetContour(5);
425 hsig_MuIso_mht->Draw("colz");
426 if (gobsexcl) gobsexcl->Draw("l");
427 c1->SaveAs("results_tb50/SigMuIso_MHT_m0_m12_tb50.pdf");
428
429 // Signal MuIso Uncertainty HT
430 c1->SetLogz(0);
431 TH2F*hsig_MuIso_ht = new TH2F("sigMuIsoht",";m_{0} [GeV]; m_{1/2} [GeV]; Signal #mu_{iso} uncertainty",
432 40,200,600,26,140,400);
433 plotTools->Area(hsig_MuIso_ht, Mzero, Mhalf, SignalUncertMuIso);
434 hsig_MuIso_ht->SetMinimum(0.0);
435 hsig_MuIso_ht->SetMaximum(0.05);
436 hsig_MuIso_ht->SetContour(5);
437 hsig_MuIso_ht->Draw("colz");
438 if (gCLsObsExclHT) gCLsObsExclHT->Draw("l");
439 c1->SaveAs("results_tb50/SigMuIso_HT_m0_m12_tb50.pdf");
440
441
442 // Signal kFactor Uncertainty MHT
443 c1->SetLogz(0);
444 TH2F*hsig_kFactor_mht = new TH2F("sigkFactormht",";m_{0} [GeV]; m_{1/2} [GeV]; Signal #mu_{iso} uncertainty",
445 40,200,600,26,140,400);
446 plotTools->Area(hsig_kFactor_mht, Mzero, Mhalf, SignalUncertKfactor);
447 hsig_kFactor_mht->SetMinimum(0.1);
448 hsig_kFactor_mht->SetMaximum(0.2);
449 hsig_kFactor_mht->SetContour(10);
450 hsig_kFactor_mht->Draw("colz");
451 if (gobsexcl) gobsexcl->Draw("l");
452 c1->SaveAs("results_tb50/SigkFactor_MHT_m0_m12_tb50.pdf");
453
454 // Signal kFactor Uncertainty HT
455 c1->SetLogz(0);
456 TH2F*hsig_kFactor_ht = new TH2F("sigkFactorht",";m_{0} [GeV]; m_{1/2} [GeV]; Signal #mu_{iso} uncertainty",
457 40,200,600,26,140,400);
458 plotTools->Area(hsig_kFactor_ht, Mzero, Mhalf, SignalUncertKfactor);
459 hsig_kFactor_ht->SetMinimum(0.1);
460 hsig_kFactor_ht->SetMaximum(0.2);
461 hsig_kFactor_ht->SetContour(10);
462 hsig_kFactor_ht->Draw("colz");
463 if (gCLsObsExclHT) gCLsObsExclHT->Draw("l");
464 c1->SaveAs("results_tb50/SigkFactor_HT_m0_m12_tb50.pdf");
465
466
467 //-----------------------------------------------------------------------------------
468 c1->SetLogz(1);
469
470 TGraph * mz500 = plotMasses->Line( MSquarkL, MGluino, Mzero, 500, 1);
471 TGraph * mh250 = plotMasses->Line( MSquarkL, MGluino, Mhalf, 250, 1);
472
473 // cross-section in squark - gluino mass
474 TH2F*hxsec_qg = new TH2F("xsec_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; cross section [pb]",
475 40,200,900,30,200,900);
476 plotTools->Area(hxsec_qg, MSquarkL, MGluino, Xsection);
477 hxsec_qg->SetMinimum(0.01);
478 hxsec_qg->Draw("colz");
479 mz500->Draw();
480 mh250->Draw();
481 c1->SaveAs("results_tb50/Xsection_mSql_mGl_tb50.pdf");
482
483 // Observed Limit in squark - gluino mass
484 TH2F*hobslimit_qg = new TH2F("obslimit_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Observed Limit [pb]",
485 40,200,900,30,200,900);
486 plotTools->Area(hobslimit_qg, MSquarkL, MGluino, ObsXsecLimit);
487 hobslimit_qg->SetMinimum(0.01);
488 hobslimit_qg->Draw("colz");
489 c1->SaveAs("results_tb50/ObsLimit_mSql_mGl_tb50.pdf");
490
491 // Expected Limit in squark - gluino mass
492 TH2F*hexplimit_qg = new TH2F("explimit_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Expected Limit [pb]",
493 40,200,900,30,200,900);
494 plotTools->Area(hexplimit_qg, MSquarkL, MGluino, ExpXsecLimit);
495 hexplimit_qg->SetMinimum(0.01);
496 hexplimit_qg->Draw("colz");
497 c1->SaveAs("results_tb50/ExpLimit_mSql_mGl_tb50.pdf");
498
499 // Signal Acceptance in squark - gluino mass
500 TH2F*hsigacc_qg = new TH2F("sigacc_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; Signal Acceptance",
501 40,200,900,30,200,900);
502 plotTools->Area(hsigacc_qg, MSquarkL, MGluino, SignalAcceptance);
503 hsigacc_qg->SetMinimum(0.01);
504 hsigacc_qg->SetMaximum(1.0);
505 hsigacc_qg->Draw("colz");
506 c1->SaveAs("results_tb50/SigAcc_mSql_mGl_tb50.pdf");
507
508 // Exp. Limit on Number of Signal Events in squark - gluino mass
509 c1->SetLogz(0);
510 TH2F*hexplimitnsig_qg = new TH2F("explimitnsig_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL exp. limit signal events [# ]",
511 40,200,900,30,200,900);
512 plotTools->Area(hexplimitnsig_qg, MSquarkL, MGluino, ExpNSignLimit);
513 hexplimitnsig_qg->SetMinimum(0.0);
514 hexplimitnsig_qg->SetMaximum(20);
515 hexplimitnsig_qg->Draw("colz");
516 c1->SaveAs("results_tb50/ExpLimitOnNSig_mSql_mGl_tb50.pdf");
517
518 // Obs. Limit on Number of Signal Events in squark - gluino mass
519 TH2F*hobslimitnsig_qg = new TH2F("obslimitnsig_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL obs. limit signal events [# ]",
520 40,200,900,30,200,900);
521 plotTools->Area(hobslimitnsig_qg, MSquarkL, MGluino, ObsNSignLimit);
522 hobslimitnsig_qg->SetMinimum(0.0);
523 hobslimitnsig_qg->SetMaximum(20);
524 hobslimitnsig_qg->Draw("colz");
525 c1->SaveAs("results_tb50/ObsLimitOnNSig_mSql_mGl_tb50.pdf");
526
527 c1->SetLogz(0);
528 // Expected Exclusion in squark - gluino mass
529 TH2F*hexpexcl_qg = new TH2F("expexcl_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Expected Exclusion",
530 40,200,900,30,200,900);
531 plotTools->Area(hexpexcl_qg, MSquarkL, MGluino, ExpExclCL);
532 hexpexcl_qg->Draw("colz");
533 c1->SaveAs("results_tb50/ExpExclusion_mSql_mGl_tb50.pdf");
534
535 // Observed Exclusion in squark - gluino mass
536 TH2F*hobsexcl_qg = new TH2F("obsexcl_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Observed Exclusion",
537 40,200,900,30,200,900);
538 plotTools->Area(hobsexcl_qg, MSquarkL, MGluino, ObsExclCL);
539 //std::vector<TGraph *> vobsexcl_qg = plotTools->GetContours(hobsexcl_qg);
540 hobsexcl_qg->Draw("colz");
541 //for (std::vector<TGraph *>::iterator g=vobsexcl_qg.begin();g!=vobsexcl_qg.end();++g){
542 // if (! *g) continue;
543 // // (*g)->Draw("l");
544 //}
545 c1->SaveAs("results_tb50/ObsExclusion_mSql_mGl_tb50.pdf");
546
547 // TestContours in M0 - M1/2
548 TH2F*texcl_qg = new TH2F("texcl_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Observed Exclusion",
549 40,200,900,30,200,900);
550 TH2F*tPLobsexcl_qg=(TH2F*)texcl_qg->Clone();
551 plotTools->Area(tPLobsexcl_qg, MSquarkL, MGluino, PLObsExclusion);
552 TH2F*tPLexpexcl_qg=(TH2F*)texcl_qg->Clone();
553 plotTools->Area(tPLexpexcl_qg, MSquarkL, MGluino, PLExpExclusion);
554 //std::vector<TGraph*> contours_qg = plotTools->GetContours(hexpexcl_qg,3);
555 //std::vector<TGraph*> contours_qg = plotTools->GetContours(hobsexcl_qg,3);
556 std::vector<TGraph*> contours_qg = plotTools->GetContours(tPLobsexcl_qg,3);
557 //std::vector<TGraph*> contours_qg = plotTools->GetContours(tPLexpexcl_qg,3);
558 //hPLexpexcl_qg
559 //hexcl_qg->Draw("colz");
560 //hexpexcl_qg->Draw("colz");
561 //hobsexcl_qg->Draw("colz");
562 tPLobsexcl_qg->Draw("colz");
563 int col_gl=kBlue-10;
564 for (std::vector<TGraph*>::iterator cont=contours_qg.begin(); cont!=contours_qg.end(); ++cont){
565 if (! *cont) continue;
566 double x, y;
567 (*cont)->GetPoint(0, x, y);
568 (*cont)->SetLineColor(col_gl);(*cont)->SetLineWidth(3);
569 (*cont)->Draw("l");
570 TLatex l; l.SetTextSize(0.04); l.SetTextColor(col_gl++);
571 char val[20];
572 sprintf(val,"%d",(int)(cont-contours_qg.begin()));
573 l.DrawLatex(x,y,val);
574 if (cont-contours_qg.begin()>3) break;
575 }
576 c1->SaveAs("results_tb50/ExclusionTestContours_mSql_mGl_tb50.pdf");
577
578 // Observed Exclusion in squark - gluino mass
579 TH2F*hPLobsexcl_qg = new TH2F("plobsexcl_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Observed Exclusion",
580 40,200,900,30,200,900);
581 plotTools->Area(hPLobsexcl_qg, MSquarkL, MGluino, PLObsExclusion);
582 //hPLobsexcl_qg->Draw("colz");
583 //c1->SaveAs("results_tb50/PL_ObsExclusion_mSql_mGl_tb50.pdf");
584
585
586
587 // Exclusion in squark - gluino mass ----------------------------------------
588 TH2F*hexcl_qg = new TH2F("hexcl_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Observed Exclusion",
589 40,200,900,30,200,900);
590 TGraph * gexpexcl_qg = plotTools->GetContour(hexcl_qg,MSquarkL,MGluino, NLOExpExclCL, 3,0, 2,2);
591 TGraph * gexpexcl_qg_LO = plotTools->GetContour(hexcl_qg,MSquarkL,MGluino, ExpExclCL, 3,0, 2,4);
592 TGraph * gobsexcl_qg = plotTools->GetContour(hexcl_qg,MSquarkL,MGluino, NLOObsExclCL, 3,0, 2,1);
593 TGraph * gMCMCexpexcl_qg = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,MCMCExpExclusion,3,0, 3,2);
594 TGraph * gMCMCobsexcl_qg = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,MCMCObsExclusion,3,0, 3,1);
595 TGraph * gCLsExpExclHT_qg = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,NLOExpExclCL, 3,0, 1,2);
596 TGraph * gCLsExpExclHT_qg_LO = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,ExpExclCL, 3,0, 1,4);
597 TGraph * gCLsObsExclHT_qg = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,NLOObsExclCL, 3,0, 1,1);
598 TGraph * gCLsExpExclHTm1_qg = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,NLOExpExclCLm1sigma,3,0, 5,2);
599 TGraph * gCLsExpExclHTp1_qg = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,NLOExpExclCLp1sigma,3,0, 5,2);
600 TGraph * gCLsExp1Sigma_qg = MakeBand(gCLsExpExclHTp1_qg, gCLsExpExclHTm1_qg);
601 hexcl_qg->Draw("");
602 //
603 if (gCLsExp1Sigma_qg) gCLsExp1Sigma_qg->Draw("lf");
604 if (gobsexcl_qg) gobsexcl_qg->Draw("l");
605 if (gCLsObsExclHT_qg) gCLsObsExclHT_qg->Draw("l");
606 if (gexpexcl_qg) gexpexcl_qg->Draw("l");
607 if (gexpexcl_qg_LO) gexpexcl_qg_LO->Draw("l");
608 if (gCLsExpExclHT_qg) gCLsExpExclHT_qg->Draw("l");
609 if (gCLsExpExclHT_qg_LO) gCLsExpExclHT_qg_LO->Draw("l");
610 //
611 TLegend * leg_qg = new TLegend(0.45,0.78,0.85,0.89);
612 leg_qg->SetBorderSize(0);leg_qg->SetFillColor(0);leg->SetTextFont(42);
613 TGraph * expLeg_qg = (TGraph*)gCLsExpExclHT_qg->Clone();expLeg_qg->SetFillStyle(gCLsExp1Sigma_qg->GetFillStyle());expLeg_qg->SetFillColor(gCLsExp1Sigma_qg->GetFillColor());
614 if (gobsexcl_qg) leg_qg->AddEntry(gobsexcl_qg,"NLO Observed (MHT, CLs)","l");
615 if (gexpexcl_qg) leg_qg->AddEntry(gexpexcl_qg,"NLO Expected (MHT, CLs)","l");
616 if (gexpexcl_qg_LO) leg_qg->AddEntry(gexpexcl_qg_LO,"LO Expected (MHT, CLs)","l");
617 if (gCLsObsExclHT_qg) leg_qg->AddEntry(gCLsObsExclHT_qg,"NLO Observed (HT, CLs)","l");
618 if (gCLsExpExclHT_qg) leg_qg->AddEntry(expLeg_qg,"NLO Expected (HT, CLs)","lf");
619 if (gCLsExpExclHT_qg_LO) leg_qg->AddEntry(gCLsExpExclHT_qg_LO,"LO Expected (HT, CLs)","l");
620 //if (gPLobsexcl_qg) leg_qg->AddEntry(gPLobsexcl_qg,"Observed (PL, RooStat)","l");
621 //if (gPLexpexcl_qg) leg_qg->AddEntry(gPLexpexcl_qg,"Expected (PL, RooStat)","l");
622 leg_qg->Draw();
623 c1->SaveAs("results_tb50/Exclusion_mSql_mGl_tb50.pdf");
624 //c1->SaveAs("plot_tb10.pdf");
625
626
627
628 //c1->SaveAs("plot_tb50.pdf");
629 c1->SetLogy(1);
630 c1->SetLogx(1);
631 TH2F*hUncertScan = new TH2F("hUncertScan",";relative signal uncertainty; number of signal events",
632 10,0.1,0.6,10,0.9,200);
633 //hUncertScan->GetXaxis()->SetNdivisions(505, false);
634 //hUncertScan->SetMinimum(1);
635 TGraph * gCLsExpUncert = new TGraph(0);
636 TGraph * gCLsObsUncert = new TGraph(0);
637 TGraph * gPLExpUncert = new TGraph(0);
638 TGraph * gPLObsUncert = new TGraph(0);
639 TGraph * gFCExpUncert = new TGraph(0);
640 TGraph * gFCObsUncert = new TGraph(0);
641 TGraph * gMCMCExpUncert= new TGraph(0);
642 TGraph * gMCMCObsUncert= new TGraph(0);
643 plotTools->Graph(gCLsExpUncert, SignalRelUncertainty, ExpNSignLimit,1);
644 plotTools->Graph(gCLsObsUncert, SignalRelUncertainty, ObsNSignLimit,1);
645 plotTools->Graph(gPLExpUncert, SignalRelUncertainty, PLExpNSignLimit,1);
646 plotTools->Graph(gPLObsUncert, SignalRelUncertainty, PLObsNSignLimit, 1);
647 plotTools->Graph(gFCExpUncert, SignalRelUncertainty, FCExpNSignLimit,1);
648 plotTools->Graph(gFCObsUncert, SignalRelUncertainty, FCObsNSignLimit, 1);
649 plotTools->Graph(gMCMCExpUncert,SignalRelUncertainty, MCMCExpNSignLimit,1);
650 plotTools->Graph(gMCMCObsUncert,SignalRelUncertainty, MCMCObsNSignLimit, 1);
651 gCLsExpUncert->SetLineStyle(8);
652 gPLObsUncert->SetLineColor(2);
653 gPLExpUncert->SetLineColor(2); gPLExpUncert->SetLineStyle(8);
654 gFCObsUncert->SetLineColor(3);
655 gFCExpUncert->SetLineColor(3); gFCExpUncert->SetLineStyle(8);
656 gMCMCObsUncert->SetLineColor(4);
657 gMCMCExpUncert->SetLineColor(4); gMCMCExpUncert->SetLineStyle(8);
658 hUncertScan->Draw("h");
659 gCLsExpUncert->Draw("l");
660 gCLsObsUncert->Draw("l");
661 gPLObsUncert->Draw("l");
662 gPLExpUncert->Draw("l");
663 gFCObsUncert->Draw("l");
664 gFCExpUncert->Draw("l");
665 gMCMCObsUncert->Draw("l");
666 gMCMCExpUncert->Draw("l");
667 TLatex l; l.SetTextSize(0.03); l.SetTextColor(1);
668 l.DrawLatex(0.025,25,"excluded");
669 TMarker m; m.SetMarkerStyle(29); m.SetMarkerColor(2);
670 m.DrawMarker(0.128, 28.5);l.DrawLatex(0.14,28.5,"LM1");
671 m.DrawMarker(0.147, 77.4);l.DrawLatex(0.16,77.4,"LM0");
672
673 TLegend * leg_S = new TLegend(0.5,0.14,0.85,0.38);
674 leg_S->SetBorderSize(0);leg_S->SetFillColor(0);
675 leg_S->SetHeader("95% CL upper limits");
676 leg_S->AddEntry(gCLsExpUncert,"Expected (CLs, TLimit)","l");
677 leg_S->AddEntry(gCLsObsUncert,"Observed (CLs, TLimit)","l");
678 leg_S->AddEntry(gPLExpUncert,"Expected (PL, RooStat)","l");
679 leg_S->AddEntry(gPLObsUncert,"Observed (PL, RooStat)","l");
680 leg_S->AddEntry(gFCObsUncert,"Observed (FC, RooStat)","l");
681 leg_S->AddEntry(gFCExpUncert,"Expected (FC, RooStat)","l");
682 leg_S->AddEntry(gMCMCObsUncert,"Observed (MCMC, RooStat)","l");
683 leg_S->AddEntry(gMCMCExpUncert,"Expected (MCMC, RooStat)","l");
684 leg_S->Draw();
685 c1->SaveAs("results_tb50/UncertaintyScan.pdf");
686
687 //theApp.Run();
688 }
689
690
691 int main(int argc, char** argv)
692 {
693 return plot(argc, argv);
694 }