ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/SusyScan/PlotScript/plot50tb.cc
Revision: 1.4
Committed: Sun Feb 13 14:39:33 2011 UTC (14 years, 2 months ago) by auterman
Content type: text/plain
Branch: MAIN
Changes since 1.3: +38 -46 lines
Log Message:
adding tb3 andtb50 masses

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