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

# User Rev Content
1 auterman 1.1 #include "SusyScan.h"
2     #include "GeneratorMasses.h"
3    
4 auterman 1.5 #include "TGraph.h"
5 auterman 1.10 #include "TLatex.h"
6     #include "TF1.h"
7 auterman 1.5 #include "TGraphErrors.h"
8     #include "TSpline.h"
9 auterman 1.10 #include "TStyle.h"
10     #include "TMath.h"
11 auterman 1.5
12 auterman 1.1 #include <cmath>
13 auterman 1.8 #include <iostream>
14 auterman 1.1
15    
16 auterman 1.3 double Luminosity = 36.3; //[pb^-1]
17 auterman 1.1 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 auterman 1.11 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 auterman 1.12 double SignalKfactor(const SusyScan* p){return p->signal_kfactor; }
32 auterman 1.11
33 auterman 1.1 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 auterman 1.5 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 auterman 1.4 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 auterman 1.6 double ExpExclCL(const SusyScan* p){ return (p->CLs_b_xsec<=0.05 ? 1:0.01); }
42 auterman 1.7 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 auterman 1.6 double ObsExclCL(const SusyScan* p){ return (p->CLs_xsec<=0.05 ? 1:0.01); }
47 auterman 1.1 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 auterman 1.3 double XsecOverExpected(const SusyScan* p){ return (ExpXsecLimit(p)==0 ? 9999. : Xsection(p)/ExpXsecLimit(p)); }
50 auterman 1.1 double SignalAcceptance(const SusyScan* p){ return p->signal / (Luminosity*Xsection(p)); }
51 auterman 1.5 double ExpNSignLimit(const SusyScan* p){ return p->ExpNsigLimit; }
52     double ObsNSignLimit(const SusyScan* p){ return p->ObsNsigLimit; }
53 auterman 1.3 double PLExpNSignLimit(const SusyScan* p){ return p->PLExpNsigLimit; }
54 auterman 1.5 double PLObsNSignLimit(const SusyScan* p){ return p->PLObsNsigLimit; }
55 auterman 1.3 double PLExpXsecLimit(const SusyScan* p){ return p->PLExpXsecLimit; }
56     double PLObsXsecLimit(const SusyScan* p){ return p->PLObsXsecLimit; }
57 auterman 1.4 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 auterman 1.5 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 auterman 1.8 double SignalContamination(const SusyScan* p){return p->signal_contamination; }
72 auterman 1.1
73 auterman 1.11 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 auterman 1.1 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 auterman 1.5
125 auterman 1.10 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 auterman 1.5
129 auterman 1.10 TGraph* sn_d0_gr = new TGraph(14,sn_m0,sn_m12);
130 auterman 1.5
131     sn_d0_gr->SetFillColor(kGreen+3);
132     sn_d0_gr->SetFillStyle(1001);
133    
134     return sn_d0_gr;
135     }
136    
137 auterman 1.10 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 auterman 1.5
141 auterman 1.10 TGraph* sn_d0_gr_2 = new TGraph(9,sn_m0,sn_m12);
142 auterman 1.5
143     sn_d0_gr_2->SetFillColor(kGreen+3);
144     sn_d0_gr_2->SetFillStyle(1001);
145    
146 auterman 1.10 return sn_d0_gr_2;
147     }
148    
149    
150     TGraph* set_lep_ch_tanBeta10(){
151    
152 auterman 1.12 double ch_m0[12];
153     double ch_m12[12];
154 auterman 1.10
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 auterman 1.12 ch_m0[9] = 1000;
165     ch_m0[10] = 1000;
166     ch_m0[11] = 0;
167 auterman 1.10
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 auterman 1.12 ch_m12[9] = 154;
178 auterman 1.10 ch_m12[10] = 0;
179 auterman 1.12 ch_m12[11] = 0;
180 auterman 1.10
181    
182 auterman 1.12 TGraph* ch_gr = new TGraph(12,ch_m0,ch_m12);
183 auterman 1.10
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 auterman 1.5
191     }
192    
193    
194    
195 auterman 1.10 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 auterman 1.5
248 auterman 1.10 TGraph* set_lep_ch_tanBeta50(){
249 auterman 1.5
250 auterman 1.10 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 auterman 1.5
275 auterman 1.10 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 auterman 1.5
298 auterman 1.10 TGraph* ch_gr = new TGraph(21,ch_m0,ch_m12);
299 auterman 1.5
300     ch_gr->SetFillColor(3);
301 auterman 1.10 ch_gr->SetLineColor(3);
302 auterman 1.5 ch_gr->SetFillStyle(1001);
303    
304     return ch_gr;
305    
306     }
307    
308    
309 auterman 1.10 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 auterman 1.5
315    
316 auterman 1.10 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 auterman 1.5
349 auterman 1.10 TGraph* lep_sl = new TGraph(n,sl_m0,sl_m12);
350 auterman 1.5
351     lep_sl->SetFillColor(5);
352 auterman 1.10 lep_sl->SetLineColor(5);
353 auterman 1.5 lep_sl->SetFillStyle(1001);
354    
355     return lep_sl;
356     }
357    
358    
359 auterman 1.10 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 auterman 1.5
373     sg_gr->SetFillColor(2);
374 auterman 1.10 sg_gr->SetLineColor(2);
375     // sg_gr->SetLineWidth(3);
376 auterman 1.5 sg_gr->SetFillStyle(1001);
377    
378     return sg_gr;
379    
380     }
381    
382 auterman 1.10 TGraph* set_tev_sg_d0(Int_t tanBeta){
383 auterman 1.5
384 auterman 1.10 // 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 auterman 1.5
400     return sgd_gr;
401    
402     }
403    
404 auterman 1.10 // 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 auterman 1.12 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 auterman 1.10
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 auterman 1.5
515 auterman 1.10
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 auterman 1.5
525 auterman 1.10 return lnsq;
526 auterman 1.5 }
527    
528    
529 auterman 1.10 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 auterman 1.5
534 auterman 1.10 char hname[200];
535 auterman 1.5
536 auterman 1.10 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 auterman 1.5 }
546    
547    
548 auterman 1.10 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 auterman 1.5
564 auterman 1.10 TLatex* constant_gluino_text(Int_t it,TF1& lngl){
565     char legnm[200];
566 auterman 1.5
567 auterman 1.10 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 auterman 1.5
573 auterman 1.10 return t4;
574 auterman 1.5 }
575    
576    
577 auterman 1.9 TGraphErrors* getLO_tanBeta3(){
578 auterman 1.5
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 auterman 1.9
590     xl[0] = 0;
591 auterman 1.5 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 auterman 1.9 xl[7] = 450;
605 auterman 1.5 yl[7] = 120;
606 auterman 1.9 xl[8] = 520;
607 auterman 1.5 yl[8] =100;
608    
609 auterman 1.9
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 auterman 1.5
689 auterman 1.9
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 auterman 1.5
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 auterman 1.9
746     TGraphErrors* getExpected_NLO_tanBeta3(){
747 auterman 1.5
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 auterman 1.9 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 auterman 1.5
791    
792 auterman 1.9 return gr1;
793    
794 auterman 1.5
795 auterman 1.9
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 auterman 1.5 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 auterman 1.9 yl[9] = 165;
830 auterman 1.5 xl[10] = 550;
831 auterman 1.9 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 auterman 1.5
867 auterman 1.9 // 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 auterman 1.5
893    
894     TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
895 auterman 1.9 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 auterman 1.5
907     return gr1;
908    
909    
910    
911    
912    
913     }
914    
915    
916 auterman 1.9 TGraphErrors* getObserved_NLO_tanBeta3(){
917 auterman 1.5
918 auterman 1.9 Int_t nl = 11;
919 auterman 1.5 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 auterman 1.9
928     xl[0] = 0;
929     yl[0] = 274;
930 auterman 1.5 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 auterman 1.9 yl[5] = 230;
940 auterman 1.5 xl[6] = 350;
941 auterman 1.9 yl[6] = 195;
942 auterman 1.5 xl[7] = 400;
943 auterman 1.9 yl[7] = 160;
944 auterman 1.5 xl[8] = 450;
945 auterman 1.9 yl[8] = 140;
946     xl[9] = 480;
947     yl[9] = 130;
948     xl[10] = 530;
949 auterman 1.5 yl[10] = 120;
950 auterman 1.9
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 auterman 1.5
1068 auterman 1.9
1069    
1070 auterman 1.5
1071    
1072     TGraphErrors* gr1 = new TGraphErrors(nl,xl,yl,exl,eyl);
1073 auterman 1.9 gr1->SetMarkerColor(kBlue);
1074     gr1->SetMarkerStyle(21);
1075 auterman 1.5
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