ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/SusyScan/PlotScript/plot3tb.cc
Revision: 1.5
Committed: Tue Feb 22 13:59:19 2011 UTC (14 years, 2 months ago) by auterman
Content type: text/plain
Branch: MAIN
Changes since 1.4: +137 -40 lines
Log Message:
NLO updates

File Contents

# User Rev Content
1 auterman 1.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_tb3/filelist.txt");
84    
85     TheLimits * genpointsHT = new TheLimits();
86     genpointsHT->Fill("limits_HT_tb3/filelist.txt");
87    
88    
89     //Replace read limits with specific numbers
90     //genpoints->OverwriteLimits("ABCD_MHT");
91    
92 auterman 1.4 genpoints->FillGeneratorMasses("GenScan_tb3.dat");
93 auterman 1.1 genpoints->match();
94 auterman 1.4 genpointsHT->FillGeneratorMasses("GenScan_tb3.dat");
95 auterman 1.1 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     50,0,509.9,25,100,350);
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_tb3/Xsection_m0_m12_tb3.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     50,0,509.9,25,100,350);
133     plotTools->Area(hobslimit, Mzero, Mhalf, ObsXsecLimit);
134     hobslimit->SetMinimum(0.01);
135     hobslimit->Draw("colz");
136     c1->SaveAs("results_tb3/ObsLimit_m0_m12_tb3.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     50,0,509.9,25,100,350);
141     plotTools->Area(hexplimit, Mzero, Mhalf, ExpXsecLimit);
142     hexplimit->SetMinimum(0.01);
143     hexplimit->Draw("colz");
144     c1->SaveAs("results_tb3/ExpLimit_m0_m12_tb3.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     50,0,509.9,25,100,350);
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_tb3/SigAcc_m0_m12_tb3.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     50,0,509.9,25,100,350);
163     plotTools->Area(hexplimitnsig, Mzero, Mhalf, ExpNSignLimit);
164     hexplimitnsig->SetMinimum(0.0);
165     hexplimitnsig->SetMaximum(20);
166     hexplimitnsig->Draw("colz");
167     c1->SaveAs("results_tb3/ExpLimitOnNSig_m0_m12_tb3.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     50,0,509.9,25,100,350);
172     plotTools->Area(hobslimitnsig, Mzero, Mhalf, ObsNSignLimit);
173     hobslimitnsig->SetMinimum(0.0);
174     hobslimitnsig->SetMaximum(20);
175     hobslimitnsig->Draw("colz");
176     c1->SaveAs("results_tb3/ObsLimitOnNSig_m0_m12_tb3.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     50,0,509.9,35,100,450);
182     plotTools->Area(hexpexcl, Mzero, Mhalf, ExpExclCL);
183     hexpexcl->Draw("colz");
184     c1->SaveAs("results_tb3/ExpExclusion_m0_m12_tb3.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     50,0,509.9,35,100,450);
189     plotTools->Area(hobsexcl, Mzero, Mhalf, ObsExclCL);
190     hobsexcl->Draw("colz");
191     c1->SaveAs("results_tb3/ObsExclusion_m0_m12_tb3.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     50,0,509.9,35,100,450);
196     plotTools->Area(hPLobsexcl, Mzero, Mhalf, PLObsExclusion);
197     hPLobsexcl->Draw("colz");
198     c1->SaveAs("results_tb3/PL_ObsExclusion_m0_m12_tb3.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     50,0,509.9,35,100,450);
203     TH2F*texpexcl=(TH2F*)texcl->Clone();
204 auterman 1.5 plotTools->Area(texpexcl, Mzero, Mhalf, NLOExpExclCL);
205 auterman 1.1 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_tb3/ExclusionTestContours_m0_m12_tb3.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     50,0,509.9,35,100,450);
233 auterman 1.5 TGraph * gexpexcl = plotTools ->GetContour(hexcl,Mzero,Mhalf,NLOExpExclCL, 3,2, 2,2);
234     TGraph * gobsexcl = plotTools ->GetContour(hexcl,Mzero,Mhalf,NLOObsExclCL, 3,2, 2,1);
235 auterman 1.1 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 auterman 1.5 TGraph * gCLsExpExclHT = plotToolsHT ->GetContour(hexcl,Mzero,Mhalf,NLOExpExclCL, 3,0, 1,2);
238     TGraph * gCLsObsExclHT = plotToolsHT ->GetContour(hexcl,Mzero,Mhalf,NLOObsExclCL, 3,0, 1,1);
239     TGraph * gCLsExpExclHT_LO = plotToolsHT ->GetContour(hexcl,Mzero,Mhalf,ExpExclCL, 3,0, 1,4);
240     TGraph * gCLsObsExclHT_LO = plotToolsHT ->GetContour(hexcl,Mzero,Mhalf,ObsExclCL, 3,0, 1,1);
241     TGraph * gCLsExpExclHTm1 = plotToolsHT ->GetContour(hexcl,Mzero,Mhalf,NLOExpExclCLm1sigma,3,0, 5,2);
242     TGraph * gCLsExpExclHTp1 = plotToolsHT ->GetContour(hexcl,Mzero,Mhalf,NLOExpExclCLp1sigma,3,0, 5,2);
243     //TGraph * tt=(TGraph * )gCLsObsExclHT->Clone();
244     Smooth( gCLsObsExclHT_LO, 33); gCLsExpExclHT_LO->SetLineWidth( 3 );
245     Smooth( gCLsExpExclHT_LO, 33 );
246     Smooth( gCLsObsExclHT, 33); gCLsObsExclHT->SetLineWidth( 3 );
247     Smooth( gCLsExpExclHT, 33 ); gCLsExpExclHT->SetLineWidth( 3 );
248     Smooth( gexpexcl, 33 );
249     Smooth( gobsexcl, 33 );
250     Smooth( gMCMCexpexcl, 33 );
251     Smooth( gCLsExpExclHTm1, 33 );
252     Smooth( gCLsExpExclHTp1, 33 );
253 auterman 1.1 TGraph * gCLsExp1Sigma = MakeBand(gCLsExpExclHTp1, gCLsExpExclHTm1);
254     hexcl->Draw("colz");
255     //set old exclusion Limits
256 auterman 1.3 TGraph* LEP_ch = set_lep_ch(3);
257     TGraph* LEP_sl = set_lep_sl(3);//slepton curve
258     TGraph* TEV_sg_cdf = set_tev_sg_cdf(3);//squark gluino cdf
259     TGraph* TEV_sg_d0 = set_tev_sg_d0(3);//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(3);//stau
263     TGraph* TEV_sn_d0_1 = set_sneutrino_d0_1(3);
264     TGraph* TEV_sn_d0_2 = set_sneutrino_d0_2(3);
265 auterman 1.2 TGraphErrors* First = getObserved_NLO_tanBeta3();
266     TGraphErrors* Second = getExpected_NLO_tanBeta3();//getLO_jetMultis();
267     TGraphErrors* Third = getLO_tanBeta3();
268 auterman 1.1 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 auterman 1.5 //sFirst->SetLineWidth(3);
275 auterman 1.1 TSpline3 *sSecond = new TSpline3("sSecond",Second);
276     sSecond->SetLineColor(kBlue);
277     sSecond->SetLineStyle(2);
278 auterman 1.5 //sSecond->SetLineWidth(3);
279 auterman 1.1 TSpline3 *sThird = new TSpline3("sThird",Third);
280 auterman 1.5 sThird->SetLineColor(kBlue);
281 auterman 1.1 sThird->SetLineStyle(4);
282 auterman 1.5 //sThird->SetLineWidth(3);
283     if (gCLsExp1Sigma) gCLsExp1Sigma->Draw("lf");
284 auterman 1.1 TEV_sn_d0_1->Draw("fsame");
285     TEV_sn_d0_2->Draw("fsame");
286 auterman 1.4 TEV_sg_d0->Draw("fsame");
287     TEV_sg_cdf->Draw("fsame");
288 auterman 1.1 LEP_ch->Draw("fsame");
289     LEP_sl->Draw("fsame");
290     stau->Draw("fsame");
291     sFirst->Draw("same");
292     sSecond->Draw("same");
293 auterman 1.2 sThird->Draw("same");
294 auterman 1.5 if (gexpexcl) gexpexcl->Draw("l");
295     if (gobsexcl) gobsexcl->Draw("l");
296     if (gCLsExpExclHT) gCLsExpExclHT->Draw("l");
297     if (gMCMCexpexcl) gMCMCexpexcl->Draw("l");
298     if (gCLsObsExclHT) gCLsObsExclHT->Draw("l");
299     if (gCLsExpExclHT_LO) gCLsExpExclHT_LO->Draw("l");
300    
301 auterman 1.1 TLatex b; b.SetTextSize(0.02); b.SetTextColor(1);
302     b.DrawLatex( 10,420,"#tilde{#tau} LSP");
303     b.DrawLatex( 6,150,"LEP2");
304     b.DrawLatex( 22,138,"#tilde{l}^{#pm}");
305     b.DrawLatex(360,110,"LEP2 #tilde{#chi}^{#pm}");
306 auterman 1.4 //b.DrawLatex(100,140,"CDF");
307     //b.DrawLatex(248,129,"D0 #tilde{g}, #tilde{q}");
308 auterman 1.1 b.DrawLatex( 80,180,"D0 #tilde{#nu}");
309     TLegend * leg = new TLegend(0.45,0.7,0.85,0.89);
310     leg->SetBorderSize(0);leg->SetFillColor(0);
311 auterman 1.5 TGraph * expLeg = (TGraph*)gCLsExpExclHT->Clone();expLeg->SetFillStyle(gCLsExp1Sigma->GetFillStyle());expLeg->SetFillColor(gCLsExp1Sigma->GetFillColor());
312     if (gCLsExpExclHT) leg->AddEntry(expLeg ,"NLO Expected (HT, CLs)","lf");
313     if (gCLsObsExclHT) leg->AddEntry(gCLsObsExclHT,"NLO Observed (HT, CLs)","l");
314     if (gCLsExpExclHT_LO) leg->AddEntry(gCLsExpExclHT_LO,"LO Expected (HT, CLs)","l");
315 auterman 1.1 //if (gPLobsexcl) leg->AddEntry(gPLobsexcl,"Observed (PL, RooStat)","l");
316     //if (gPLexpexcl) leg->AddEntry(gPLexpexcl,"Expected (PL, RooStat)","l");
317     //if (gFCobsexcl) leg->AddEntry(gFCobsexcl,"Observed (FC, RooStat)","l");
318     //if (gFCexpexcl) leg->AddEntry(gFCexpexcl,"Expected (FC, RooStat)","l");
319     //if (gMCMCobsexcl) leg->AddEntry(gMCMCobsexcl,"Observed (MHT, MCMC, RooStat)","l");
320     if (gMCMCexpexcl) leg->AddEntry(gMCMCexpexcl,"LO Expected (HT, MCMC, RooStat)","l");
321 auterman 1.5 if (gexpexcl) leg->AddEntry(gexpexcl,"NLO Expected (MHT, CLs, TLimit)","l");
322     if (gobsexcl) leg->AddEntry(gobsexcl,"NLO Observed (MHT, CLs, TLimit)","l");
323     if (sSecond) leg->AddEntry(sSecond,"NLO #alpha_{T} Expected");
324     if (sFirst) leg->AddEntry(sFirst, "NLO #alpha_{T} Observed");
325     if (sThird) leg->AddEntry(sThird,"LO #alpha_{T} Expected");
326 auterman 1.1 leg->Draw();
327     gPad->RedrawAxis();
328     c1->SaveAs("results_tb3/Exclusion_m0_m12_tb3.pdf");
329    
330 auterman 1.4 plotToolsHT->Print(Xsection, Mzero,Mhalf,gCLsObsExclHT, 10);
331    
332 auterman 1.1 // Signal Contamination in M0 - M1/2
333     c1->SetLogz(0);
334     TH2F*hsigcont = new TH2F("sigcont",";m_{0} [GeV]; m_{1/2}; number of signal in bkg yield [events]",
335     50,0,509.9,25,100,350);
336     plotToolsHT->Area(hsigcont, Mzero, Mhalf, SignalContamination);
337     hsigcont->SetMinimum(0.01);
338     hsigcont->SetMaximum(20);
339     hsigcont->Draw("colz");
340     if (gCLsObsExclHT) gCLsObsExclHT->Draw("l");
341     c1->SaveAs("results_tb3/SignalContamination_HT_m0_m12_tb3.pdf");
342    
343     // Signal Contamination in M0 - M1/2
344     c1->SetLogz(0);
345     TH2F*hsigcontMHT = new TH2F("sigcontMHT",";m_{0} [GeV]; m_{1/2}; number of signal in bkg yield [events]",
346     50,0,509.9,25,100,350);
347     plotTools->Area(hsigcontMHT, Mzero, Mhalf, SignalContamination);
348     hsigcontMHT->SetMinimum(0.01);
349     hsigcontMHT->SetMaximum(20);
350     hsigcontMHT->Draw("colz");
351     if (gobsexcl) gobsexcl->Draw("l");
352     c1->SaveAs("results_tb3/SignalContamination_MHT_m0_m12_tb3.pdf");
353    
354 auterman 1.5
355     // Signal JEC Uncertainty MHT
356     c1->SetLogz(0);
357     TH2F*hsig_jec_mht = new TH2F("sigjecmht",";m_{0} [GeV]; m_{1/2} [GeV]; Signal JEC uncertainty",
358     50,0,509.9,25,100,350);
359     plotTools->Area(hsig_jec_mht, Mzero, Mhalf, SignalUncertJEC);
360     hsig_jec_mht->SetMinimum(0.0);
361     hsig_jec_mht->SetMaximum(0.25);
362     hsig_jec_mht->SetContour(10);
363     hsig_jec_mht->Draw("colz");
364     if (gobsexcl) gobsexcl->Draw("l");
365     c1->SaveAs("results_tb3/SigJEC_MHT_m0_m12_tb3.pdf");
366    
367     // Signal JEC Uncertainty HT
368     c1->SetLogz(0);
369     TH2F*hsig_jec_ht = new TH2F("sigjecht",";m_{0} [GeV]; m_{1/2} [GeV]; Signal JEC uncertainty",
370     50,0,509.9,25,100,350);
371     plotTools->Area(hsig_jec_ht, Mzero, Mhalf, SignalUncertJEC);
372     hsig_jec_ht->SetMinimum(0.0);
373     hsig_jec_ht->SetMaximum(0.25);
374     hsig_jec_ht->SetContour(10);
375     hsig_jec_ht->Draw("colz");
376     if (gCLsObsExclHT) gCLsObsExclHT->Draw("l");
377     c1->SaveAs("results_tb3/SigJEC_HT_m0_m12_tb3.pdf");
378    
379 auterman 1.1
380 auterman 1.5 // Signal MuIso Uncertainty MHT
381     c1->SetLogz(0);
382     TH2F*hsig_MuIso_mht = new TH2F("sigMuIsomht",";m_{0} [GeV]; m_{1/2} [GeV]; Signal #mu_{iso} uncertainty",
383     50,0,509.9,25,100,350);
384     plotTools->Area(hsig_MuIso_mht, Mzero, Mhalf, SignalUncertMuIso);
385     hsig_MuIso_mht->SetMinimum(0.0);
386     hsig_MuIso_mht->SetMaximum(0.05);
387     hsig_MuIso_mht->SetContour(5);
388     hsig_MuIso_mht->Draw("colz");
389     if (gobsexcl) gobsexcl->Draw("l");
390     c1->SaveAs("results_tb3/SigMuIso_MHT_m0_m12_tb3.pdf");
391    
392     // Signal MuIso Uncertainty HT
393     c1->SetLogz(0);
394     TH2F*hsig_MuIso_ht = new TH2F("sigMuIsoht",";m_{0} [GeV]; m_{1/2} [GeV]; Signal #mu_{iso} uncertainty",
395     50,0,509.9,25,100,350);
396     plotTools->Area(hsig_MuIso_ht, Mzero, Mhalf, SignalUncertMuIso);
397     hsig_MuIso_ht->SetMinimum(0.0);
398     hsig_MuIso_ht->SetMaximum(0.05);
399     hsig_MuIso_ht->SetContour(5);
400     hsig_MuIso_ht->Draw("colz");
401     if (gCLsObsExclHT) gCLsObsExclHT->Draw("l");
402     c1->SaveAs("results_tb3/SigMuIso_HT_m0_m12_tb3.pdf");
403    
404    
405     // Signal kFactor Uncertainty MHT
406     c1->SetLogz(0);
407     TH2F*hsig_kFactor_mht = new TH2F("sigkFactormht",";m_{0} [GeV]; m_{1/2} [GeV]; Signal #mu_{iso} uncertainty",
408     50,0,509.9,25,100,350);
409     plotTools->Area(hsig_kFactor_mht, Mzero, Mhalf, SignalUncertKfactor);
410     hsig_kFactor_mht->SetMinimum(0.1);
411     hsig_kFactor_mht->SetMaximum(0.2);
412     hsig_kFactor_mht->SetContour(10);
413     hsig_kFactor_mht->Draw("colz");
414     if (gobsexcl) gobsexcl->Draw("l");
415     c1->SaveAs("results_tb3/SigkFactor_MHT_m0_m12_tb3.pdf");
416    
417     // Signal kFactor Uncertainty HT
418     c1->SetLogz(0);
419     TH2F*hsig_kFactor_ht = new TH2F("sigkFactorht",";m_{0} [GeV]; m_{1/2} [GeV]; Signal #mu_{iso} uncertainty",
420     50,0,509.9,25,100,350);
421     plotTools->Area(hsig_kFactor_ht, Mzero, Mhalf, SignalUncertKfactor);
422     hsig_kFactor_ht->SetMinimum(0.1);
423     hsig_kFactor_ht->SetMaximum(0.2);
424     hsig_kFactor_ht->SetContour(10);
425     hsig_kFactor_ht->Draw("colz");
426     if (gCLsObsExclHT) gCLsObsExclHT->Draw("l");
427     c1->SaveAs("results_tb3/SigkFactor_HT_m0_m12_tb3.pdf");
428    
429 auterman 1.1 //-----------------------------------------------------------------------------------
430     c1->SetLogz(1);
431    
432     TGraph * mz500 = plotMasses->Line( MSquarkL, MGluino, Mzero, 500, 1);
433     TGraph * mh250 = plotMasses->Line( MSquarkL, MGluino, Mhalf, 250, 1);
434    
435     // cross-section in squark - gluino mass
436     TH2F*hxsec_qg = new TH2F("xsec_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; cross section [pb]",
437 auterman 1.4 60,200,800,40,200,900);
438 auterman 1.1 plotTools->Area(hxsec_qg, MSquarkL, MGluino, Xsection);
439     hxsec_qg->SetMinimum(0.01);
440     hxsec_qg->Draw("colz");
441     mz500->Draw();
442     mh250->Draw();
443     c1->SaveAs("results_tb3/Xsection_mSql_mGl_tb3.pdf");
444    
445     // Observed Limit in squark - gluino mass
446     TH2F*hobslimit_qg = new TH2F("obslimit_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Observed Limit [pb]",
447 auterman 1.4 60,200,800,40,200,900);
448 auterman 1.1 plotTools->Area(hobslimit_qg, MSquarkL, MGluino, ObsXsecLimit);
449     hobslimit_qg->SetMinimum(0.01);
450     hobslimit_qg->Draw("colz");
451     c1->SaveAs("results_tb3/ObsLimit_mSql_mGl_tb3.pdf");
452    
453     // Expected Limit in squark - gluino mass
454     TH2F*hexplimit_qg = new TH2F("explimit_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Expected Limit [pb]",
455 auterman 1.4 60,200,800,40,200,900);
456 auterman 1.1 plotTools->Area(hexplimit_qg, MSquarkL, MGluino, ExpXsecLimit);
457     hexplimit_qg->SetMinimum(0.01);
458     hexplimit_qg->Draw("colz");
459     c1->SaveAs("results_tb3/ExpLimit_mSql_mGl_tb3.pdf");
460    
461     // Signal Acceptance in squark - gluino mass
462     TH2F*hsigacc_qg = new TH2F("sigacc_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; Signal Acceptance",
463 auterman 1.4 60,200,800,40,200,900);
464 auterman 1.1 plotTools->Area(hsigacc_qg, MSquarkL, MGluino, SignalAcceptance);
465     hsigacc_qg->SetMinimum(0.01);
466     hsigacc_qg->SetMaximum(1.0);
467     hsigacc_qg->Draw("colz");
468     c1->SaveAs("results_tb3/SigAcc_mSql_mGl_tb3.pdf");
469    
470     // Exp. Limit on Number of Signal Events in squark - gluino mass
471     c1->SetLogz(0);
472     TH2F*hexplimitnsig_qg = new TH2F("explimitnsig_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL exp. limit signal events [# ]",
473 auterman 1.4 60,200,800,40,200,900);
474 auterman 1.1 plotTools->Area(hexplimitnsig_qg, MSquarkL, MGluino, ExpNSignLimit);
475     hexplimitnsig_qg->SetMinimum(0.0);
476     hexplimitnsig_qg->SetMaximum(20);
477     hexplimitnsig_qg->Draw("colz");
478     c1->SaveAs("results_tb3/ExpLimitOnNSig_mSql_mGl_tb3.pdf");
479    
480     // Obs. Limit on Number of Signal Events in squark - gluino mass
481     TH2F*hobslimitnsig_qg = new TH2F("obslimitnsig_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL obs. limit signal events [# ]",
482 auterman 1.4 60,200,800,40,200,900);
483 auterman 1.1 plotTools->Area(hobslimitnsig_qg, MSquarkL, MGluino, ObsNSignLimit);
484     hobslimitnsig_qg->SetMinimum(0.0);
485     hobslimitnsig_qg->SetMaximum(20);
486     hobslimitnsig_qg->Draw("colz");
487     c1->SaveAs("results_tb3/ObsLimitOnNSig_mSql_mGl_tb3.pdf");
488    
489     c1->SetLogz(0);
490     // Expected Exclusion in squark - gluino mass
491     TH2F*hexpexcl_qg = new TH2F("expexcl_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Expected Exclusion",
492 auterman 1.4 60,200,800,40,200,900);
493 auterman 1.1 plotTools->Area(hexpexcl_qg, MSquarkL, MGluino, ExpExclCL);
494     hexpexcl_qg->Draw("colz");
495     c1->SaveAs("results_tb3/ExpExclusion_mSql_mGl_tb3.pdf");
496    
497     // Observed Exclusion in squark - gluino mass
498     TH2F*hobsexcl_qg = new TH2F("obsexcl_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Observed Exclusion",
499 auterman 1.4 60,200,800,40,200,900);
500 auterman 1.1 plotTools->Area(hobsexcl_qg, MSquarkL, MGluino, ObsExclCL);
501     //std::vector<TGraph *> vobsexcl_qg = plotTools->GetContours(hobsexcl_qg);
502     hobsexcl_qg->Draw("colz");
503     //for (std::vector<TGraph *>::iterator g=vobsexcl_qg.begin();g!=vobsexcl_qg.end();++g){
504     // if (! *g) continue;
505     // // (*g)->Draw("l");
506     //}
507     c1->SaveAs("results_tb3/ObsExclusion_mSql_mGl_tb3.pdf");
508    
509     // TestContours in M0 - M1/2
510     TH2F*texcl_qg = new TH2F("texcl_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Observed Exclusion",
511 auterman 1.4 60,200,800,40,200,900);
512 auterman 1.1 TH2F*tPLobsexcl_qg=(TH2F*)texcl_qg->Clone();
513     plotTools->Area(tPLobsexcl_qg, MSquarkL, MGluino, PLObsExclusion);
514     TH2F*tPLexpexcl_qg=(TH2F*)texcl_qg->Clone();
515     plotTools->Area(tPLexpexcl_qg, MSquarkL, MGluino, PLExpExclusion);
516     //std::vector<TGraph*> contours_qg = plotTools->GetContours(hexpexcl_qg,3);
517     //std::vector<TGraph*> contours_qg = plotTools->GetContours(hobsexcl_qg,3);
518     std::vector<TGraph*> contours_qg = plotTools->GetContours(tPLobsexcl_qg,3);
519     //std::vector<TGraph*> contours_qg = plotTools->GetContours(tPLexpexcl_qg,3);
520     //hPLexpexcl_qg
521     //hexcl_qg->Draw("colz");
522     //hexpexcl_qg->Draw("colz");
523     //hobsexcl_qg->Draw("colz");
524     tPLobsexcl_qg->Draw("colz");
525     int col_gl=kBlue-10;
526     for (std::vector<TGraph*>::iterator cont=contours_qg.begin(); cont!=contours_qg.end(); ++cont){
527     if (! *cont) continue;
528     double x, y;
529     (*cont)->GetPoint(0, x, y);
530     (*cont)->SetLineColor(col_gl);(*cont)->SetLineWidth(3);
531     (*cont)->Draw("l");
532     TLatex l; l.SetTextSize(0.04); l.SetTextColor(col_gl++);
533     char val[20];
534     sprintf(val,"%d",(int)(cont-contours_qg.begin()));
535     l.DrawLatex(x,y,val);
536     if (cont-contours_qg.begin()>3) break;
537     }
538     c1->SaveAs("results_tb3/ExclusionTestContours_mSql_mGl_tb3.pdf");
539    
540     // Observed Exclusion in squark - gluino mass
541     TH2F*hPLobsexcl_qg = new TH2F("plobsexcl_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Observed Exclusion",
542 auterman 1.4 60,200,800,40,200,900);
543 auterman 1.1 plotTools->Area(hPLobsexcl_qg, MSquarkL, MGluino, PLObsExclusion);
544     //hPLobsexcl_qg->Draw("colz");
545     //c1->SaveAs("results_tb3/PL_ObsExclusion_mSql_mGl_tb3.pdf");
546    
547    
548    
549     TH2F*hexcl_qg = new TH2F("hexcl_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Observed Exclusion",
550 auterman 1.4 50,200,800,30,200,900);
551 auterman 1.5 TGraph * gexpexcl_qg = plotTools->GetContour(hexcl_qg,MSquarkL,MGluino,NLOExpExclCL, 3,0, 2,2);
552     TGraph * gexpexcl_qg_LO = plotTools->GetContour(hexcl_qg,MSquarkL,MGluino,ExpExclCL, 3,0, 2,4);
553     TGraph * gobsexcl_qg = plotTools->GetContour(hexcl_qg,MSquarkL,MGluino,NLOObsExclCL, 3,0, 2,1);
554 auterman 1.4 TGraph * gMCMCexpexcl_qg = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,MCMCExpExclusion,3,0, 3,2);
555     TGraph * gMCMCobsexcl_qg = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,MCMCObsExclusion,3,0, 3,1);
556 auterman 1.5 TGraph * gCLsExpExclHT_qg = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,NLOExpExclCL, 3,0, 1,2);
557     TGraph * gCLsExpExclHT_qg_LO = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,ExpExclCL, 3,0, 1,4);
558     TGraph * gCLsObsExclHT_qg = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,NLOObsExclCL, 3,0, 1,1);
559     TGraph * gCLsExpExclHTm1_qg = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,NLOExpExclCLm1sigma,3,0, 5,2);
560     TGraph * gCLsExpExclHTp1_qg = plotToolsHT->GetContour(hexcl_qg,MSquarkL,MGluino,NLOExpExclCLp1sigma,3,0, 5,2);
561     Smooth(gexpexcl_qg, 11);
562     Smooth(gobsexcl_qg, 11);
563     Smooth(gCLsExpExclHT_qg, 11);
564     Smooth(gCLsObsExclHT_qg, 11);
565     Smooth(gCLsExpExclHTm1_qg, 11);
566     Smooth(gCLsExpExclHTp1_qg, 11);
567 auterman 1.4 TGraph * gCLsExp1Sigma_qg = MakeBand(gCLsExpExclHTp1_qg, gCLsExpExclHTm1_qg);
568 auterman 1.1 hexcl_qg->Draw("");
569 auterman 1.4 //
570     if (gCLsExp1Sigma_qg) gCLsExp1Sigma_qg->Draw("lf");
571     if (gobsexcl_qg) gobsexcl_qg->Draw("l");
572 auterman 1.1 if (gCLsObsExclHT_qg) gCLsObsExclHT_qg->Draw("l");
573 auterman 1.4 if (gexpexcl_qg) gexpexcl_qg->Draw("l");
574 auterman 1.1 if (gCLsExpExclHT_qg) gCLsExpExclHT_qg->Draw("l");
575 auterman 1.5 if (gexpexcl_qg_LO) gexpexcl_qg_LO->Draw("l");
576     if (gCLsExpExclHT_qg_LO) gCLsExpExclHT_qg_LO->Draw("l");
577 auterman 1.4 //
578 auterman 1.1 TLegend * leg_qg = new TLegend(0.45,0.78,0.85,0.89);
579     leg_qg->SetBorderSize(0);leg_qg->SetFillColor(0);
580 auterman 1.5 TGraph * expLeg_qg = (TGraph*)gCLsExpExclHT_qg->Clone();expLeg_qg->SetFillStyle(gCLsExp1Sigma_qg->GetFillStyle());expLeg_qg->SetFillColor(gCLsExp1Sigma_qg->GetFillColor());
581     if (gobsexcl_qg) leg_qg->AddEntry(gobsexcl_qg,"NLO Observed (MHT, CLs)","l");
582     if (gexpexcl_qg) leg_qg->AddEntry(gexpexcl_qg,"NLO Expected (MHT, CLs)","l");
583     if (gexpexcl_qg_LO) leg_qg->AddEntry(gexpexcl_qg_LO,"LO Expected (MHT, CLs)","l");
584     if (gCLsObsExclHT_qg) leg_qg->AddEntry(gCLsObsExclHT_qg,"NLO Observed (HT, CLs)","l");
585     if (gCLsExpExclHT_qg) leg_qg->AddEntry(expLeg_qg,"NLO Expected (HT, CLs)","lf");
586     if (gCLsExpExclHT_qg_LO) leg_qg->AddEntry(gCLsExpExclHT_qg_LO,"LO Expected (HT, CLs)","l");
587 auterman 1.1 //if (gPLobsexcl_qg) leg_qg->AddEntry(gPLobsexcl_qg,"Observed (PL, RooStat)","l");
588     //if (gPLexpexcl_qg) leg_qg->AddEntry(gPLexpexcl_qg,"Expected (PL, RooStat)","l");
589     leg_qg->Draw();
590     c1->SaveAs("results_tb3/Exclusion_mSql_mGl_tb3.pdf");
591 auterman 1.4 //c1->SaveAs("plot_tb10.pdf");
592    
593    
594 auterman 1.1
595     c1->SetLogy(1);
596     c1->SetLogx(1);
597     TH2F*hUncertScan = new TH2F("hUncertScan",";relative signal uncertainty; number of signal events",
598     10,0.1,0.6,10,0.9,200);
599     //hUncertScan->GetXaxis()->SetNdivisions(505, false);
600     //hUncertScan->SetMinimum(1);
601     TGraph * gCLsExpUncert = new TGraph(0);
602     TGraph * gCLsObsUncert = new TGraph(0);
603     TGraph * gPLExpUncert = new TGraph(0);
604     TGraph * gPLObsUncert = new TGraph(0);
605     TGraph * gFCExpUncert = new TGraph(0);
606     TGraph * gFCObsUncert = new TGraph(0);
607     TGraph * gMCMCExpUncert= new TGraph(0);
608     TGraph * gMCMCObsUncert= new TGraph(0);
609     plotTools->Graph(gCLsExpUncert, SignalRelUncertainty, ExpNSignLimit,1);
610     plotTools->Graph(gCLsObsUncert, SignalRelUncertainty, ObsNSignLimit,1);
611     plotTools->Graph(gPLExpUncert, SignalRelUncertainty, PLExpNSignLimit,1);
612     plotTools->Graph(gPLObsUncert, SignalRelUncertainty, PLObsNSignLimit, 1);
613     plotTools->Graph(gFCExpUncert, SignalRelUncertainty, FCExpNSignLimit,1);
614     plotTools->Graph(gFCObsUncert, SignalRelUncertainty, FCObsNSignLimit, 1);
615     plotTools->Graph(gMCMCExpUncert,SignalRelUncertainty, MCMCExpNSignLimit,1);
616     plotTools->Graph(gMCMCObsUncert,SignalRelUncertainty, MCMCObsNSignLimit, 1);
617     gCLsExpUncert->SetLineStyle(8);
618     gPLObsUncert->SetLineColor(2);
619     gPLExpUncert->SetLineColor(2); gPLExpUncert->SetLineStyle(8);
620     gFCObsUncert->SetLineColor(3);
621     gFCExpUncert->SetLineColor(3); gFCExpUncert->SetLineStyle(8);
622     gMCMCObsUncert->SetLineColor(4);
623     gMCMCExpUncert->SetLineColor(4); gMCMCExpUncert->SetLineStyle(8);
624     hUncertScan->Draw("h");
625     gCLsExpUncert->Draw("l");
626     gCLsObsUncert->Draw("l");
627     gPLObsUncert->Draw("l");
628     gPLExpUncert->Draw("l");
629     gFCObsUncert->Draw("l");
630     gFCExpUncert->Draw("l");
631     gMCMCObsUncert->Draw("l");
632     gMCMCExpUncert->Draw("l");
633     TLatex l; l.SetTextSize(0.03); l.SetTextColor(1);
634     l.DrawLatex(0.025,25,"excluded");
635     TMarker m; m.SetMarkerStyle(29); m.SetMarkerColor(2);
636     m.DrawMarker(0.128, 28.5);l.DrawLatex(0.14,28.5,"LM1");
637     m.DrawMarker(0.147, 77.4);l.DrawLatex(0.16,77.4,"LM0");
638    
639     TLegend * leg_S = new TLegend(0.5,0.14,0.85,0.38);
640     leg_S->SetBorderSize(0);leg_S->SetFillColor(0);
641     leg_S->SetHeader("95% CL upper limits");
642     leg_S->AddEntry(gCLsExpUncert,"Expected (CLs, TLimit)","l");
643     leg_S->AddEntry(gCLsObsUncert,"Observed (CLs, TLimit)","l");
644     leg_S->AddEntry(gPLExpUncert,"Expected (PL, RooStat)","l");
645     leg_S->AddEntry(gPLObsUncert,"Observed (PL, RooStat)","l");
646     leg_S->AddEntry(gFCObsUncert,"Observed (FC, RooStat)","l");
647     leg_S->AddEntry(gFCExpUncert,"Expected (FC, RooStat)","l");
648     leg_S->AddEntry(gMCMCObsUncert,"Observed (MCMC, RooStat)","l");
649     leg_S->AddEntry(gMCMCExpUncert,"Expected (MCMC, RooStat)","l");
650     leg_S->Draw();
651     c1->SaveAs("results_tb3/UncertaintyScan.pdf");
652    
653     //theApp.Run();
654     }
655    
656    
657     int main(int argc, char** argv)
658     {
659     return plot(argc, argv);
660     }