ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/SusyScan/PlotScript/plot.cc
Revision: 1.7
Committed: Thu Dec 23 12:57:53 2010 UTC (14 years, 4 months ago) by auterman
Content type: text/plain
Branch: MAIN
Changes since 1.6: +156 -35 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 auterman 1.1 #include "plot.h"
2     #include "SusyScan.h"
3 auterman 1.2 #include "GeneratorMasses.h"
4 auterman 1.4 #include "PlotTools.h"
5 auterman 1.2 #include "TheLimits.h"
6 auterman 1.6 #include "GlobalFunctions.h"
7 auterman 1.1
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 auterman 1.2 #include "TGraph.h"
16 auterman 1.1 #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    
24     #include <string>
25 auterman 1.2 #include <cmath>
26 auterman 1.1
27    
28     int plot(int argc, char** argv)
29     {
30 auterman 1.6 //interactive root session
31 auterman 1.7 //TApplication theApp("App", 0, 0);
32 auterman 1.2 if (gROOT->IsBatch()) {
33     fprintf(stderr, "%s: cannot run in batch mode\n", argv[0]);
34     return 1;
35     }
36    
37 auterman 1.6 //Style stuff
38 auterman 1.1 gStyle->SetHistFillColor(0);
39     gStyle->SetPalette(1);
40     gStyle->SetCanvasColor(0);
41     gStyle->SetCanvasBorderMode(0);
42     gStyle->SetPadColor(0);
43     gStyle->SetPadBorderMode(0);
44     gStyle->SetFrameBorderMode(0);
45    
46     gStyle->SetTitleFillColor(0);
47     gStyle->SetTitleBorderSize(0);
48     gStyle->SetTitleX(0.10);
49     gStyle->SetTitleY(0.98);
50     gStyle->SetTitleW(0.8);
51     gStyle->SetTitleH(0.06);
52    
53     gStyle->SetErrorX(0);
54     gStyle->SetStatColor(0);
55     gStyle->SetStatBorderSize(0);
56     gStyle->SetStatX(0);
57     gStyle->SetStatY(0);
58     gStyle->SetStatW(0);
59     gStyle->SetStatH(0);
60    
61     gStyle->SetTitleFont(22);
62     gStyle->SetLabelFont(22,"X");
63     gStyle->SetLabelFont(22,"Y");
64     gStyle->SetLabelFont(22,"Z");
65     gStyle->SetLabelSize(0.03,"X");
66     gStyle->SetLabelSize(0.03,"Y");
67     gStyle->SetLabelSize(0.03,"Z");
68    
69     //gROOT->SetStyle("MyStyle");
70     TCanvas * c1 = new TCanvas("c1","c1",600,600);
71     c1->SetFillStyle ( 4000 );
72     c1->SetLeftMargin ( 0.15 );
73     c1->SetRightMargin ( 0.15 );
74     c1->SetBottomMargin( 0.10 );
75     c1->cd();
76    
77 auterman 1.6 //Get limits and generator masses ---------------------------------------------------
78 auterman 1.4 TheLimits * genpoints = new TheLimits();
79 auterman 1.1 for (int i = 1; i<argc; ++i)
80     {
81 auterman 1.4 genpoints->add( new SusyScan(argv[i]) );
82 auterman 1.1 }
83 auterman 1.5 genpoints->FillGeneratorMasses("tb10_mu1_a0_massscan.dat");
84     genpoints->match();
85 auterman 1.2
86 auterman 1.6
87     //the plotting ----------------------------------------------------------------------
88 auterman 1.7 //plotting helper functions
89 auterman 1.4 PlotTools<SusyScan> * plotTools = new PlotTools<SusyScan>(genpoints->GetScan());
90 auterman 1.6 PlotTools<GeneratorMasses> * plotMasses = new PlotTools<GeneratorMasses>(genpoints->GetGeneratorMasses());
91 auterman 1.2
92 auterman 1.7 //iso mass lines
93     TGraph * gl500 = plotMasses->Line(Mzero, Mhalf, MGluino, 500);
94     TGraph * sq500 = plotMasses->Line(Mzero, Mhalf, MSquarkL, 500, 10);
95     sq500->SetLineWidth(2); sq500->SetLineColor(7);
96    
97     TGraph * chi100 = plotMasses->Line(Mzero, Mhalf, MChi1, 50, 20);
98     TGraph * cha200 = plotMasses->Line(Mzero, Mhalf, MCha1, 200, 20);
99     cha200->SetLineColor(2);
100    
101     //the histograms
102     c1->SetLogz(1);
103     //h->SetMaximum(27);
104     //h->SetMinimum(0.01);
105    
106     // cross-section in M0 - M1/2
107     TH2F*hxsec = new TH2F("xsec",";m_{0} [GeV]; m_{1/2} [GeV]; cross section [pb]",
108     100,0,1009.9,50,0,500);
109     plotTools->Area(hxsec, Mzero, Mhalf, Xsection);
110     hxsec->SetMinimum(0.01);
111     //sq500->Draw();
112     //gl500->Draw();
113     hxsec->Draw("colz");
114     c1->SaveAs("results/Xsection_m0_m12.png");
115     std::string wait;
116     //std::cin>>wait;
117    
118     // Observed Limit in M0 - M1/2
119     TH2F*hobslimit = new TH2F("obslimit",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL Observed Limit [pb]",
120     100,0,1009.9,50,0,500);
121     plotTools->Area(hobslimit, Mzero, Mhalf, ObsXsecLimit);
122     hobslimit->SetMinimum(0.01);
123     hobslimit->Draw("colz");
124     c1->SaveAs("results/ObsLimit_m0_m12.png");
125    
126     // Expected Limit in M0 - M1/2
127     TH2F*hexplimit = new TH2F("explimit",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL Expected Limit [pb]",
128     100,0,1009.9,50,0,500);
129     plotTools->Area(hexplimit, Mzero, Mhalf, ExpXsecLimit);
130     hexplimit->SetMinimum(0.01);
131     hexplimit->Draw("colz");
132     c1->SaveAs("results/ExpLimit_m0_m12.png");
133    
134     // Signal Acceptance in M0 - M1/2
135     TH2F*hsigacc = new TH2F("sigacc",";m_{0} [GeV]; m_{1/2} [GeV]; Signal Acceptance",
136     100,0,1009.9,50,0,500);
137     plotTools->Area(hsigacc, Mzero, Mhalf, SignalAcceptance);
138     hsigacc->SetMinimum(0.01);
139     hsigacc->SetMaximum(1.0);
140     hsigacc->Draw("colz");
141     chi100->Draw();
142     cha200->Draw();
143     gl500 ->Draw();
144     sq500 ->Draw();
145     c1->SaveAs("results/SigAcc_m0_m12.png");
146    
147     // Exp. Limit on Number of Signal Events in M0 - M1/2
148     TH2F*hexplimitnsig = new TH2F("explimitnsig",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL exp. limit signal events [# ]",
149     100,0,1009.9,50,0,500);
150     plotTools->Area(hexplimitnsig, Mzero, Mhalf, ExpNSignLimit);
151     hexplimitnsig->SetMinimum(0.01);
152     hexplimitnsig->Draw("colz");
153     c1->SaveAs("results/ExpLimitOnNSig_m0_m12.png");
154    
155     // Obs. Limit on Number of Signal Events in M0 - M1/2
156     TH2F*hobslimitnsig = new TH2F("obslimitnsig",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL obs. limit signal events [# ]",
157 auterman 1.2 100,0,1009.9,50,0,500);
158 auterman 1.7 plotTools->Area(hobslimitnsig, Mzero, Mhalf, ObsNSignLimit);
159     hobslimitnsig->SetMinimum(0.01);
160     hobslimitnsig->Draw("colz");
161     c1->SaveAs("results/ObsLimitOnNSig_m0_m12.png");
162    
163     c1->SetLogz(0);
164     // Expected Exclusion in M0 - M1/2
165     TH2F*hexpexcl = new TH2F("expexcl",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL Expected Exclusion",
166     100,0,1009.9,50,0,500);
167     plotTools->Area(hexpexcl, Mzero, Mhalf, ExpExclusion);
168     hexpexcl->Draw("colz");
169     c1->SaveAs("results/ExpExclusion_m0_m12.png");
170    
171     // Observed Exclusion in M0 - M1/2
172     TH2F*hobsexcl = new TH2F("obsexcl",";m_{0} [GeV]; m_{1/2} [GeV]; 95% CL Observed Exclusion",
173     100,0,1009.9,50,0,500);
174     plotTools->Area(hobsexcl, Mzero, Mhalf, ObsExclusion);
175     hobsexcl->Draw("colz");
176     c1->SaveAs("results/ObsExclusion_m0_m12.png");
177    
178 auterman 1.4 //plotTools->Area(h, Mzero, Mhalf, XsecOverObserved);
179     //plotTools->Area(h, Mzero, Mhalf, XsecOverExpected);
180 auterman 1.1
181 auterman 1.2
182 auterman 1.7 //-----------------------------------------------------------------------------------
183     c1->SetLogz(1);
184    
185     TGraph * mz500 = plotMasses->Line( MSquarkL, MGluino, Mzero, 500, 1);
186     TGraph * mh250 = plotMasses->Line( MSquarkL, MGluino, Mhalf, 250, 1);
187    
188     // cross-section in M0 - M1/2
189     TH2F*hxsec_qg = new TH2F("xsec_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; cross section [pb]",
190     60,200,1400,50,200,1200);
191     plotTools->Area(hxsec_qg, MSquarkL, MGluino, Xsection);
192     hxsec_qg->SetMinimum(0.01);
193     hxsec_qg->Draw("colz");
194     mz500->Draw();
195     mh250->Draw();
196     c1->SaveAs("results/Xsection_mSql_mGl.png");
197    
198     // Observed Limit in M0 - M1/2
199     TH2F*hobslimit_qg = new TH2F("obslimit_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Observed Limit [pb]",
200     60,200,1400,50,200,1200);
201     plotTools->Area(hobslimit_qg, MSquarkL, MGluino, ObsXsecLimit);
202     hobslimit_qg->SetMinimum(0.01);
203     hobslimit_qg->Draw("colz");
204     c1->SaveAs("results/ObsLimit_mSql_mGl.png");
205    
206     // Expected Limit in M0 - M1/2
207     TH2F*hexplimit_qg = new TH2F("explimit_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Expected Limit [pb]",
208     60,200,1400,50,200,1200);
209     plotTools->Area(hexplimit_qg, MSquarkL, MGluino, ExpXsecLimit);
210     hexplimit_qg->SetMinimum(0.01);
211     hexplimit_qg->Draw("colz");
212     c1->SaveAs("results/ExpLimit_mSql_mGl.png");
213    
214     // Signal Acceptance in M0 - M1/2
215     TH2F*hsigacc_qg = new TH2F("sigacc_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; Signal Acceptance",
216     60,200,1400,50,200,1200);
217     plotTools->Area(hsigacc_qg, MSquarkL, MGluino, SignalAcceptance);
218     hsigacc_qg->SetMinimum(0.01);
219     hsigacc_qg->SetMaximum(1.0);
220     hsigacc_qg->Draw("colz");
221     c1->SaveAs("results/SigAcc_mSql_mGl.png");
222    
223     // Exp. Limit on Number of Signal Events in M0 - M1/2
224     TH2F*hexplimitnsig_qg = new TH2F("explimitnsig_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL exp. limit signal events [# ]",
225     60,200,1400,50,200,1200);
226     plotTools->Area(hexplimitnsig_qg, MSquarkL, MGluino, ExpNSignLimit);
227     hexplimitnsig_qg->SetMinimum(0.01);
228     hexplimitnsig_qg->Draw("colz");
229     c1->SaveAs("results/ExpLimitOnNSig_mSql_mGl.png");
230 auterman 1.6
231 auterman 1.7 // Obs. Limit on Number of Signal Events in M0 - M1/2
232     TH2F*hobslimitnsig_qg = new TH2F("obslimitnsig_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL obs. limit signal events [# ]",
233     60,200,1400,50,200,1200);
234     plotTools->Area(hobslimitnsig_qg, MSquarkL, MGluino, ObsNSignLimit);
235     hobslimitnsig_qg->SetMinimum(0.01);
236     hobslimitnsig_qg->Draw("colz");
237     c1->SaveAs("results/ObsLimitOnNSig_mSql_mGl.png");
238    
239     c1->SetLogz(0);
240     // Expected Exclusion in M0 - M1/2
241     TH2F*hexpexcl_qg = new TH2F("expexcl_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Expected Exclusion",
242 auterman 1.2 60,200,1400,50,200,1200);
243 auterman 1.7 plotTools->Area(hexpexcl_qg, MSquarkL, MGluino, ExpExclusion);
244     hexpexcl_qg->Draw("colz");
245     c1->SaveAs("results/ExpExclusion_mSql_mGl.png");
246 auterman 1.2
247 auterman 1.7 // Observed Exclusion in M0 - M1/2
248     TH2F*hobsexcl_qg = new TH2F("obsexcl_qg",";m_{#tilde{q}} [GeV]; m_{#tilde{g}} [GeV]; 95% CL Observed Exclusion",
249     60,200,1400,50,200,1200);
250     plotTools->Area(hobsexcl_qg, MSquarkL, MGluino, ObsExclusion);
251     hobsexcl_qg->Draw("colz");
252     c1->SaveAs("results/ObsExclusion_mSql_mGl.png");
253 auterman 1.2
254 auterman 1.1
255 auterman 1.2 //c1->SaveAs("plot.pdf");
256    
257    
258 auterman 1.7 //theApp.Run();
259 auterman 1.1 }
260    
261    
262     int main(int argc, char** argv)
263     {
264     return plot(argc, argv);
265     }