ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/SusyScan/PlotScript/GlobalFunctions.h
Revision: 1.5
Committed: Wed Jan 26 15:23:05 2011 UTC (14 years, 3 months ago) by auterman
Content type: text/plain
Branch: MAIN
Changes since 1.4: +338 -5 lines
Log Message:
A lot of improvements

File Contents

# User Rev Content
1 auterman 1.1 #include "SusyScan.h"
2     #include "GeneratorMasses.h"
3    
4 auterman 1.5 #include "TGraph.h"
5     #include "TGraphErrors.h"
6     #include "TSpline.h"
7    
8 auterman 1.1 #include <cmath>
9    
10    
11 auterman 1.3 double Luminosity = 36.3; //[pb^-1]
12 auterman 1.1 double Mzero(const SusyScan* p){ return p->Mzero; }
13     double Mhalf(const SusyScan* p){ return p->Mhalf; }
14     double MGluino(const SusyScan* p){ return p->MGL; }
15     double MSquarkL(const SusyScan* p){ return p->MUL; }
16     double MSquarkR(const SusyScan* p){ return p->MUR; }
17     double MChi1(const SusyScan* p){ return p->MZ1; }
18     double MChi2(const SusyScan* p){ return p->MZ2; }
19     double MChi3(const SusyScan* p){ return p->MZ3; }
20     double MChi4(const SusyScan* p){ return p->MZ4; }
21     double MCha1(const SusyScan* p){ return p->MW1; }
22     double MCha2(const SusyScan* p){ return p->MW2; }
23     double Xsection(const SusyScan* p){ return p->Xsection; }
24     double ExpXsecLimit(const SusyScan* p){ return p->ExpXsecLimit; }
25     double ObsXsecLimit(const SusyScan* p){ return p->ObsXsecLimit; }
26 auterman 1.5 double Signal(const SusyScan* p){ return p->signal; }
27     double SignalUncertainty(const SusyScan* p){ return p->signal_uncertainty; }
28     double SignalRelUncertainty(const SusyScan* p){ return p->signal_uncertainty/p->signal; }
29 auterman 1.4 double ExpExclusion(const SusyScan* p){ return (ExpXsecLimit(p)<Xsection(p)&&ExpXsecLimit(p)>0.01?1:0.01); }
30     double ObsExclusion(const SusyScan* p){ return (ObsXsecLimit(p)<Xsection(p)&&ObsXsecLimit(p)>0.01?1:0.01); }
31 auterman 1.1 double SoverSqrtB(const SusyScan* p){ return p->signal/(sqrt(p->background)+p->background_uncertainty+p->signal_uncertainty); }
32     double XsecOverObserved(const SusyScan* p){ return (ObsXsecLimit(p)==0 ? 9999. : Xsection(p)/ObsXsecLimit(p)); }
33 auterman 1.3 double XsecOverExpected(const SusyScan* p){ return (ExpXsecLimit(p)==0 ? 9999. : Xsection(p)/ExpXsecLimit(p)); }
34 auterman 1.1 double SignalAcceptance(const SusyScan* p){ return p->signal / (Luminosity*Xsection(p)); }
35 auterman 1.5 double ExpNSignLimit(const SusyScan* p){ return p->ExpNsigLimit; }
36     double ObsNSignLimit(const SusyScan* p){ return p->ObsNsigLimit; }
37 auterman 1.3 double PLExpNSignLimit(const SusyScan* p){ return p->PLExpNsigLimit; }
38 auterman 1.5 double PLObsNSignLimit(const SusyScan* p){ return p->PLObsNsigLimit; }
39 auterman 1.3 double PLExpXsecLimit(const SusyScan* p){ return p->PLExpXsecLimit; }
40     double PLObsXsecLimit(const SusyScan* p){ return p->PLObsXsecLimit; }
41 auterman 1.4 double PLExpExclusion(const SusyScan* p){ return (PLExpXsecLimit(p)<Xsection(p)&&PLExpXsecLimit(p)>0.01?1:0.01); }
42     double PLObsExclusion(const SusyScan* p){ return (PLObsXsecLimit(p)<Xsection(p)&&PLObsXsecLimit(p)>0.01?1:0.01); }
43 auterman 1.5 double FCExpNSignLimit(const SusyScan* p){ return p->FCExpNsigLimit; }
44     double FCObsNSignLimit(const SusyScan* p){ return p->FCObsNsigLimit; }
45     double FCExpXsecLimit(const SusyScan* p){ return p->FCExpXsecLimit; }
46     double FCObsXsecLimit(const SusyScan* p){ return p->FCObsXsecLimit; }
47     double FCExpExclusion(const SusyScan* p){ return (FCExpXsecLimit(p)<Xsection(p)&&FCExpXsecLimit(p)>0.01?1:0.01); }
48     double FCObsExclusion(const SusyScan* p){ return (FCObsXsecLimit(p)<Xsection(p)&&FCObsXsecLimit(p)>0.01?1:0.01); }
49     double MCMCExpNSignLimit(const SusyScan* p){ return p->MCMCExpNsigLimit; }
50     double MCMCObsNSignLimit(const SusyScan* p){ return p->MCMCObsNsigLimit; }
51     double MCMCExpXsecLimit(const SusyScan* p){ return p->MCMCExpXsecLimit; }
52     double MCMCObsXsecLimit(const SusyScan* p){ return p->MCMCObsXsecLimit; }
53     double MCMCExpExclusion(const SusyScan* p){ return (MCMCExpXsecLimit(p)<Xsection(p)&&MCMCExpXsecLimit(p)>0.01?1:0.01); }
54     double MCMCObsExclusion(const SusyScan* p){ return (MCMCObsXsecLimit(p)<Xsection(p)&&MCMCObsXsecLimit(p)>0.01?1:0.01); }
55 auterman 1.1
56     double Mzero(const GeneratorMasses* p){ return p->Mzero; }
57     double Mhalf(const GeneratorMasses* p){ return p->Mhalf; }
58     double MGluino(const GeneratorMasses* p){ return p->MGL; }
59     double MSquarkL(const GeneratorMasses* p){ return p->MUL; }
60     double MSquarkR(const GeneratorMasses* p){ return p->MUR; }
61     double MChi1(const GeneratorMasses* p){ return p->MZ1; }
62     double MChi2(const GeneratorMasses* p){ return p->MZ2; }
63     double MChi3(const GeneratorMasses* p){ return p->MZ3; }
64     double MChi4(const GeneratorMasses* p){ return p->MZ4; }
65     double MCha1(const GeneratorMasses* p){ return p->MW1; }
66     double MCha2(const GeneratorMasses* p){ return p->MW2; }
67 auterman 1.5
68    
69     //RA1 Contours
70     TGraph* set_sneutrino_d0_1(){
71     double sn_m0[9]={0,0,55,90,100,110,100,55,0};
72     double sn_m12[9]={0,140,220,240,240,230,210,150,0};
73    
74     TGraph* sn_d0_gr = new TGraph(9,sn_m0,sn_m12);
75    
76     sn_d0_gr->SetFillColor(kGreen+3);
77     sn_d0_gr->SetFillStyle(1001);
78    
79    
80     return sn_d0_gr;
81     }
82    
83     TGraph* set_sneutrino_d0_2(){
84     double sn_m0[5]={0,50,105,190,0};
85     double sn_m12[5]={0,140,205,140,0};
86    
87     TGraph* sn_d0_gr_2 = new TGraph(5,sn_m0,sn_m12);
88    
89     sn_d0_gr_2->SetFillColor(kGreen+3);
90     sn_d0_gr_2->SetFillStyle(1001);
91    
92    
93     return sn_d0_gr_2;
94     }
95    
96    
97    
98     TGraph* set_lep_ch(){
99    
100     double ch_m0[5];
101     double ch_m12[5];
102    
103    
104     ch_m0[0] = 0;
105     ch_m0[1] = 0;
106     ch_m0[2] = 600;
107     ch_m0[3] = 1000;
108     ch_m0[4] = 1000;
109    
110     ch_m12[0] = 0;
111     ch_m12[1] = 130;
112     ch_m12[2] = 120;
113     ch_m12[3] = 113;
114     ch_m12[4] = 0;
115    
116    
117     TGraph* ch_gr = new TGraph(5,ch_m0,ch_m12);
118    
119     ch_gr->SetFillColor(3);
120     ch_gr->SetFillStyle(1001);
121    
122     return ch_gr;
123    
124     }
125    
126    
127     TGraph* set_lep_sl(){
128    
129    
130    
131     double sl_m0[] = {0,0,30,50,60,75,80,90,100};
132     double sl_m12[] = {0,245,240,220,200,150,100,50,0};
133    
134     TGraph* lep_sl = new TGraph(9,sl_m0,sl_m12);
135    
136     lep_sl->SetFillColor(5);
137     lep_sl->SetFillStyle(1001);
138    
139     return lep_sl;
140     }
141    
142     TGraph* set_tev_sg_cdf(){
143    
144     double sg_m0[] = {0,50,100,150,200,250,300,350,400,450,500,550,600,600};
145     double sg_m12[] = {0,170,160,155,150,122,116,112,110,106,105,100,98,0};
146     TGraph* sg_gr = new TGraph(14,sg_m0,sg_m12);
147    
148     sg_gr->SetFillColor(2);
149     sg_gr->SetFillStyle(1001);
150    
151     return sg_gr;
152    
153     }
154    
155     TGraph* set_tev_sg_d0(){
156     double sgd_m0[] = {0,50,100,150,200,250,300,350,400,450,500,550,600,600};
157     double sgd_m12[] = {0,173,170,168,160,150,140,130,125,120,120,120,120,0};
158     TGraph* sgd_gr = new TGraph(14,sgd_m0,sgd_m12);
159    
160     sgd_gr->SetFillColor(41);
161     sgd_gr->SetFillStyle(1001);
162    
163     return sgd_gr;
164    
165     }
166    
167     TGraph* set_tev_tlp_cdf(){
168     double tlp1_m0[] = {0,20,40,60,70,80,90,80,70,60};
169     double tlp1_m12[] = {170,185,200,215,220,215,210,190,175,160};
170     TGraph* tlp1_gr = new TGraph(10,tlp1_m0,tlp1_m12);
171    
172     tlp1_gr->SetFillColor(4);
173     tlp1_gr->SetFillStyle(1001);
174    
175     return tlp1_gr;
176     }
177    
178     TGraph* set_tev_tlp_d0(){
179     double tlp2_m0[] = {70,80,90,100,105,110,120,130,140};
180     double tlp2_m12[] = {160,172,184,196,205,195,185,173,160};
181     TGraph* tlp2_gr = new TGraph(9,tlp2_m0,tlp2_m12);
182    
183     tlp2_gr->SetFillColor(4);
184     tlp2_gr->SetFillStyle(1001);
185    
186     return tlp2_gr;
187    
188     }
189    
190     TGraph* set_tev_stau(){
191     double st_m0[] = {0,30,200,0,0};
192     double st_m12[] = {230,240,1000,1000,230};
193     TGraph* st_gr = new TGraph(5,st_m0,st_m12);
194    
195     st_gr->SetFillColor(40);
196     st_gr->SetFillStyle(1001);
197    
198    
199     return st_gr;
200    
201     }
202    
203    
204     TGraphErrors* getLO_signalCont(){
205    
206    
207    
208     Int_t nl = 9;
209     Double_t xl[9];
210     Double_t yl[9];
211     Double_t exl[9];
212     Double_t eyl[9];
213    
214     // cout << " n " << hist->GetXaxis()->GetNbins() << endl;
215    
216     for(int i = 0; i < nl; i++){
217     exl[i] = 5;
218     eyl[i] = 5;
219    
220     }
221    
222     xl[0] = 0;
223     yl[0] = 265;
224     xl[1] = 100;
225     yl[1] = 258;
226     xl[2] = 200;
227     yl[2] = 250;
228     xl[3] = 250;
229     yl[3] = 240;
230     xl[4] = 300;
231     yl[4] = 210;
232     xl[5] = 340;
233     yl[5] = 177;
234     xl[6] = 400;
235     yl[6] = 140;
236     xl[7] = 460;
237     yl[7] = 120;
238     xl[8] = 490;
239     yl[8] =100;
240    
241    
242    
243    
244    
245    
246     TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
247     gr1->SetMarkerColor(kGreen+2);
248     gr1->SetMarkerStyle(21);
249    
250    
251     //gr1->Draw("LP");
252    
253     TSpline3 *s = new TSpline3("grs",gr1);
254     s->SetLineColor(kGreen+2);
255     s->SetLineStyle(4);
256     s->SetLineWidth(3);
257    
258    
259     return gr1;
260    
261    
262    
263     }
264    
265    
266     TGraphErrors* getExpected_NLOunc(){
267    
268     Int_t nl = 11;
269     Double_t xl[11];
270     Double_t yl[11];
271     Double_t exl[11];
272     Double_t eyl[11];
273    
274     // cout << " n " << hist->GetXaxis()->GetNbins() << endl;
275    
276     for(int i = 0; i < nl; i++){
277     exl[i] = 5;
278     eyl[i] = 5;
279    
280     }
281    
282     xl[0] = 35;
283     yl[0] = 283;
284     xl[1] = 100;
285     yl[1] = 280;
286     xl[2] = 150;
287     yl[2] = 279;
288     xl[3] = 200;
289     yl[3] = 275;
290     xl[4] = 250;
291     yl[4] = 270;
292     xl[5] = 300;
293     yl[5] = 255;
294     xl[6] = 350;
295     yl[6] = 225;
296     xl[7] = 400;
297     yl[7] = 195;
298     xl[8] = 450;
299     yl[8] = 175;
300     xl[9] = 500;
301     yl[9] = 155;
302     xl[10] = 550;
303     yl[10] = 50;
304    
305    
306    
307     TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
308     gr1->SetMarkerColor(kWhite);
309    
310    
311     return gr1;
312    
313    
314    
315    
316    
317     }
318    
319    
320     TGraphErrors* getObserved_NLOunc(){
321    
322     Int_t nl = 11;
323     Double_t xl[11];
324     Double_t yl[11];
325     Double_t exl[11];
326     Double_t eyl[11];
327    
328     // cout << " n " << hist->GetXaxis()->GetNbins() << endl;
329    
330     for(int i = 0; i < nl; i++){
331     exl[i] = 5;
332     eyl[i] = 5;
333    
334     }
335    
336     xl[0] = 35;
337     yl[0] = 272;
338     xl[1] = 100;
339     yl[1] = 270;
340     xl[2] = 150;
341     yl[2] = 268;
342     xl[3] = 200;
343     yl[3] = 265;
344     xl[4] = 250;
345     yl[4] = 255;
346     xl[5] = 300;
347     yl[5] = 236;
348     xl[6] = 350;
349     yl[6] = 198;
350     xl[7] = 400;
351     yl[7] = 168;
352     xl[8] = 450;
353     yl[8] = 150;
354     xl[9] = 490;
355     yl[9] = 135;
356     xl[10] = 503;
357     yl[10] = 120;
358    
359    
360    
361     TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
362     gr1->SetMarkerColor(kWhite);
363     gr1->SetLineColor(kWhite);
364     // gr1->SetMarkerStyle(21);
365    
366    
367     //gr1->Draw("LP");
368    
369     TSpline3 *s = new TSpline3("grs",gr1);
370     s->SetLineColor(kRed);
371     // s->SetLineStyle(2);
372     s->SetLineWidth(3);
373    
374    
375     return gr1;
376    
377    
378    
379    
380    
381     }
382