ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/SusyScan/PlotScript/GlobalFunctions.h
Revision: 1.12
Committed: Wed Mar 2 13:31:32 2011 UTC (14 years, 2 months ago) by auterman
Content type: text/plain
Branch: MAIN
Changes since 1.11: +48 -6 lines
Log Message:
ARC review improvements

File Contents

# Content
1 #include "SusyScan.h"
2 #include "GeneratorMasses.h"
3
4 #include "TGraph.h"
5 #include "TLatex.h"
6 #include "TF1.h"
7 #include "TGraphErrors.h"
8 #include "TSpline.h"
9 #include "TStyle.h"
10 #include "TMath.h"
11
12 #include <cmath>
13 #include <iostream>
14
15
16 double Luminosity = 36.3; //[pb^-1]
17 double Mzero(const SusyScan* p){ return p->Mzero; }
18 double Mhalf(const SusyScan* p){ return p->Mhalf; }
19 double MGluino(const SusyScan* p){ return p->MGL; }
20 double MSquarkL(const SusyScan* p){ return p->MUL; }
21 double MSquarkR(const SusyScan* p){ return p->MUR; }
22 double MChi1(const SusyScan* p){ return p->MZ1; }
23 double MChi2(const SusyScan* p){ return p->MZ2; }
24 double MChi3(const SusyScan* p){ return p->MZ3; }
25 double MChi4(const SusyScan* p){ return p->MZ4; }
26 double MCha1(const SusyScan* p){ return p->MW1; }
27 double MCha2(const SusyScan* p){ return p->MW2; }
28 double SignalUncertKfactor(const SusyScan* p){return fabs(p->signal_kfactor_UP-p->signal_kfactor_DN)/(2.0*p->signal_kfactor); }
29 double SignalUncertJEC(const SusyScan* p){ return (fabs(p->signal_JEC_UP)+fabs(p->signal_JEC_DN))/(2.0*p->signal); }
30 double SignalUncertMuIso(const SusyScan* p){ return (fabs(p->signal_MuIso_UP)+fabs(p->signal_MuIso_DN))/(2.0*p->signal); }
31 double SignalKfactor(const SusyScan* p){return p->signal_kfactor; }
32
33 double Xsection(const SusyScan* p){ return p->Xsection; }
34 double ExpXsecLimit(const SusyScan* p){ return p->ExpXsecLimit; }
35 double ObsXsecLimit(const SusyScan* p){ return p->ObsXsecLimit; }
36 double Signal(const SusyScan* p){ return p->signal; }
37 double SignalUncertainty(const SusyScan* p){ return p->signal_uncertainty; }
38 double SignalRelUncertainty(const SusyScan* p){ return p->signal_uncertainty/p->signal; }
39 double ExpExclusion(const SusyScan* p){ return (ExpXsecLimit(p)<Xsection(p)&&ExpXsecLimit(p)>0.01?1:0.01); }
40 double ObsExclusion(const SusyScan* p){ return (ObsXsecLimit(p)<Xsection(p)&&ObsXsecLimit(p)>0.01?1:0.01); }
41 double ExpExclCL(const SusyScan* p){ return (p->CLs_b_xsec<=0.05 ? 1:0.01); }
42 double ExpExclCLm2sigma(const SusyScan* p){ return (p->CLs_b_n2_xsec<=0.05 ? 1:0.01); }
43 double ExpExclCLm1sigma(const SusyScan* p){ return (p->CLs_b_n1_xsec<=0.05 ? 1:0.01); }
44 double ExpExclCLp1sigma(const SusyScan* p){ return (p->CLs_b_p1_xsec<=0.05 ? 1:0.01); }
45 double ExpExclCLp2sigma(const SusyScan* p){ return (p->CLs_b_p2_xsec<=0.05 ? 1:0.01); }
46 double ObsExclCL(const SusyScan* p){ return (p->CLs_xsec<=0.05 ? 1:0.01); }
47 double SoverSqrtB(const SusyScan* p){ return p->signal/(sqrt(p->background)+p->background_uncertainty+p->signal_uncertainty); }
48 double XsecOverObserved(const SusyScan* p){ return (ObsXsecLimit(p)==0 ? 9999. : Xsection(p)/ObsXsecLimit(p)); }
49 double XsecOverExpected(const SusyScan* p){ return (ExpXsecLimit(p)==0 ? 9999. : Xsection(p)/ExpXsecLimit(p)); }
50 double SignalAcceptance(const SusyScan* p){ return p->signal / (Luminosity*Xsection(p)); }
51 double ExpNSignLimit(const SusyScan* p){ return p->ExpNsigLimit; }
52 double ObsNSignLimit(const SusyScan* p){ return p->ObsNsigLimit; }
53 double PLExpNSignLimit(const SusyScan* p){ return p->PLExpNsigLimit; }
54 double PLObsNSignLimit(const SusyScan* p){ return p->PLObsNsigLimit; }
55 double PLExpXsecLimit(const SusyScan* p){ return p->PLExpXsecLimit; }
56 double PLObsXsecLimit(const SusyScan* p){ return p->PLObsXsecLimit; }
57 double PLExpExclusion(const SusyScan* p){ return (PLExpXsecLimit(p)<Xsection(p)&&PLExpXsecLimit(p)>0.01?1:0.01); }
58 double PLObsExclusion(const SusyScan* p){ return (PLObsXsecLimit(p)<Xsection(p)&&PLObsXsecLimit(p)>0.01?1:0.01); }
59 double FCExpNSignLimit(const SusyScan* p){ return p->FCExpNsigLimit; }
60 double FCObsNSignLimit(const SusyScan* p){ return p->FCObsNsigLimit; }
61 double FCExpXsecLimit(const SusyScan* p){ return p->FCExpXsecLimit; }
62 double FCObsXsecLimit(const SusyScan* p){ return p->FCObsXsecLimit; }
63 double FCExpExclusion(const SusyScan* p){ return (FCExpXsecLimit(p)<Xsection(p)&&FCExpXsecLimit(p)>0.01?1:0.01); }
64 double FCObsExclusion(const SusyScan* p){ return (FCObsXsecLimit(p)<Xsection(p)&&FCObsXsecLimit(p)>0.01?1:0.01); }
65 double MCMCExpNSignLimit(const SusyScan* p){ return p->MCMCExpNsigLimit; }
66 double MCMCObsNSignLimit(const SusyScan* p){ return p->MCMCObsNsigLimit; }
67 double MCMCExpXsecLimit(const SusyScan* p){ return p->MCMCExpXsecLimit; }
68 double MCMCObsXsecLimit(const SusyScan* p){ return p->MCMCObsXsecLimit; }
69 double MCMCExpExclusion(const SusyScan* p){ return (MCMCExpXsecLimit(p)<Xsection(p)&&MCMCExpXsecLimit(p)>0.01?1:0.01); }
70 double MCMCObsExclusion(const SusyScan* p){ return (MCMCObsXsecLimit(p)<Xsection(p)&&MCMCObsXsecLimit(p)>0.01?1:0.01); }
71 double SignalContamination(const SusyScan* p){return p->signal_contamination; }
72
73 double NLOXsection(const SusyScan* p){ return p->Xsection * p->signal_kfactor; }
74 double NLOExpXsecLimit(const SusyScan* p){ return p->NLO_ExpXsecLimit; }
75 double NLOObsXsecLimit(const SusyScan* p){ return p->NLO_ObsXsecLimit; }
76 double NLOSignal(const SusyScan* p){ return p->NLO_signal; }
77 double NLOSignalUncertainty(const SusyScan* p){ return p->NLO_signal_uncertainty; }
78 double NLOSignalRelUncertainty(const SusyScan* p){ return p->NLO_signal_uncertainty/p->NLO_signal; }
79 double NLOExpExclusion(const SusyScan* p){ return (NLOExpXsecLimit(p)<NLOXsection(p)&&NLOExpXsecLimit(p)>0.01?1:0.01); }
80 double NLOObsExclusion(const SusyScan* p){ return (NLOObsXsecLimit(p)<NLOXsection(p)&&NLOObsXsecLimit(p)>0.01?1:0.01); }
81 double NLOExpExclCL(const SusyScan* p){ return (p->NLO_CLs_b_xsec<=0.05 ? 1:0.01); }
82 double NLOExpExclCLm2sigma(const SusyScan* p){ return (p->NLO_CLs_b_n2_xsec<=0.05 ? 1:0.01); }
83 double NLOExpExclCLm1sigma(const SusyScan* p){ return (p->NLO_CLs_b_n1_xsec<=0.05 ? 1:0.01); }
84 double NLOExpExclCLp1sigma(const SusyScan* p){ return (p->NLO_CLs_b_p1_xsec<=0.05 ? 1:0.01); }
85 double NLOExpExclCLp2sigma(const SusyScan* p){ return (p->NLO_CLs_b_p2_xsec<=0.05 ? 1:0.01); }
86 double NLOObsExclCL(const SusyScan* p){ return (p->NLO_CLs_xsec<=0.05 ? 1:0.01); }
87 double NLOSoverSqrtB(const SusyScan* p){ return p->NLO_signal/(sqrt(p->background)+p->background_uncertainty+p->NLO_signal_uncertainty); }
88 double NLOXsecOverObserved(const SusyScan* p){ return (NLOObsXsecLimit(p)==0 ? 9999. : NLOXsection(p)/NLOObsXsecLimit(p)); }
89 double NLOXsecOverExpected(const SusyScan* p){ return (NLOExpXsecLimit(p)==0 ? 9999. : NLOXsection(p)/NLOExpXsecLimit(p)); }
90 double NLOSignalAcceptance(const SusyScan* p){ return p->NLO_signal / (Luminosity*NLOXsection(p)); }
91 double NLOExpNSignLimit(const SusyScan* p){ return p->NLO_ExpNsigLimit; }
92 double NLOObsNSignLimit(const SusyScan* p){ return p->NLO_ObsNsigLimit; }
93 double NLOPLExpNSignLimit(const SusyScan* p){ return p->NLO_PLExpNsigLimit; }
94 double NLOPLObsNSignLimit(const SusyScan* p){ return p->NLO_PLObsNsigLimit; }
95 double NLOPLExpXsecLimit(const SusyScan* p){ return p->NLO_PLExpXsecLimit; }
96 double NLOPLObsXsecLimit(const SusyScan* p){ return p->NLO_PLObsXsecLimit; }
97 double NLOPLExpExclusion(const SusyScan* p){ return (NLOPLExpXsecLimit(p)<NLOXsection(p)&&NLOPLExpXsecLimit(p)>0.01?1:0.01); }
98 double NLOPLObsExclusion(const SusyScan* p){ return (NLOPLObsXsecLimit(p)<NLOXsection(p)&&NLOPLObsXsecLimit(p)>0.01?1:0.01); }
99 double NLOFCExpNSignLimit(const SusyScan* p){ return p->NLO_FCExpNsigLimit; }
100 double NLOFCObsNSignLimit(const SusyScan* p){ return p->NLO_FCObsNsigLimit; }
101 double NLOFCExpXsecLimit(const SusyScan* p){ return p->NLO_FCExpXsecLimit; }
102 double NLOFCObsXsecLimit(const SusyScan* p){ return p->NLO_FCObsXsecLimit; }
103 double NLOFCExpExclusion(const SusyScan* p){ return (NLOFCExpXsecLimit(p)<NLOXsection(p)&&NLOFCExpXsecLimit(p)>0.01?1:0.01); }
104 double NLOFCObsExclusion(const SusyScan* p){ return (NLOFCObsXsecLimit(p)<NLOXsection(p)&&NLOFCObsXsecLimit(p)>0.01?1:0.01); }
105 double NLOMCMCExpNSignLimit(const SusyScan* p){ return p->NLO_MCMCExpNsigLimit; }
106 double NLOMCMCObsNSignLimit(const SusyScan* p){ return p->NLO_MCMCObsNsigLimit; }
107 double NLOMCMCExpXsecLimit(const SusyScan* p){ return p->NLO_MCMCExpXsecLimit; }
108 double NLOMCMCObsXsecLimit(const SusyScan* p){ return p->NLO_MCMCObsXsecLimit; }
109 double NLOMCMCExpExclusion(const SusyScan* p){ return (NLOMCMCExpXsecLimit(p)<NLOXsection(p)&&NLOMCMCExpXsecLimit(p)>0.01?1:0.01); }
110 double NLOMCMCObsExclusion(const SusyScan* p){ return (NLOMCMCObsXsecLimit(p)<NLOXsection(p)&&NLOMCMCObsXsecLimit(p)>0.01?1:0.01); }
111 double NLOSignalContamination(const SusyScan* p){return p->NLO_signal_contamination; }
112
113 double Mzero(const GeneratorMasses* p){ return p->Mzero; }
114 double Mhalf(const GeneratorMasses* p){ return p->Mhalf; }
115 double MGluino(const GeneratorMasses* p){ return p->MGL; }
116 double MSquarkL(const GeneratorMasses* p){ return p->MUL; }
117 double MSquarkR(const GeneratorMasses* p){ return p->MUR; }
118 double MChi1(const GeneratorMasses* p){ return p->MZ1; }
119 double MChi2(const GeneratorMasses* p){ return p->MZ2; }
120 double MChi3(const GeneratorMasses* p){ return p->MZ3; }
121 double MChi4(const GeneratorMasses* p){ return p->MZ4; }
122 double MCha1(const GeneratorMasses* p){ return p->MW1; }
123 double MCha2(const GeneratorMasses* p){ return p->MW2; }
124
125 TGraph* set_sneutrino_d0_1(Int_t tanBeta){
126 double sn_m0[14]= {0, 0, 48, 55, 80, 90,100,105,109,105,100, 72, 55,0};
127 double sn_m12[14]={0,140,210,220,237,241,242,241,230,220,210,170,150,0};
128
129 TGraph* sn_d0_gr = new TGraph(14,sn_m0,sn_m12);
130
131 sn_d0_gr->SetFillColor(kGreen+3);
132 sn_d0_gr->SetFillStyle(1001);
133
134 return sn_d0_gr;
135 }
136
137 TGraph* set_sneutrino_d0_2(Int_t tanBeta){
138 double sn_m0[9]= {0, 45, 75,115,130,150,163,185,0};
139 double sn_m12[9]={0,140,170,213,202,183,168,140,0};
140
141 TGraph* sn_d0_gr_2 = new TGraph(9,sn_m0,sn_m12);
142
143 sn_d0_gr_2->SetFillColor(kGreen+3);
144 sn_d0_gr_2->SetFillStyle(1001);
145
146 return sn_d0_gr_2;
147 }
148
149
150 TGraph* set_lep_ch_tanBeta10(){
151
152 double ch_m0[12];
153 double ch_m12[12];
154
155 ch_m0[0] = 0;
156 ch_m0[1] = 100;
157 ch_m0[2] = 200;
158 ch_m0[3] = 300;
159 ch_m0[4] = 400;
160 ch_m0[5] = 500;
161 ch_m0[6] = 600;
162 ch_m0[7] = 700;
163 ch_m0[8] = 800;
164 ch_m0[9] = 1000;
165 ch_m0[10] = 1000;
166 ch_m0[11] = 0;
167
168 ch_m12[0] = 163;
169 ch_m12[1] = 162;
170 ch_m12[2] = 161;
171 ch_m12[3] = 160;
172 ch_m12[4] = 159;
173 ch_m12[5] = 158;
174 ch_m12[6] = 157;
175 ch_m12[7] = 156;
176 ch_m12[8] = 155.4;
177 ch_m12[9] = 154;
178 ch_m12[10] = 0;
179 ch_m12[11] = 0;
180
181
182 TGraph* ch_gr = new TGraph(12,ch_m0,ch_m12);
183
184 ch_gr->SetFillColor(3);
185 ch_gr->SetLineColor(3);
186 // ch_gr->SetLineWidth(3);
187 ch_gr->SetFillStyle(1001);
188
189 return ch_gr;
190
191 }
192
193
194
195 TGraph* set_lep_ch_tanBeta3(){
196
197 double ch_m0[17];
198 double ch_m12[17];
199
200 ch_m0[0] = 0;
201 ch_m0[1] = 100;
202 ch_m0[2] = 150;
203 ch_m0[3] = 200;
204 ch_m0[4] = 250;
205 ch_m0[5] = 300;
206 ch_m0[6] = 350;
207 ch_m0[7] = 400;
208 ch_m0[8] = 450;
209 ch_m0[9] = 500;
210 ch_m0[10] = 550;
211 ch_m0[11] = 600;
212 ch_m0[12] = 650;
213 ch_m0[13] = 700;
214 ch_m0[14] = 750;
215 ch_m0[15] = 750;
216 ch_m0[16] = 0;
217
218 ch_m12[0] = 170;
219 ch_m12[1] = 168;
220 ch_m12[2] = 167;
221 ch_m12[3] = 165;
222 ch_m12[4] = 163;
223 ch_m12[5] = 161;
224 ch_m12[6] = 158;
225 ch_m12[7] = 156;
226 ch_m12[8] = 154;
227 ch_m12[9] = 152;
228 ch_m12[10] = 150;
229 ch_m12[11] = 148;
230 ch_m12[12] = 147;
231 ch_m12[13] = 145;
232 ch_m12[14] = 144;
233 ch_m12[15] = 0;
234 ch_m12[16] = 0;
235
236 TGraph* ch_gr = new TGraph(17,ch_m0,ch_m12);
237
238 ch_gr->SetFillColor(3);
239 ch_gr->SetLineColor(3);
240 // ch_gr->SetLineWidth(3);
241 ch_gr->SetFillStyle(1001);
242
243 return ch_gr;
244
245 }
246
247
248 TGraph* set_lep_ch_tanBeta50(){
249
250 double ch_m0[21];
251 double ch_m12[21];
252
253 ch_m0[0] = 200;
254 ch_m0[1] = 250;
255 ch_m0[2] = 300;
256 ch_m0[3] = 350;
257 ch_m0[4] = 400;
258 ch_m0[5] = 450;
259 ch_m0[6] = 500;
260 ch_m0[7] = 550;
261 ch_m0[8] = 600;
262 ch_m0[9] = 650;
263 ch_m0[10] = 700;
264 ch_m0[11] = 750;
265 ch_m0[12] = 800;
266 ch_m0[13] =850;
267 ch_m0[14] = 900;
268 ch_m0[15] = 950;
269 ch_m0[16] = 1000;
270 ch_m0[17] = 1050;
271 ch_m0[18] = 1100;
272 ch_m0[19] = 1100;
273 ch_m0[20] = 200;
274
275 ch_m12[0] = 157;
276 ch_m12[1] = 156;
277 ch_m12[2] = 156;
278 ch_m12[3] = 155;
279 ch_m12[4] = 155;
280 ch_m12[5] = 154;
281 ch_m12[6] = 154;
282 ch_m12[7] = 153;
283 ch_m12[8] = 153;
284 ch_m12[9] = 152;
285 ch_m12[10] = 152;
286 ch_m12[11] = 152;
287 ch_m12[12] = 152;
288 ch_m12[13] = 152;
289 ch_m12[14] = 152;
290 ch_m12[15] = 153;
291 ch_m12[16] = 153;
292 ch_m12[17] = 153;
293 ch_m12[18] = 154;
294 ch_m12[19] = 0;
295 ch_m12[20] = 0;
296
297
298 TGraph* ch_gr = new TGraph(21,ch_m0,ch_m12);
299
300 ch_gr->SetFillColor(3);
301 ch_gr->SetLineColor(3);
302 ch_gr->SetFillStyle(1001);
303
304 return ch_gr;
305
306 }
307
308
309 TGraph* set_lep_ch(Int_t tanBeta){
310 if(tanBeta == 3) return set_lep_ch_tanBeta3();
311 if(tanBeta == 10) return set_lep_ch_tanBeta10();
312 if(tanBeta == 50) return set_lep_ch_tanBeta50();
313 }
314
315
316 TGraph* set_lep_sl(Int_t tanBeta){
317
318 // CMS SUSY Summer2010 implementation
319 // double sl_m0[] = {0, 0, 30, 50, 60, 75, 80,90,100};
320 // double sl_m12[] = {0,245,240,220,200,150,100,50,0};
321
322 //contour from D0 trilepton paper (PLB 680 (2009) 34-43)
323
324 double *sl_m0 = 0;
325 double *sl_m12 = 0;
326 int n = 0;
327
328 double sl_m0_3[] ={0, 0, 10, 20, 30, 40, 50, 60, 70, 77,88,95};
329 double sl_m12_3[]={0,245,242,239,232,222,209,189,165,140,60,0};
330 int n_3 = 12;
331
332 double sl_m0_10[]={ 0, 0, 11, 20, 24, 49, 70, 82,88,90};
333 double sl_m12_10[]={0,240,237,233,230,200,150,100,50,0};
334 int n_10 = 10;
335
336 if (tanBeta==3){
337 sl_m0 = sl_m0_3;
338 sl_m12 = sl_m12_3;
339 n = n_3;
340 }
341 //CMS PTDR-II
342 //* Selectron_R line mass=99, ISASUGRA7.69, A0=0, m_top=175, tan(beta]=10
343 if (tanBeta==10 || tanBeta==50){
344 sl_m0 = sl_m0_10;
345 sl_m12 = sl_m12_10;
346 n = n_10;
347 }
348
349 TGraph* lep_sl = new TGraph(n,sl_m0,sl_m12);
350
351 lep_sl->SetFillColor(5);
352 lep_sl->SetLineColor(5);
353 lep_sl->SetFillStyle(1001);
354
355 return lep_sl;
356 }
357
358
359 TGraph* set_tev_sg_cdf(Int_t tanBeta){
360
361 // double sg_m0[] = {0, 0, 20, 50,100,150,200,250,300,350,400,450,500,550,600,600};
362 // double sg_m12[] = {0,160,169,170,160,155,150,122,116,112,110,106,105,100, 98, 0};
363 // int np=16;
364 //New CHF from CDF plot in ICHEP2010 talk (E. Halkiadakis)
365 double sg_m0[]= {0, 0, 30, 75,150,185,225,310,360,400,430,500,600,600};
366 double sg_m12[]={0,162,168,170,160,150,130,120,109,108,100, 96, 95, 0};
367 int np=14;
368
369 TGraph* sg_gr = new TGraph(np,sg_m0,sg_m12);
370
371 // gStyle->SetHatchesLineWidth(3);
372
373 sg_gr->SetFillColor(2);
374 sg_gr->SetLineColor(2);
375 // sg_gr->SetLineWidth(3);
376 sg_gr->SetFillStyle(1001);
377
378 return sg_gr;
379
380 }
381
382 TGraph* set_tev_sg_d0(Int_t tanBeta){
383
384 // double sgd_m0[] = {0, 0, 50, 100,150,200,250,300,350,400,450,500,550,600,600};
385 // double sgd_m12[] = {0,168,167,162,157,145,125,120,110,108,95, 94 ,94 ,93,0};
386 // int np=15;
387 double sgd_m0[]= {0, 0, 30, 80,150,240,320,400,500,600,600,0};
388 double sgd_m12[]={0,167,166,162,156,138,121,109,105,105, 0,0};
389 int npd=12;
390
391 TGraph* sgd_gr = new TGraph(npd,sgd_m0,sgd_m12);
392
393 gStyle->SetHatchesLineWidth(3);
394
395 sgd_gr->SetFillColor(kMagenta+3);
396 sgd_gr->SetLineColor(kMagenta+3);
397 sgd_gr->SetLineWidth(3);
398 sgd_gr->SetFillStyle(3335);
399
400 return sgd_gr;
401
402 }
403
404 // TGraph* set_tev_tlp_cdf(Int_t tanBeta){
405 // double tlp1_m0[] = { 0, 20, 40, 60, 70, 80, 90, 80, 70, 60};
406 // double tlp1_m12[] = {170,185,200,215,220,215,210,190,175,160};
407 // TGraph* tlp1_gr = new TGraph(10,tlp1_m0,tlp1_m12);
408
409 // tlp1_gr->SetFillColor(4);
410 // tlp1_gr->SetLineColor(4);
411 // tlp1_gr->SetFillStyle(1001);
412
413 // return tlp1_gr;
414 // }
415
416 // TGraph* set_tev_tlp_d0(Int_t tanBeta){
417 // double tlp2_m0[] = { 70, 80, 90,100,105,110,120,130,140};
418 // double tlp2_m12[] = {160,172,184,196,205,195,185,173,160};
419 // TGraph* tlp2_gr = new TGraph(9,tlp2_m0,tlp2_m12);
420
421 // tlp2_gr->SetFillColor(4);
422 // tlp2_gr->SetFillStyle(1001);
423
424 // return tlp2_gr;
425
426 // }
427
428
429
430
431
432 TGraph* set_tev_stau(Int_t tanBeta){
433
434 double st_m0_tanBeta3[] = {0,10,20,30,40,50,60,70,80,90,100,0};
435 double st_m12_tanBeta3[] = {337,341,356,378,406,439,473,510,548,587,626,626};
436
437 double st_m0_tanBeta10[] = {0,10,20,30,40,50,60,70,80,90,100,0};
438 double st_m12_tanBeta10[] = {213,220,240,275,312,351,393,435,476,518,559,559};
439
440 double st_m0_tanBeta50[] = {200,210,220,230,240,250,260,270,280,290,310,325,200,200};
441 double st_m12_tanBeta50[] = {206,226,246,267,288,310,332,354,376,399,450,500,500,206};
442
443
444 TGraph* st_gr_tanBeta3 = new TGraph(12,st_m0_tanBeta3,st_m12_tanBeta3);
445 TGraph* st_gr_tanBeta10 = new TGraph(12,st_m0_tanBeta10,st_m12_tanBeta10);
446 TGraph* st_gr_tanBeta50 = new TGraph(14,st_m0_tanBeta50,st_m12_tanBeta50);
447
448 st_gr_tanBeta3->SetFillColor(40);
449 st_gr_tanBeta3->SetFillStyle(1001);
450
451 st_gr_tanBeta50->SetFillColor(40);
452 st_gr_tanBeta50->SetFillStyle(1001);
453
454 st_gr_tanBeta10->SetFillColor(40);
455 st_gr_tanBeta10->SetFillStyle(1001);
456
457
458 if(tanBeta == 3)return st_gr_tanBeta3;
459 if(tanBeta == 10)return st_gr_tanBeta10;
460 if(tanBeta == 50)return st_gr_tanBeta50;
461
462 }
463
464 TGraph* sq_LEP(){
465 double sq[] = {0,0,100,100};
466 double gl[] = {0,2000,2000,0};
467 TGraph* res = new TGraph(4,sq,gl);
468 res->SetFillColor(kBlue);
469 return res;
470 }
471
472 TGraph* gl_TEV(){
473 double sq[] = {0,2000,2000,0};
474 double gl[] = {0,0,190,190};
475 TGraph* res = new TGraph(4,sq,gl);
476 res->SetFillColor(kGreen+2);
477 return res;
478 }
479
480 TGraph* gl_CDF(){
481 double sq[] = {0,2000,2000,0};
482 double gl[] = {190,190,230,230};
483 TGraph* res = new TGraph(4,sq,gl);
484 res->SetFillColor(kOrange+5);
485 return res;
486 }
487
488 TGraph* gl_DEZ(){
489 double sq[] = {0,2000,2000,0};
490 double gl[] = {230,230,255,255};
491 TGraph* res = new TGraph(4,sq,gl);
492 res->SetFillColor(kYellow-5);
493 return res;
494 }
495
496 TGraph* gl_WHT(){
497 double sq[] = {101,2000,2000,101};
498 double gl[] = {256,256,400,400};
499 TGraph* res = new TGraph(4,sq,gl);
500 res->SetFillColor(kWhite);
501 return res;
502 }
503
504
505
506 TF1* constant_squark(int tanBeta,int i){
507 //---lines of constant gluino/squark
508 double coef1 = 0.35;
509 double coef2[] = {5,5,4.6,4.1};
510
511 char hname[200];
512
513 sprintf(hname,"lnsq_%i",i);
514
515
516 TF1* lnsq = new TF1(hname,"sqrt([0]-x*x*[1]-[2])",0,1000);
517 lnsq->SetParameter(0,(500+150*(i-1))*(500+150*(i-1))/coef2[i]);
518 lnsq->SetParameter(1,1./coef2[i]);
519 lnsq->SetParameter(2,-coef1*91*91*(2*TMath::Cos(TMath::ATan(tanBeta)))/coef2[i]);//--tanbeta=10 --> cos2beta = -99/101
520 lnsq->SetLineWidth(1);
521
522
523 lnsq->SetLineColor(kGray);
524
525 return lnsq;
526 }
527
528
529 TF1* constant_gluino(int tanBeta,int i){
530 //---lines of constant gluino/squark
531 double coef1 = 0.35;
532 double coef2[] = {5,5,4.6,4.1};
533
534 char hname[200];
535
536 sprintf(hname,"lngl_%i",i);
537
538 TF1* lngl = new TF1(hname,"[0]+x*[1]",0,1000);
539 lngl->SetParameter(0,(500+150.*(i-1))/2.4);
540 lngl->SetParameter(1,-40./1400);
541 lngl->SetLineWidth(1);
542 lngl->SetLineColor(kGray);
543
544 return lngl;
545 }
546
547
548 TLatex* constant_squark_text(Int_t it,TF1& lnsq,Int_t tanBeta_){
549 char legnm[200];
550
551 sprintf(legnm,"#font[92]{#tilde{q}(%i)GeV}",500+150*(it-1));
552 Double_t place_x = 170;
553 if(tanBeta_ == 50)place_x = 290;
554 TLatex* t3 = new TLatex(place_x+10*(it-1),lnsq.Eval(place_x+10*(it-1))+5,legnm);
555 t3->SetTextSize(0.03);
556 t3->SetTextAngle(-8);
557 t3->SetTextColor(kGray+2);
558
559
560
561 return t3;
562 }
563
564 TLatex* constant_gluino_text(Int_t it,TF1& lngl){
565 char legnm[200];
566
567 sprintf(legnm,"#font[12]{#tilde{g}}#font[92]{(%i)GeV}",500+150*(it-1));
568 TLatex* t4 = new TLatex(423,18+lngl.Eval(480),legnm);
569 t4->SetTextSize(0.03);
570 t4->SetTextAlign(13);
571 t4->SetTextColor(kGray+2);
572
573 return t4;
574 }
575
576
577 TGraphErrors* getLO_tanBeta3(){
578
579
580
581 Int_t nl = 9;
582 Double_t xl[9];
583 Double_t yl[9];
584 Double_t exl[9];
585 Double_t eyl[9];
586
587 // cout << " n " << hist->GetXaxis()->GetNbins() << endl;
588
589
590 xl[0] = 0;
591 yl[0] = 265;
592 xl[1] = 100;
593 yl[1] = 258;
594 xl[2] = 200;
595 yl[2] = 250;
596 xl[3] = 250;
597 yl[3] = 240;
598 xl[4] = 300;
599 yl[4] = 210;
600 xl[5] = 340;
601 yl[5] = 177;
602 xl[6] = 400;
603 yl[6] = 140;
604 xl[7] = 450;
605 yl[7] = 120;
606 xl[8] = 520;
607 yl[8] =100;
608
609
610 TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
611 gr1->SetMarkerColor(kGreen+2);
612 gr1->SetMarkerStyle(21);
613
614
615 //gr1->Draw("LP");
616
617 TSpline3 *s = new TSpline3("grs",gr1);
618 s->SetLineColor(kGreen+2);
619 s->SetLineStyle(4);
620 s->SetLineWidth(3);
621
622
623 return gr1;
624
625
626
627 }
628
629 TGraphErrors* getLO_tanBeta10(){
630
631
632
633 Int_t nl = 10;
634 Double_t xl[10];
635 Double_t yl[10];
636 Double_t exl[10];
637 Double_t eyl[10];
638
639 // cout << " n " << hist->GetXaxis()->GetNbins() << endl;
640
641 xl[0] = 0;
642 yl[0] = 270;
643 xl[1] = 100;
644 yl[1] = 260;
645 xl[2] = 200;
646 yl[2] = 250;
647 xl[3] = 250;
648 yl[3] = 240;
649 xl[4] = 300;
650 yl[4] = 210;
651 xl[5] = 350;
652 yl[5] = 174;
653 xl[6] = 400;
654 yl[6] = 147;
655 xl[7] = 450;
656 yl[7] = 127;
657 xl[8] = 500;
658 yl[8] =115;
659 xl[9] = 520;
660 yl[9] = 112;
661
662
663
664
665
666
667 TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
668 gr1->SetMarkerColor(kGreen+2);
669 gr1->SetMarkerStyle(21);
670
671
672 //gr1->Draw("LP");
673
674 TSpline3 *s = new TSpline3("grs",gr1);
675 s->SetLineColor(kGreen+2);
676 s->SetLineStyle(4);
677 s->SetLineWidth(3);
678
679
680 return gr1;
681
682
683
684 }
685
686 TGraphErrors* getLO_tanBeta50(){
687
688
689
690 Int_t nl = 10;
691 Double_t xl[10];
692 Double_t yl[10];
693 Double_t exl[10];
694 Double_t eyl[10];
695
696 // cout << " n " << hist->GetXaxis()->GetNbins() << endl;
697
698
699 xl[0] = 200;
700 yl[0] = 239;
701 xl[1] = 210;
702 yl[1] = 249;
703 xl[2] = 229;
704 yl[2] = 260;
705 xl[3] = 250;
706 yl[3] = 245;
707 xl[4] = 300;
708 yl[4] = 210;
709 xl[5] = 350;
710 yl[5] = 180;
711 xl[6] = 400;
712 yl[6] = 160;
713 xl[7] = 450;
714 yl[7] = 150;
715 xl[8] = 500;
716 yl[8] =140;
717 xl[9] = 520;
718 yl[9] = 137;
719
720
721
722
723
724
725 TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
726 gr1->SetMarkerColor(kGreen+2);
727 gr1->SetMarkerStyle(21);
728
729
730 //gr1->Draw("LP");
731
732 TSpline3 *s = new TSpline3("grs",gr1);
733 s->SetLineColor(kGreen+2);
734 s->SetLineStyle(4);
735 s->SetLineWidth(3);
736
737
738 return gr1;
739
740
741
742 }
743
744
745
746 TGraphErrors* getExpected_NLO_tanBeta3(){
747
748 Int_t nl = 11;
749 Double_t xl[11];
750 Double_t yl[11];
751 Double_t exl[11];
752 Double_t eyl[11];
753
754 xl[0] = 0;
755 yl[0] = 283;
756 xl[1] = 100;
757 yl[1] = 280;
758 xl[2] = 150;
759 yl[2] = 279;
760 xl[3] = 200;
761 yl[3] = 275;
762 xl[4] = 250;
763 yl[4] = 270;
764 xl[5] = 300;
765 yl[5] = 255;
766 xl[6] = 350;
767 yl[6] = 225;
768 xl[7] = 400;
769 yl[7] = 195;
770 xl[8] = 450;
771 yl[8] = 175;
772 xl[9] = 500;
773 yl[9] = 155;
774 xl[10] = 550;
775 yl[10] = 150;
776
777
778
779 TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
780 gr1->SetMarkerColor(kBlue);
781 gr1->SetMarkerStyle(21);
782
783
784 //gr1->Draw("LP");
785
786 TSpline3 *s = new TSpline3("grs",gr1);
787 s->SetLineColor(kBlue);
788 s->SetLineStyle(2);
789 s->SetLineWidth(3);
790
791
792 return gr1;
793
794
795
796
797
798 }
799
800 TGraphErrors* getExpected_NLO_tanBeta10(){
801
802 Int_t nl = 11;
803 Double_t xl[11];
804 Double_t yl[11];
805 Double_t exl[11];
806 Double_t eyl[11];
807
808 // cout << " n " << hist->GetXaxis()->GetNbins() << endl;
809
810 xl[0] = 0;
811 yl[0] = 283;
812 xl[1] = 100;
813 yl[1] = 280;
814 xl[2] = 150;
815 yl[2] = 279;
816 xl[3] = 200;
817 yl[3] = 275;
818 xl[4] = 250;
819 yl[4] = 270;
820 xl[5] = 300;
821 yl[5] = 255;
822 xl[6] = 350;
823 yl[6] = 225;
824 xl[7] = 400;
825 yl[7] = 195;
826 xl[8] = 450;
827 yl[8] = 175;
828 xl[9] = 500;
829 yl[9] = 165;
830 xl[10] = 550;
831 yl[10] = 150;
832
833
834
835
836
837 TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
838 gr1->SetMarkerColor(kBlue);
839 gr1->SetMarkerStyle(21);
840
841
842 //gr1->Draw("LP");
843
844 TSpline3 *s = new TSpline3("grs",gr1);
845 s->SetLineColor(kBlue);
846 s->SetLineStyle(2);
847 s->SetLineWidth(3);
848
849
850 return gr1;
851
852
853
854
855
856 }
857
858
859 TGraphErrors* getExpected_NLO_tanBeta50(){
860
861 Int_t nl = 10;
862 Double_t xl[10];
863 Double_t yl[10];
864 Double_t exl[10];
865 Double_t eyl[10];
866
867 // cout << " n " << hist->GetXaxis()->GetNbins() << endl;
868
869 xl[0] = 200;
870 yl[0] = 287;
871 xl[1] = 220;
872 yl[1] = 287;
873 xl[2] = 245;
874 yl[2] = 287;
875 xl[3] = 270;
876 yl[3] = 265;
877 xl[4] = 300;
878 yl[4] = 245;
879 xl[5] = 350;
880 yl[5] = 222;
881 xl[6] = 400;
882 yl[6] = 197;
883 xl[7] = 450;
884 yl[7] = 180;
885 xl[8] = 500;
886 yl[8] = 168;
887 xl[9] = 550;
888 yl[9] = 145;
889
890
891
892
893
894 TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
895 gr1->SetMarkerColor(kBlue);
896 gr1->SetMarkerStyle(21);
897
898
899 //gr1->Draw("LP");
900
901 TSpline3 *s = new TSpline3("grs",gr1);
902 s->SetLineColor(kBlue);
903 s->SetLineStyle(2);
904 s->SetLineWidth(3);
905
906
907 return gr1;
908
909
910
911
912
913 }
914
915
916 TGraphErrors* getObserved_NLO_tanBeta3(){
917
918 Int_t nl = 11;
919 Double_t xl[11];
920 Double_t yl[11];
921 Double_t exl[11];
922 Double_t eyl[11];
923
924 // cout << " n " << hist->GetXaxis()->GetNbins() << endl;
925
926
927
928 xl[0] = 0;
929 yl[0] = 274;
930 xl[1] = 100;
931 yl[1] = 270;
932 xl[2] = 150;
933 yl[2] = 268;
934 xl[3] = 200;
935 yl[3] = 265;
936 xl[4] = 250;
937 yl[4] = 255;
938 xl[5] = 300;
939 yl[5] = 230;
940 xl[6] = 350;
941 yl[6] = 195;
942 xl[7] = 400;
943 yl[7] = 160;
944 xl[8] = 450;
945 yl[8] = 140;
946 xl[9] = 480;
947 yl[9] = 130;
948 xl[10] = 530;
949 yl[10] = 120;
950
951
952
953
954 TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
955 gr1->SetMarkerColor(kBlue);
956 gr1->SetMarkerStyle(21);
957
958
959 //gr1->Draw("LP");
960
961 TSpline3 *s = new TSpline3("grs",gr1);
962 s->SetLineColor(kRed);
963 // s->SetLineStyle(2);
964 s->SetLineWidth(3);
965
966
967 return gr1;
968
969
970
971
972
973 }
974
975
976
977 TGraphErrors* getObserved_NLO_tanBeta10(){
978
979 Int_t nl = 11;
980 Double_t xl[11];
981 Double_t yl[11];
982 Double_t exl[11];
983 Double_t eyl[11];
984
985 // cout << " n " << hist->GetXaxis()->GetNbins() << endl;
986
987 xl[0] = 0;
988 yl[0] = 278;
989 xl[1] = 100;
990 yl[1] = 270;
991 xl[2] = 150;
992 yl[2] = 267;
993 xl[3] = 200;
994 yl[3] = 262;
995 xl[4] = 250;
996 yl[4] = 250;
997 xl[5] = 300;
998 yl[5] = 225;
999 xl[6] = 350;
1000 yl[6] = 192;
1001 xl[7] = 400;
1002 yl[7] = 163;
1003 xl[8] = 450;
1004 yl[8] = 148;
1005 xl[9] = 500;
1006 yl[9] = 140;
1007 xl[10] = 520;
1008 yl[10] = 137;
1009
1010
1011
1012
1013
1014 TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
1015 gr1->SetMarkerColor(kBlue);
1016 gr1->SetMarkerStyle(21);
1017
1018
1019 //gr1->Draw("LP");
1020
1021 TSpline3 *s = new TSpline3("grs",gr1);
1022 s->SetLineColor(kRed);
1023 // s->SetLineStyle(2);
1024 s->SetLineWidth(3);
1025
1026
1027 return gr1;
1028
1029
1030
1031
1032
1033 }
1034
1035
1036 TGraphErrors* getObserved_NLO_tanBeta50(){
1037
1038 Int_t nl = 10;
1039 Double_t xl[10];
1040 Double_t yl[10];
1041 Double_t exl[10];
1042 Double_t eyl[10];
1043
1044 // cout << " n " << hist->GetXaxis()->GetNbins() << endl;
1045
1046
1047 xl[0] = 200;
1048 yl[0] = 243;
1049 xl[1] = 220;
1050 yl[1] = 264;
1051 xl[2] = 235;
1052 yl[2] = 278;
1053 xl[3] = 250;
1054 yl[3] = 267;
1055 xl[4] = 300;
1056 yl[4] = 230;
1057 xl[5] = 350;
1058 yl[5] = 205;
1059 xl[6] = 400;
1060 yl[6] = 184;
1061 xl[7] = 450;
1062 yl[7] = 168;
1063 xl[8] = 500;
1064 yl[8] = 156;
1065 xl[9] = 520;
1066 yl[9] = 148;
1067
1068
1069
1070
1071
1072 TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
1073 gr1->SetMarkerColor(kBlue);
1074 gr1->SetMarkerStyle(21);
1075
1076
1077 //gr1->Draw("LP");
1078
1079 TSpline3 *s = new TSpline3("grs",gr1);
1080 s->SetLineColor(kRed);
1081 // s->SetLineStyle(2);
1082 s->SetLineWidth(3);
1083
1084
1085 return gr1;
1086
1087
1088
1089
1090
1091 }
1092