ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/SusyScan/PlotScript/GlobalFunctions.h
(Generate patch)

Comparing UserCode/auterman/SusyScan/PlotScript/GlobalFunctions.h (file contents):
Revision 1.3 by auterman, Fri Jan 7 08:54:47 2011 UTC vs.
Revision 1.8 by auterman, Wed Feb 9 08:51:32 2011 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines