ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/SusyScan/PlotScript/GlobalFunctions.h
Revision: 1.14
Committed: Fri May 20 07:39:34 2011 UTC (13 years, 11 months ago) by auterman
Content type: text/plain
Branch: MAIN
Changes since 1.13: +151 -3 lines
Log Message:
post CWR comments

File Contents

# Content
1 #include "SusyScan.h"
2 #include "GeneratorMasses.h"
3 #include "ExclusionPlot.h"
4
5 #include "TGraph.h"
6 #include "TLatex.h"
7 #include "TF1.h"
8 #include "TH1F.h"
9 #include "TGraphErrors.h"
10 #include "TSpline.h"
11 #include "TStyle.h"
12 #include "TMath.h"
13 #include "TRint.h"
14 #include "TROOT.h"
15 #include "TPad.h"
16
17 #include <cmath>
18 #include <iostream>
19
20
21 double Luminosity = 36.0; //[pb^-1]
22 double Mzero(const SusyScan* p){ return p->Mzero; }
23 double Mhalf(const SusyScan* p){ return p->Mhalf; }
24 double MGluino(const SusyScan* p){ return p->MGL; }
25 double MSquarkL(const SusyScan* p){ return p->MUL; }
26 double MSquarkR(const SusyScan* p){ return p->MUR; }
27 double MChi1(const SusyScan* p){ return p->MZ1; }
28 double MChi2(const SusyScan* p){ return p->MZ2; }
29 double MChi3(const SusyScan* p){ return p->MZ3; }
30 double MChi4(const SusyScan* p){ return p->MZ4; }
31 double MCha1(const SusyScan* p){ return p->MW1; }
32 double MCha2(const SusyScan* p){ return p->MW2; }
33 double MTAU1(const SusyScan* p){ return p->MTAU1; }
34 double SignalUncertKfactor(const SusyScan* p){return fabs(p->signal_kfactor_UP-p->signal_kfactor_DN)/(2.0*p->signal_kfactor); }
35 double SignalUncertJEC(const SusyScan* p){ return (fabs(p->signal_JEC_UP)+fabs(p->signal_JEC_DN))/(2.0*p->signal); }
36 double SignalUncertMuIso(const SusyScan* p){ return (fabs(p->signal_MuIso_UP)+fabs(p->signal_MuIso_DN))/(2.0*p->signal); }
37 double SignalKfactor(const SusyScan* p){return p->signal_kfactor; }
38 double ChargedLSP(const SusyScan* p){ return (fabs(p->MTAU1) < fabs(p->MZ1) ? 0.01 : 1); }
39
40 double Xsection(const SusyScan* p){ return p->Xsection; }
41 double ExpXsecLimit(const SusyScan* p){ return p->ExpXsecLimit; }
42 double ObsXsecLimit(const SusyScan* p){ return p->ObsXsecLimit; }
43 double Signal(const SusyScan* p){ return p->signal; }
44 double SignalUncertainty(const SusyScan* p){ return p->signal_uncertainty; }
45 double SignalRelUncertainty(const SusyScan* p){ return p->signal_uncertainty/p->signal; }
46 double ExpExclusion(const SusyScan* p){ return (ExpXsecLimit(p)<Xsection(p)&&ExpXsecLimit(p)>0.01?1:0.01); }
47 double ObsExclusion(const SusyScan* p){ return (ObsXsecLimit(p)<Xsection(p)&&ObsXsecLimit(p)>0.01?1:0.01); }
48 double ExpNoSigExclCL(const SusyScan* p){ return (p->CLs_bNoSig_xsec<=0.05 ? 1:0.01); }
49 double ExpExclCL(const SusyScan* p){ return (p->CLs_b_xsec<=0.05 ? 1:0.01); }
50 double ExpExclCLm2sigma(const SusyScan* p){ return (p->CLs_b_n2_xsec<=0.05 ? 1:0.01); }
51 double ExpExclCLm1sigma(const SusyScan* p){ return (p->CLs_b_n1_xsec<=0.05 ? 1:0.01); }
52 double ExpExclCLp1sigma(const SusyScan* p){ return (p->CLs_b_p1_xsec<=0.05 ? 1:0.01); }
53 double ExpExclCLp2sigma(const SusyScan* p){ return (p->CLs_b_p2_xsec<=0.05 ? 1:0.01); }
54 double ObsExclCL(const SusyScan* p){ return (p->CLs_xsec<=0.05 ? 1:0.01); }
55 double SoverSqrtB(const SusyScan* p){ return p->signal/(sqrt(p->background)+p->background_uncertainty+p->signal_uncertainty); }
56 double XsecOverObserved(const SusyScan* p){ return (ObsXsecLimit(p)==0 ? 9999. : Xsection(p)/ObsXsecLimit(p)); }
57 double XsecOverExpected(const SusyScan* p){ return (ExpXsecLimit(p)==0 ? 9999. : Xsection(p)/ExpXsecLimit(p)); }
58 double SignalAcceptance(const SusyScan* p){ return p->signal / (Luminosity*Xsection(p)); }
59 double ExpNSignLimit(const SusyScan* p){ return p->ExpNsigLimit; }
60 double ObsNSignLimit(const SusyScan* p){ return p->ObsNsigLimit; }
61 double PLExpNSignLimit(const SusyScan* p){ return p->PLExpNsigLimit; }
62 double PLObsNSignLimit(const SusyScan* p){ return p->PLObsNsigLimit; }
63 double PLExpXsecLimit(const SusyScan* p){ return p->PLExpXsecLimit; }
64 double PLObsXsecLimit(const SusyScan* p){ return p->PLObsXsecLimit; }
65 double PLExpExclusion(const SusyScan* p){ return (PLExpXsecLimit(p)<Xsection(p)&&PLExpXsecLimit(p)>0.01?1:0.01); }
66 double PLObsExclusion(const SusyScan* p){ return (PLObsXsecLimit(p)<Xsection(p)&&PLObsXsecLimit(p)>0.01?1:0.01); }
67 double FCExpNSignLimit(const SusyScan* p){ return p->FCExpNsigLimit; }
68 double FCObsNSignLimit(const SusyScan* p){ return p->FCObsNsigLimit; }
69 double FCExpXsecLimit(const SusyScan* p){ return p->FCExpXsecLimit; }
70 double FCObsXsecLimit(const SusyScan* p){ return p->FCObsXsecLimit; }
71 double FCExpExclusion(const SusyScan* p){ return (FCExpXsecLimit(p)<Xsection(p)&&FCExpXsecLimit(p)>0.01?1:0.01); }
72 double FCObsExclusion(const SusyScan* p){ return (FCObsXsecLimit(p)<Xsection(p)&&FCObsXsecLimit(p)>0.01?1:0.01); }
73 double MCMCExpNSignLimit(const SusyScan* p){ return p->MCMCExpNsigLimit; }
74 double MCMCObsNSignLimit(const SusyScan* p){ return p->MCMCObsNsigLimit; }
75 double MCMCExpXsecLimit(const SusyScan* p){ return p->MCMCExpXsecLimit; }
76 double MCMCObsXsecLimit(const SusyScan* p){ return p->MCMCObsXsecLimit; }
77 double MCMCExpExclusion(const SusyScan* p){ return (MCMCExpXsecLimit(p)<Xsection(p)&&MCMCExpXsecLimit(p)>0.01?1:0.01); }
78 double MCMCObsExclusion(const SusyScan* p){ return (MCMCObsXsecLimit(p)<Xsection(p)&&MCMCObsXsecLimit(p)>0.01?1:0.01); }
79 double SignalContamination(const SusyScan* p){return p->signal_contamination; }
80
81 double NLOXsection(const SusyScan* p){ return p->Xsection * p->signal_kfactor; }
82 double NLOExpXsecLimit(const SusyScan* p){ return p->NLO_ExpXsecLimit; }
83 double NLOObsXsecLimit(const SusyScan* p){ return p->NLO_ObsXsecLimit; }
84 double NLOSignal(const SusyScan* p){ return p->NLO_signal; }
85 double NLOSignalUncertainty(const SusyScan* p){ return p->NLO_signal_uncertainty; }
86 double NLOSignalRelUncertainty(const SusyScan* p){ return p->NLO_signal_uncertainty/p->NLO_signal; }
87 double NLOExpExclusion(const SusyScan* p){ return (NLOExpXsecLimit(p)<NLOXsection(p)&&NLOExpXsecLimit(p)>0.01?1:0.01); }
88 double NLOObsExclusion(const SusyScan* p){ return (NLOObsXsecLimit(p)<NLOXsection(p)&&NLOObsXsecLimit(p)>0.01?1:0.01); }
89 double NLOExpCL(const SusyScan* p){ return (p->NLO_CLs_b_xsec); }
90 double NLOExpNoSigExclCL(const SusyScan* p){ return (p->NLO_CLs_bNoSig_xsec<=0.05 ? 1:0.01); }
91 double NLOExpExclCL(const SusyScan* p){ return (p->NLO_CLs_b_xsec<=0.05 ? 1:0.01); }
92 double NLOExpExclCLm2sigma(const SusyScan* p){ return (p->NLO_CLs_b_n2_xsec<=0.05 ? 1:0.01); }
93 double NLOExpExclCLm1sigma(const SusyScan* p){ return (p->NLO_CLs_b_n1_xsec<=0.05 ? 1:0.01); }
94 double NLOExpExclCLp1sigma(const SusyScan* p){ return (p->NLO_CLs_b_p1_xsec<=0.05 ? 1:0.01); }
95 double NLOExpExclCLp2sigma(const SusyScan* p){ return (p->NLO_CLs_b_p2_xsec<=0.05 ? 1:0.01); }
96 double NLOObsExclCL(const SusyScan* p){ return (p->NLO_CLs_xsec<=0.05 ? 1:0.01); }
97
98 double NLOHybridObsCL(const SusyScan* p){ return p->NLOHybrid_CLs_xsec; }
99 double NLOHybridObsExclCL(const SusyScan* p){ return (p->NLOHybrid_CLs_xsec<=0.05 ? 1:0.01); }
100 double NLOHybridObsErrorCL(const SusyScan* p){ return (p->NLOHybrid_CLs_xsec_error<=0.05 ? 1:0.01); }
101
102 double NLOSoverSqrtB(const SusyScan* p){ return p->NLO_signal/(sqrt(p->background)+p->background_uncertainty+p->NLO_signal_uncertainty); }
103 double NLOXsecOverObserved(const SusyScan* p){ return (NLOObsXsecLimit(p)==0 ? 9999. : NLOXsection(p)/NLOObsXsecLimit(p)); }
104 double NLOXsecOverExpected(const SusyScan* p){ return (NLOExpXsecLimit(p)==0 ? 9999. : NLOXsection(p)/NLOExpXsecLimit(p)); }
105 double NLOSignalAcceptance(const SusyScan* p){ return p->NLO_signal / (Luminosity*NLOXsection(p)); }
106 double NLOExpNSignLimit(const SusyScan* p){ return p->NLO_ExpNsigLimit; }
107 double NLOObsNSignLimit(const SusyScan* p){ return p->NLO_ObsNsigLimit; }
108 double NLOPLExpNSignLimit(const SusyScan* p){ return p->NLO_PLExpNsigLimit; }
109 double NLOPLObsNSignLimit(const SusyScan* p){ return p->NLO_PLObsNsigLimit; }
110 double NLOPLExpXsecLimit(const SusyScan* p){ return p->NLO_PLExpXsecLimit; }
111 double NLOPLObsXsecLimit(const SusyScan* p){ return p->NLO_PLObsXsecLimit; }
112 double NLOPLExpExclusion(const SusyScan* p){ return (NLOPLExpXsecLimit(p)<NLOXsection(p)&&NLOPLExpXsecLimit(p)>0.01?1:0.01); }
113 double NLOPLObsExclusion(const SusyScan* p){ return (NLOPLObsXsecLimit(p)<NLOXsection(p)&&NLOPLObsXsecLimit(p)>0.01?1:0.01); }
114 double NLOFCExpNSignLimit(const SusyScan* p){ return p->NLO_FCExpNsigLimit; }
115 double NLOFCObsNSignLimit(const SusyScan* p){ return p->NLO_FCObsNsigLimit; }
116 double NLOFCExpXsecLimit(const SusyScan* p){ return p->NLO_FCExpXsecLimit; }
117 double NLOFCObsXsecLimit(const SusyScan* p){ return p->NLO_FCObsXsecLimit; }
118 double NLOFCExpExclusion(const SusyScan* p){ return (NLOFCExpXsecLimit(p)<NLOXsection(p)&&NLOFCExpXsecLimit(p)>0.01?1:0.01); }
119 double NLOFCObsExclusion(const SusyScan* p){ return (NLOFCObsXsecLimit(p)<NLOXsection(p)&&NLOFCObsXsecLimit(p)>0.01?1:0.01); }
120 double NLOMCMCExpNSignLimit(const SusyScan* p){ return p->NLO_MCMCExpNsigLimit; }
121 double NLOMCMCObsNSignLimit(const SusyScan* p){ return p->NLO_MCMCObsNsigLimit; }
122 double NLOMCMCExpXsecLimit(const SusyScan* p){ return p->NLO_MCMCExpXsecLimit; }
123 double NLOMCMCObsXsecLimit(const SusyScan* p){ return p->NLO_MCMCObsXsecLimit; }
124 double NLOMCMCExpExclusion(const SusyScan* p){ return (NLOMCMCExpXsecLimit(p)<NLOXsection(p)&&NLOMCMCExpXsecLimit(p)>0.01?1:0.01); }
125 double NLOMCMCObsExclusion(const SusyScan* p){ return (NLOMCMCObsXsecLimit(p)<NLOXsection(p)&&NLOMCMCObsXsecLimit(p)>0.01?1:0.01); }
126 double NLOSignalContamination(const SusyScan* p){return p->NLO_signal_contamination; }
127
128 double Mzero(const GeneratorMasses* p){ return p->Mzero; }
129 double Mhalf(const GeneratorMasses* p){ return p->Mhalf; }
130 double MGluino(const GeneratorMasses* p){ return p->MGL; }
131 double MSquarkL(const GeneratorMasses* p){ return p->MUL; }
132 double MSquarkR(const GeneratorMasses* p){ return p->MUR; }
133 double MChi1(const GeneratorMasses* p){ return p->MZ1; }
134 double MChi2(const GeneratorMasses* p){ return p->MZ2; }
135 double MChi3(const GeneratorMasses* p){ return p->MZ3; }
136 double MChi4(const GeneratorMasses* p){ return p->MZ4; }
137 double MCha1(const GeneratorMasses* p){ return p->MW1; }
138 double MCha2(const GeneratorMasses* p){ return p->MW2; }
139
140
141
142 void setPlottingStyle(TH1F& hsig){
143
144 hsig.SetStats(kFALSE);
145
146 hsig.SetAxisRange(80,500,"Y");
147 hsig.SetAxisRange(0,520,"X");
148 hsig.SetAxisRange(200,520,"X");
149
150 hsig.GetXaxis()->SetTitle("m_{0} (GeV)");
151 hsig.GetYaxis()->SetTitle("m_{1/2} (GeV)");
152 hsig.GetYaxis()->SetTitleOffset(0.8);
153 hsig.GetYaxis()->SetTitleSize(0.06);
154 hsig.GetYaxis()->SetLabelSize(0.06);
155 hsig.GetXaxis()->SetTitleOffset(0.9);
156 hsig.GetXaxis()->SetTitleSize(0.06);
157 hsig.GetXaxis()->SetLabelSize(0.06);
158
159 hsig.SetLineWidth(1);
160 hsig.SetLineColor(kBlue);
161
162 }
163
164
165
166
167 TGraph* set_sneutrino_d0_1(Int_t tanBeta){
168 double sn_m0[14]= {0, 0, 48, 55, 80, 90,100,105,109,105,100, 72, 55,0};
169 double sn_m12[14]={0,140,210,220,237,241,242,241,230,220,210,170,150,0};
170
171 TGraph* sn_d0_gr = new TGraph(14,sn_m0,sn_m12);
172
173 sn_d0_gr->SetFillColor(kGreen+3);
174 sn_d0_gr->SetFillStyle(3001);
175
176 return sn_d0_gr;
177 }
178
179 TGraph* set_sneutrino_d0_2(Int_t tanBeta){
180 double sn_m0[9]= {0, 45, 75,115,130,150,163,185,0};
181 double sn_m12[9]={0,140,170,213,202,183,168,140,0};
182
183 TGraph* sn_d0_gr_2 = new TGraph(9,sn_m0,sn_m12);
184
185 sn_d0_gr_2->SetFillColor(kGreen+3);
186 sn_d0_gr_2->SetFillStyle(3001);
187
188 return sn_d0_gr_2;
189 }
190
191 TGraph* set_lep_ch(Int_t tanBeta){
192 if(tanBeta == 3) return set_lep_ch_tanBeta3();
193 if(tanBeta == 10) return set_lep_ch_tanBeta10();
194 if(tanBeta == 50) return set_lep_ch_tanBeta50();
195 }
196
197 TGraph* set_lep_ch_tanBeta10(){
198
199 double ch_m0[12];
200 double ch_m12[12];
201
202 ch_m0[0] = 0;
203 ch_m0[1] = 100;
204 ch_m0[2] = 200;
205 ch_m0[3] = 300;
206 ch_m0[4] = 400;
207 ch_m0[5] = 500;
208 ch_m0[6] = 600;
209 ch_m0[7] = 700;
210 ch_m0[8] = 800;
211 ch_m0[9] = 1000;
212 ch_m0[10] = 1000;
213 ch_m0[11] = 0;
214
215 ch_m12[0] = 163;
216 ch_m12[1] = 162;
217 ch_m12[2] = 161;
218 ch_m12[3] = 160;
219 ch_m12[4] = 159;
220 ch_m12[5] = 158;
221 ch_m12[6] = 157;
222 ch_m12[7] = 156;
223 ch_m12[8] = 155.4;
224 ch_m12[9] = 155.05;
225 ch_m12[10] = 0;
226 ch_m12[11] = 0;
227
228
229 TGraph* ch_gr = new TGraph(12,ch_m0,ch_m12);
230
231 ch_gr->SetFillColor(3);
232 ch_gr->SetLineColor(3);
233 // ch_gr->SetLineWidth(3);
234 ch_gr->SetFillStyle(3001);
235
236 return ch_gr;
237
238 }
239
240
241
242 TGraph* set_lep_ch_tanBeta3(){
243
244 double ch_m0[17];
245 double ch_m12[17];
246
247 ch_m0[0] = 0;
248 ch_m0[1] = 100;
249 ch_m0[2] = 150;
250 ch_m0[3] = 200;
251 ch_m0[4] = 250;
252 ch_m0[5] = 300;
253 ch_m0[6] = 350;
254 ch_m0[7] = 400;
255 ch_m0[8] = 450;
256 ch_m0[9] = 500;
257 ch_m0[10] = 550;
258 ch_m0[11] = 600;
259 ch_m0[12] = 650;
260 ch_m0[13] = 700;
261 ch_m0[14] = 750;
262 ch_m0[15] = 750;
263 ch_m0[16] = 0;
264
265 ch_m12[0] = 170;
266 ch_m12[1] = 168;
267 ch_m12[2] = 167;
268 ch_m12[3] = 165;
269 ch_m12[4] = 163;
270 ch_m12[5] = 161;
271 ch_m12[6] = 158;
272 ch_m12[7] = 156;
273 ch_m12[8] = 154;
274 ch_m12[9] = 152;
275 ch_m12[10] = 150;
276 ch_m12[11] = 148;
277 ch_m12[12] = 147;
278 ch_m12[13] = 145;
279 ch_m12[14] = 144;
280 ch_m12[15] = 0;
281 ch_m12[16] = 0;
282
283 TGraph* ch_gr = new TGraph(17,ch_m0,ch_m12);
284
285 ch_gr->SetFillColor(3);
286 ch_gr->SetLineColor(3);
287 // ch_gr->SetLineWidth(3);
288 ch_gr->SetFillStyle(3001);
289
290 return ch_gr;
291
292 }
293
294
295 TGraph* set_lep_ch_tanBeta50(){
296
297 double ch_m0[21];
298 double ch_m12[21];
299
300 ch_m0[0] = 200;
301 ch_m0[1] = 250;
302 ch_m0[2] = 300;
303 ch_m0[3] = 350;
304 ch_m0[4] = 400;
305 ch_m0[5] = 450;
306 ch_m0[6] = 500;
307 ch_m0[7] = 550;
308 ch_m0[8] = 600;
309 ch_m0[9] = 650;
310 ch_m0[10] = 700;
311 ch_m0[11] = 750;
312 ch_m0[12] = 800;
313 ch_m0[13] =850;
314 ch_m0[14] = 900;
315 ch_m0[15] = 950;
316 ch_m0[16] = 1000;
317 ch_m0[17] = 1050;
318 ch_m0[18] = 1100;
319 ch_m0[19] = 1100;
320 ch_m0[20] = 200;
321
322 ch_m12[0] = 157;
323 ch_m12[1] = 156;
324 ch_m12[2] = 156;
325 ch_m12[3] = 155;
326 ch_m12[4] = 155;
327 ch_m12[5] = 154;
328 ch_m12[6] = 154;
329 ch_m12[7] = 153;
330 ch_m12[8] = 153;
331 ch_m12[9] = 152;
332 ch_m12[10] = 152;
333 ch_m12[11] = 152;
334 ch_m12[12] = 152;
335 ch_m12[13] = 152;
336 ch_m12[14] = 152;
337 ch_m12[15] = 153;
338 ch_m12[16] = 153;
339 ch_m12[17] = 153;
340 ch_m12[18] = 154;
341 ch_m12[19] = 0;
342 ch_m12[20] = 0;
343
344
345 TGraph* ch_gr = new TGraph(21,ch_m0,ch_m12);
346
347 ch_gr->SetFillColor(3);
348 ch_gr->SetLineColor(3);
349 ch_gr->SetFillStyle(3001);
350
351 return ch_gr;
352
353 }
354
355
356
357
358 TGraph* set_lep_sl(Int_t tanBeta){
359
360 // CMS SUSY Summer2010 implementation
361 // double sl_m0[] = {0, 0, 30, 50, 60, 75, 80,90,100};
362 // double sl_m12[] = {0,245,240,220,200,150,100,50,0};
363
364 //contour from D0 trilepton paper (PLB 680 (2009) 34-43)
365 TGraph* lep_sl = 0;
366 if (tanBeta==3){
367 double sl_m0[] ={0, 0, 10, 20, 30, 40, 50, 60, 70, 77,88,95};
368 double sl_m12[]={0,245,242,239,232,222,209,189,165,140,60,0};
369 int n = 12;
370 lep_sl = new TGraph(n,sl_m0,sl_m12);
371 }
372 //CMS PTDR-II
373 //* Selectron_R line mass=99, ISASUGRA7.69, A0=0, m_top=175, tan(beta]=10
374 if (tanBeta==10 || tanBeta==50){
375 double sl_m0[]={ 0, 0, 11, 20, 24, 49, 70, 82,88,90};
376 double sl_m12[]={0,240,237,233,230,200,150,100,50,0};
377 int n = 10;
378 lep_sl = new TGraph(n,sl_m0,sl_m12);
379 }
380
381
382 lep_sl->SetFillColor(5);
383 lep_sl->SetLineColor(5);
384 lep_sl->SetFillStyle(3001);
385
386 return lep_sl;
387 }
388
389
390 TGraph* set_tev_sg_cdf(Int_t tanBeta){
391
392 // double sg_m0[] = {0, 0, 20, 50,100,150,200,250,300,350,400,450,500,550,600,600};
393 // double sg_m12[] = {0,160,169,170,160,155,150,122,116,112,110,106,105,100, 98, 0};
394 // int np=16;
395 //New CHF from CDF plot in ICHEP2010 talk (E. Halkiadakis)
396 double sg_m0[]= {0, 0, 30, 75,150,185,225,310,360,400,430,500,600,600};
397 double sg_m12[]={0,162,168,170,160,150,130,120,109,108,100, 96, 95, 0};
398 int np=14;
399
400 TGraph* sg_gr = new TGraph(np,sg_m0,sg_m12);
401
402 // gStyle->SetHatchesLineWidth(3);
403
404 sg_gr->SetFillColor(2);
405 sg_gr->SetLineColor(2);
406 // sg_gr->SetLineWidth(3);
407 sg_gr->SetFillStyle(3001);
408
409 return sg_gr;
410
411 }
412
413 TGraph* set_tev_sg_d0(Int_t tanBeta){
414
415 //official D0 contour from P. Verdier
416 double sgd_m0[]= {0, 0., 25., 80.,100.,150.,192.,250.,300. ,350.,400.,450. ,500.,600.,600.,0.};
417 double sgd_m12[]={0,167.,167.,163.,162.,157.,149.,136.,125.5,116.,109.,106.5,105.,105., 0.,0.};
418 int npd=16;
419
420 TGraph* sgd_gr = new TGraph(npd,sgd_m0,sgd_m12);
421
422 gStyle->SetHatchesLineWidth(3);
423
424 sgd_gr->SetFillColor(kMagenta+1);
425 sgd_gr->SetLineColor(kMagenta+1);
426 sgd_gr->SetLineWidth(3);
427 sgd_gr->SetFillStyle(3335);
428 //sgd_gr->SetFillStyle(3001);
429
430 return sgd_gr;
431
432 }
433
434 // TGraph* set_tev_tlp_cdf(Int_t tanBeta){
435 // double tlp1_m0[] = { 0, 20, 40, 60, 70, 80, 90, 80, 70, 60};
436 // double tlp1_m12[] = {170,185,200,215,220,215,210,190,175,160};
437 // TGraph* tlp1_gr = new TGraph(10,tlp1_m0,tlp1_m12);
438
439 // tlp1_gr->SetFillColor(4);
440 // tlp1_gr->SetLineColor(4);
441 // tlp1_gr->SetFillStyle(1001);
442
443 // return tlp1_gr;
444 // }
445
446 // TGraph* set_tev_tlp_d0(Int_t tanBeta){
447 // double tlp2_m0[] = { 70, 80, 90,100,105,110,120,130,140};
448 // double tlp2_m12[] = {160,172,184,196,205,195,185,173,160};
449 // TGraph* tlp2_gr = new TGraph(9,tlp2_m0,tlp2_m12);
450
451 // tlp2_gr->SetFillColor(4);
452 // tlp2_gr->SetFillStyle(1001);
453
454 // return tlp2_gr;
455
456 // }
457
458
459
460
461
462 TGraph* set_tev_stau(Int_t tanBeta){
463
464 double st_m0_tanBeta3[] = {0,10,20,30,40,50,60,70,80,90,100,0};
465 double st_m12_tanBeta3[] = {337,341,356,378,406,439,473,510,548,587,626,626};
466
467 double st_m0_tanBeta10[] = {0,10,20,30,40,50,60,70,80,90,100,0};
468 double st_m12_tanBeta10[] = {213,220,240,275,312,351,393,435,476,518,559,559};
469
470 double st_m0_tanBeta50[] = {200,210,220,230,240,250,260,270,280,290,310,325,200,200};
471 double st_m12_tanBeta50[] = {206,226,246,267,288,310,332,354,376,399,450,500,500,206};
472
473
474 TGraph* st_gr_tanBeta3 = new TGraph(12,st_m0_tanBeta3,st_m12_tanBeta3);
475 TGraph* st_gr_tanBeta10 = new TGraph(12,st_m0_tanBeta10,st_m12_tanBeta10);
476 TGraph* st_gr_tanBeta50 = new TGraph(14,st_m0_tanBeta50,st_m12_tanBeta50);
477
478 st_gr_tanBeta3->SetFillColor(40);
479 st_gr_tanBeta3->SetFillStyle(1001);
480
481 st_gr_tanBeta50->SetFillColor(40);
482 st_gr_tanBeta50->SetFillStyle(1001);
483
484 st_gr_tanBeta10->SetFillColor(40);
485 st_gr_tanBeta10->SetFillStyle(1001);
486
487
488 if(tanBeta == 3)return st_gr_tanBeta3;
489 if(tanBeta == 10)return st_gr_tanBeta10;
490 if(tanBeta == 50)return st_gr_tanBeta50;
491
492 }
493
494
495
496
497 TF1* constant_squark(int tanBeta,int i){
498 //---lines of constant gluino/squark
499 double coef1 = 0.35;
500 double coef2[] = {5,5,4.6,4.1};
501
502 char hname[200];
503
504 sprintf(hname,"lnsq_%i",i);
505
506
507 TF1* lnsq = new TF1(hname,"sqrt([0]-x*x*[1]-[2])",0,1000);
508 lnsq->SetParameter(0,(500+150*(i-1))*(500+150*(i-1))/coef2[i]);
509 lnsq->SetParameter(1,1./coef2[i]);
510 lnsq->SetParameter(2,-coef1*91*91*(2*TMath::Cos(TMath::ATan(tanBeta)))/coef2[i]);//--tanbeta=10 --> cos2beta = -99/101
511 lnsq->SetLineWidth(1);
512
513
514 lnsq->SetLineColor(kGray);
515
516 return lnsq;
517 }
518
519
520 TF1* constant_gluino(int tanBeta,int i){
521 //---lines of constant gluino/squark
522 double coef1 = 0.35;
523 double coef2[] = {5,5,4.6,4.1};
524
525 char hname[200];
526
527 sprintf(hname,"lngl_%i",i);
528
529 TF1* lngl = new TF1(hname,"[0]+x*[1]",0,1000);
530 lngl->SetParameter(0,(500+150.*(i-1))/2.4);
531 lngl->SetParameter(1,-40./1400);
532 lngl->SetLineWidth(1);
533 lngl->SetLineColor(kGray);
534
535 return lngl;
536 }
537
538
539 TLatex* constant_squark_text(Int_t it,TF1& lnsq,Int_t tanBeta_){
540 char legnm[200];
541
542 sprintf(legnm,"#font[92]{#tilde{q}(%i)GeV}",500+150*(it-1));
543 Double_t place_x = 170;
544 if(tanBeta_ == 50)place_x = 290;
545 TLatex* t3 = new TLatex(place_x+10*(it-1),lnsq.Eval(place_x+10*(it-1))+5,legnm);
546 t3->SetTextSize(0.02);
547 t3->SetTextAngle(-8);
548 t3->SetTextColor(kGray+2);
549
550
551
552 return t3;
553 }
554
555 TLatex* constant_gluino_text(Int_t it,TF1& lngl){
556 char legnm[200];
557
558 sprintf(legnm,"#font[12]{#tilde{g}}#font[92]{(%i)GeV}",500+150*(it-1));
559 TLatex* t4 = new TLatex(423,18+lngl.Eval(480),legnm);
560 t4->SetTextSize(0.02);
561 t4->SetTextAlign(13);
562 t4->SetTextColor(kGray+2);
563
564 return t4;
565 }
566
567
568
569 TLegend* makeStauLegend(Double_t txtsz,Int_t tanBeta_){
570 Double_t ypos_1 = 0.86;
571 Double_t ypos_2 = 0.88;
572 Double_t xpos_1 = 0.16;
573 Double_t xpos_2 = 0.17;
574 if(tanBeta_ == 50){
575 xpos_1 = 0.17;
576 xpos_2 = 0.18;
577 ypos_1 = 0.76;
578 ypos_2 = 0.78;
579
580 }
581 TLegend* legst = new TLegend(xpos_1,ypos_1,xpos_2,ypos_2);
582 legst->SetHeader("#tilde{#tau} = LSP");
583 legst->SetFillStyle(0);
584 legst->SetBorderSize(0);
585 legst->SetTextSize(0.03);
586
587 return legst;
588 }
589
590
591 TLegend* makeExpLegend(TGraph& sg_gr, TGraph& sgd_gr,TGraph& ch_gr,TGraph& sl_gr,TGraph& tev_sn,Double_t txtsz,Int_t tanbeta){
592 TLegend* legexp = new TLegend(0.64,0.65,0.99,0.9,NULL,"brNDC");
593 legexp->SetFillColor(0);
594 legexp->SetShadowColor(0);
595 legexp->SetTextSize(txtsz);
596 legexp->SetBorderSize(0);
597
598 sg_gr.SetLineColor(1);
599 legexp->AddEntry(&sg_gr,"CDF #tilde{#font[12]{g}}, #tilde{#font[12]{q}}, #scale[0.8]{tan#beta=5, #mu<0}","f");
600 // sgd_gr.SetLineColor(1);
601 // sgd_gr.SetLineWidth(1);
602
603 legexp->AddEntry(&sgd_gr,"D0 #tilde{#font[12]{g}}, #tilde{#font[12]{q}}, #scale[0.8]{tan#beta=3, #mu<0}","f");
604 ch_gr.SetLineColor(1);
605 legexp->AddEntry(&ch_gr,"LEP2 #tilde{#chi}_{1}^{#pm}","f");
606
607 sl_gr.SetLineColor(1);
608 if(tanbeta != 50) legexp->AddEntry(&sl_gr,"LEP2 #tilde{#font[12]{l}}^{#pm}","f");
609 if(tanbeta == 3) legexp->AddEntry(&tev_sn,"D0 #chi^{#pm}_{1}, #chi^{0}_{2}","f");
610
611
612 return legexp;
613
614 }
615
616
617 TGraph* getGraph(TH2F* h1, double level){
618
619 h1->SetContour(1);
620 h1->SetContourLevel(0,level);
621 h1->Draw("CONT LIST");
622 gPad->Update();
623
624 TObjArray* contours = (TObjArray*)gROOT->GetListOfSpecials()->FindObject("contours");
625
626 std::cout << "contours: " << contours << std::endl;
627 // Draw contours
628 TList* graphList = (TList*)(contours->At(0));
629 std::cout << "number of graphs: " << graphList->GetSize() << std::endl;
630 TGraph* myGraph = 0;
631 for (int igraph = 0; igraph<graphList->GetSize();++igraph) {
632 myGraph = (TGraph*)graphList->At(igraph);
633
634 std::cout << " - graph " << igraph << " has " << myGraph->GetN() << " points" << std::endl;
635 if (myGraph->GetN() > 50){
636 std::cout << "Drawing " << myGraph->GetN() <<" points" << std::endl;
637 // myGraph->Print("all");
638 // myGraph->SetLineColor(9);
639 // myGraph->SetLineColor(46);
640 //myGraph->SetLineWidth(3);
641 // myGraph->SetLineStyle(2);
642 // myGraph->SetMarkerStyle(20);
643 // myGraph->SetMarkerColor(9);
644
645 // myGraph->Draw("C");
646 // cvsSys->Update();
647
648 // TString graphName("graph"+name+"_");
649 // graphName += igraph;
650 // myGraph->SetName(graphName);
651 break;
652 }
653 }
654 return myGraph;
655 }
656
657 TH2F* fillHoles(TH2F* h2){
658
659 int nx = h2->GetNbinsX();
660 int ny = h2->GetNbinsY();
661 std::cout << "Nbins: " << nx << " " << ny << std::endl;
662
663 for (int i=1;i<nx+1;i++){
664 for (int j=ny;j>0;j--){
665 int pos = j;
666 int count =0;
667 if (h2->GetBinContent(i,j)==0 && h2->GetBinContent(i-1,j)==-1 && h2->GetBinContent(i+1,j)==-1) h2->SetBinContent(i,j,-1.);
668
669 if (h2->GetBinContent(i,j)==1
670 && h2->GetBinContent(i-1,j)==-1
671 && h2->GetBinContent(i+1,j)==-1
672 && h2->GetBinContent(i,j+1)==-1
673 && h2->GetBinContent(i,j-1)==-1)
674 h2->SetBinContent(i,j,-1.);
675
676 // if (h2->GetBinContent(i,j)<0){
677 if (h2->GetBinContent(i,j)<0 && h2->GetBinContent(i,j-1)<0){
678 // cout <<" bin content " << i <<" " << j<< " " << pos << " " << h2->GetBinContent(i,j) <<endl;
679 for (int k=pos;k>0;k--){
680 h2->SetBinContent(i,k,-1.);
681 }
682 break;
683 }
684
685
686 }
687 }
688 return h2;
689 }
690
691
692
693
694
695
696
697
698
699
700
701
702 //old------------------------------------------------------------------------
703
704 TGraph* sq_LEP(){//sq-gl
705 double sq[] = {0,0,100,100};
706 double gl[] = {0,2000,2000,0};
707 TGraph* res = new TGraph(4,sq,gl);
708 res->SetFillColor(kBlue);
709 return res;
710 }
711 TGraph* gl_TEV(){//sq-gl
712 double sq[] = {0,2000,2000,0};
713 double gl[] = {0,0,190,190};
714 TGraph* res = new TGraph(4,sq,gl);
715 res->SetFillColor(kGreen+2);
716 return res;
717 }
718
719 TGraph* gl_CDF(){//sq-gl
720 double sq[] = {0,2000,2000,0};
721 double gl[] = {190,190,230,230};
722 TGraph* res = new TGraph(4,sq,gl);
723 res->SetFillColor(kOrange+5);
724 return res;
725 }
726
727 TGraph* gl_DEZ(){//sq-gl
728 double sq[] = {0,2000,2000,0};
729 double gl[] = {230,230,255,255};
730 TGraph* res = new TGraph(4,sq,gl);
731 res->SetFillColor(kYellow-5);
732 return res;
733 }
734
735 TGraph* gl_WHT(){//sq-gl
736 double sq[] = {101,2000,2000,101};
737 double gl[] = {256,256,400,400};
738 TGraph* res = new TGraph(4,sq,gl);
739 res->SetFillColor(kWhite);
740 return res;
741 }
742
743
744 ////////////////////////////////////////////
745 TGraph* gl_LEP(){//gl-sq
746 double sq[] = {0,0,100,100};
747 double gl[] = {0,2000,2000,0};
748 TGraph* res = new TGraph(4,gl,sq);
749 res->SetFillColor(kBlue);
750 return res;
751 }
752
753 TGraph* sq_TEV(){//gl-sq
754 double sq[] = {0,2000,2000,330,250,300,200,150,100,0};
755 double gl[] = {0,0,190,190,260,300,500,560,500,500};
756
757 TGraph* res = new TGraph(10,gl,sq);
758 res->SetFillColor(kGreen+2);
759 return res;
760 }
761
762 TGraph* sq_CDF(){//gl-sq
763 double sq[] = {0,2000,2000,480,460,420,410,380,390,290,0};
764 double gl[] = {0,0,280,280,300,310,330,340,440,320,320};
765 TGraph* res = new TGraph(11,gl,sq);
766 res->SetFillColor(kOrange+5);
767 return res;
768 }
769 TGraph* sq_DEZ(){//gl-sq
770 double sq[] = {0,2000,2000,460,430,400,390,290,0};
771 double gl[] = {0,0,305,305,320,350,440,320,320};
772 TGraph* res = new TGraph(9,gl,sq);
773 res->SetFillColor(kYellow-5);
774 return res;
775 }
776
777 TGraph* glsq_NoSol(){//sq-gl
778 gStyle->SetHatchesSpacing(2.0);
779 gStyle->SetHatchesLineWidth(1);
780 double sq[] = {83,83,110,1297.6,0, 0};
781 double gl[] = { 0,63,120,1466, 1466,0};
782 TGraph* res = new TGraph(6,gl,sq);
783 res->SetLineColor(1);
784 res->SetLineWidth(2);
785 res->SetFillStyle(3354);
786 return res;
787 }
788
789
790
791
792
793 TGraph * Atlas_m0_m12_tb3_obs()
794 {
795 TGraph *graph = new TGraph(71);
796 graph->SetLineWidth(2);
797 graph->SetPoint(0,54,357.341);
798 graph->SetPoint(1,82,358.4171);
799 graph->SetPoint(2,110,359.8179);
800 graph->SetPoint(3,110.934,359.875);
801 graph->SetPoint(4,138,361.5302);
802 graph->SetPoint(5,166,362.5696);
803 graph->SetPoint(6,189.0676,359.875);
804 graph->SetPoint(7,194,359.1415);
805 graph->SetPoint(8,222,354.5211);
806 graph->SetPoint(9,248.1714,351.625);
807 graph->SetPoint(10,250,351.4583);
808 graph->SetPoint(11,278,349.4991);
809 graph->SetPoint(12,306,343.4051);
810 graph->SetPoint(13,306.1313,343.375);
811 graph->SetPoint(14,334,335.3855);
812 graph->SetPoint(15,334.7966,335.125);
813 graph->SetPoint(16,350.8793,326.875);
814 graph->SetPoint(17,362,319.7823);
815 graph->SetPoint(18,364.6568,318.625);
816 graph->SetPoint(19,383.5969,310.375);
817 graph->SetPoint(20,390,308.6978);
818 graph->SetPoint(21,415.0931,302.125);
819 graph->SetPoint(22,418,300.2992);
820 graph->SetPoint(23,423.9359,293.875);
821 graph->SetPoint(24,431.0348,285.625);
822 graph->SetPoint(25,441.6066,277.375);
823 graph->SetPoint(26,446,275.3629);
824 graph->SetPoint(27,468.0485,269.125);
825 graph->SetPoint(28,474,267.2393);
826 graph->SetPoint(29,486.3632,260.875);
827 graph->SetPoint(30,495.8534,252.625);
828 graph->SetPoint(31,502,244.7684);
829 graph->SetPoint(32,502.3699,244.375);
830 graph->SetPoint(33,508.424,236.125);
831 graph->SetPoint(34,514.4781,227.875);
832 graph->SetPoint(35,518.8059,219.625);
833 graph->SetPoint(36,521.5056,211.375);
834 graph->SetPoint(37,524.324,203.125);
835 graph->SetPoint(38,527.1424,194.875);
836 graph->SetPoint(39,530,193.5052);
837 graph->SetPoint(40,552.5782,186.625);
838 graph->SetPoint(41,558,185.8767);
839 graph->SetPoint(42,586,180.1476);
840 graph->SetPoint(43,592.2836,178.375);
841 graph->SetPoint(44,614,171.422);
842 graph->SetPoint(45,617.5927,170.125);
843 graph->SetPoint(46,627.5396,161.875);
844 graph->SetPoint(47,642,157.9876);
845 graph->SetPoint(48,658.2277,153.625);
846 graph->SetPoint(49,670,151.1225);
847 graph->SetPoint(50,698,146.9886);
848 graph->SetPoint(51,711.5425,145.375);
849 graph->SetPoint(52,726,143.6935);
850 graph->SetPoint(53,754,140.0648);
851 graph->SetPoint(54,782,137.4563);
852 graph->SetPoint(55,783.0426,137.125);
853 graph->SetPoint(56,796.0326,128.875);
854 graph->SetPoint(57,810,125.0328);
855 graph->SetPoint(58,826.0235,120.625);
856 graph->SetPoint(59,838,117.3305);
857 graph->SetPoint(60,866,116.7462);
858 graph->SetPoint(61,894,116.1044);
859 graph->SetPoint(62,922,114.6645);
860 graph->SetPoint(63,950,116.937);
861 graph->SetPoint(64,978,117.6956);
862 graph->SetPoint(65,1006,115.198);
863 graph->SetPoint(66,1034,113.1166);
864 graph->SetPoint(67,1038.967,112.375);
865 graph->SetPoint(68,1062,108.0997);
866 graph->SetPoint(69,1090,104.373);
867 graph->SetPoint(70,1096.429,104.125);
868 graph->SetFillColor(0);
869 return graph;
870 }
871 TGraph * Atlas_mGl_mSq_obs()
872 {
873 //x:gluino mass, y:squark mass
874 TGraph *graph = new TGraph(64);
875 graph->SetLineWidth(2);
876 graph->SetPoint(0,511.2569,1976.25);
877 graph->SetPoint(1,513.125,1936.181);
878 graph->SetPoint(2,513.4714,1928.75);
879 graph->SetPoint(3,515.6859,1881.25);
880 graph->SetPoint(4,517.9004,1833.75);
881 graph->SetPoint(5,520.1148,1786.25);
882 graph->SetPoint(6,522.3293,1738.75);
883 graph->SetPoint(7,524.5438,1691.25);
884 graph->SetPoint(8,526.1095,1643.75);
885 graph->SetPoint(9,526.5267,1596.25);
886 graph->SetPoint(10,526.9924,1548.75);
887 graph->SetPoint(11,527.2745,1501.25);
888 graph->SetPoint(12,526.9487,1453.75);
889 graph->SetPoint(13,526.6228,1406.25);
890 graph->SetPoint(14,532.902,1358.75);
891 graph->SetPoint(15,540.182,1311.25);
892 graph->SetPoint(16,547.4619,1263.75);
893 graph->SetPoint(17,558.0438,1216.25);
894 graph->SetPoint(18,561.875,1203.002);
895 graph->SetPoint(19,579.4475,1168.75);
896 graph->SetPoint(20,603.8166,1121.25);
897 graph->SetPoint(21,610.625,1107.979);
898 graph->SetPoint(22,630.8311,1073.75);
899 graph->SetPoint(23,658.8712,1026.25);
900 graph->SetPoint(24,659.375,1025.691);
901 graph->SetPoint(25,703.8609,978.75);
902 graph->SetPoint(26,708.125,975.5966);
903 graph->SetPoint(27,756.875,945.0332);
904 graph->SetPoint(28,778.5082,931.25);
905 graph->SetPoint(29,805.625,916.3566);
906 graph->SetPoint(30,847.5791,883.75);
907 graph->SetPoint(31,854.375,879.4212);
908 graph->SetPoint(32,903.125,848.0476);
909 graph->SetPoint(33,927.7959,836.25);
910 graph->SetPoint(34,951.875,823.2943);
911 graph->SetPoint(35,1000.625,790.1523);
912 graph->SetPoint(36,1004.488,788.75);
913 graph->SetPoint(37,1049.375,774.2142);
914 graph->SetPoint(38,1098.125,755.1404);
915 graph->SetPoint(39,1130.904,741.25);
916 graph->SetPoint(40,1146.875,736.2226);
917 graph->SetPoint(41,1195.625,720.3208);
918 graph->SetPoint(42,1244.375,701.1234);
919 graph->SetPoint(43,1266.694,693.75);
920 graph->SetPoint(44,1293.125,685.9941);
921 graph->SetPoint(45,1341.875,668.9126);
922 graph->SetPoint(46,1390.625,652.8072);
923 graph->SetPoint(47,1439.375,647.4204);
924 graph->SetPoint(48,1448.107,646.25);
925 graph->SetPoint(49,1488.125,638.5908);
926 graph->SetPoint(50,1536.875,620.8084);
927 graph->SetPoint(51,1585.625,603.026);
928 graph->SetPoint(52,1597.347,598.75);
929 graph->SetPoint(53,1634.375,581.9133);
930 graph->SetPoint(54,1683.125,559.7463);
931 graph->SetPoint(55,1701.81,551.25);
932 graph->SetPoint(56,1731.875,537.5793);
933 graph->SetPoint(57,1780.625,515.4123);
934 graph->SetPoint(58,1806.273,503.75);
935 graph->SetPoint(59,1829.375,493.2101);
936 graph->SetPoint(60,1878.125,471.0784);
937 graph->SetPoint(61,1910.736,456.25);
938 graph->SetPoint(62,1926.875,448.241);
939 graph->SetPoint(63,1975.625,426.7444);
940 return graph;
941 }
942
943
944 //- Jim Lungu ----------------------------------------------
945
946 TGraph* Jim_mht_tb3(int mode){
947 Int_t n = 10;
948 Double_t x[10] = {15,65,115,165,215,265,315,365,415,465};
949 Double_t yobs[10] = {330,330,340,340,330,320,310,300,280,260};
950 Double_t yexp[10] = {330,320,320,320,320,310,300,290,270,250};
951 Double_t yexpp[10] = {350,350,350,340,340,330,330,310,300,280};
952 Double_t yexpn[10] = {310,310,310,300,300,300,280,270,240,240};
953 Double_t y[10];
954 for (int i=0;i<n;i++) {
955 if (mode==0) y[i] = yobs[i];
956 if (mode==1) y[i] = yexp[i];
957 if (mode==2) y[i] = yexpp[i];
958 if (mode==3) y[i] = yexpn[i];
959 }
960 TGraph* gr = new TGraph(n,x,y);
961 gr->SetLineWidth(2);
962 if (mode==1) gr->SetLineStyle(2);
963 if (mode>2) {gr->SetFillColor(8); gr->SetLineColor(8);}
964 else
965 gr->SetLineColor(2);
966 return gr;
967 }
968
969 TGraph* Jim_ht_tb3(int mode){
970 Int_t n = 10;
971 Double_t x[10] = {15,65,115,165,215,265,315,365,415,465};
972 Double_t yobs[10] = {300,300,290,290,300,290,280,270,260,250};
973 Double_t yexp[10] = {300,300,290,300,300,290,280,270,260,250};
974 Double_t yexpp[10] = {320,320,320,320,310,310,300,290,280,270};
975 Double_t yexpn[10] = {290,290,280,290,280,280,270,250,250,240};
976 Double_t y[10];
977 for (int i=0;i<n;i++) {
978 if (mode==0) y[i] = yobs[i];
979 if (mode==1) y[i] = yexp[i];
980 if (mode==2) y[i] = yexpp[i];
981 if (mode==3) y[i] = yexpn[i];
982 }
983 TGraph* gr = new TGraph(n,x,y);
984 gr->SetLineWidth(2);
985 if (mode==1) gr->SetLineStyle(2);
986 if (mode>2) {gr->SetFillColor(8); gr->SetLineColor(8);}
987 else
988 gr->SetLineColor(2);
989 return gr;
990 }
991
992 TGraph* Jim_mht_tb50(int mode){
993 Int_t n = 9;
994 Double_t x[9] = {205,255,305,355,405,455,505,555,605};
995 Double_t yobs[9] = {330,330,310,300,300,270,250,240,210};
996 Double_t yexp[9] = {320,320,300,290,280,250,240,230,210};
997 Double_t yexpp[9] = {350,340,330,320,310,290,260,250,230};
998 Double_t yexpn[9] = {300,300,290,280,260,240,230,200,190};
999 Double_t y[9];
1000 for (int i=0;i<n;i++) {
1001 if (mode==0) y[i] = yobs[i];
1002 if (mode==1) y[i] = yexp[i];
1003 if (mode==2) y[i] = yexpp[i];
1004 if (mode==3) y[i] = yexpn[i];
1005 }
1006 TGraph* gr = new TGraph(n,x,y);
1007 gr->SetLineWidth(2);
1008 if (mode==1) gr->SetLineStyle(2);
1009 if (mode>2) {gr->SetFillColor(8); gr->SetLineColor(8);}
1010 else
1011 gr->SetLineColor(2);
1012 return gr;
1013 }
1014
1015 TGraph* Jim_ht_tb50(int mode){
1016 Int_t n = 9;
1017 Double_t x[9] = {205,255,305,355,405,455,505,555,605};
1018 Double_t yobs[9] = {300,290,280,280,260,250,230,220,220};
1019 Double_t yexp[9] = {300,290,280,280,260,250,240,230,220};
1020 Double_t yexpp[9] = {320,310,300,290,290,270,260,250,240};
1021 Double_t yexpn[9] = {280,270,270,260,250,240,230,220,210};
1022 Double_t y[10];
1023 for (int i=0;i<n;i++) {
1024 if (mode==0) y[i] = yobs[i];
1025 if (mode==1) y[i] = yexp[i];
1026 if (mode==2) y[i] = yexpp[i];
1027 if (mode==3) y[i] = yexpn[i];
1028 }
1029 TGraph* gr = new TGraph(n,x,y);
1030 gr->SetLineWidth(2);
1031 if (mode==1) gr->SetLineStyle(2);
1032 if (mode>2) {gr->SetFillColor(8); gr->SetLineColor(8);}
1033 else
1034 gr->SetLineColor(2);
1035 return gr;
1036 }
1037
1038 TGraph* Jim_mht_tb10(int mode){
1039 Int_t n = 20;
1040 Double_t x[20] = {15,65,115,165,215,265,315,365,415,465,515,565,615,665,715,765,815,865,915,965};
1041 Double_t yobs[20] = {330,340,330,330,330,320,310,280,280,260,240,230,220,220,210,190,190,180,180,180};
1042 Double_t yexp[20] = {330,320,320,320,320,310,300,280,270,250,240,220,220,200,190,190,180,160,170,160};
1043 Double_t yexpp[20] = {330,340,350,340,330,330,330,310,300,280,270,240,240,230,220,210,200,180,190,180};
1044 Double_t yexpn[20] = {290,280,310,300,300,290,280,270,250,240,220,210,200,190,160,170,160,150,150,140};
1045 Double_t y[20];
1046 for (int i=0;i<n;i++) {
1047 if (mode==0) y[i] = yobs[i];
1048 if (mode==1) y[i] = yexp[i];
1049 if (mode==2) y[i] = yexpp[i];
1050 if (mode==3) y[i] = yexpn[i];
1051 }
1052 TGraph* gr = new TGraph(n,x,y);
1053 gr->SetLineWidth(2);
1054 if (mode==1) gr->SetLineStyle(2);
1055 if (mode>2) {gr->SetFillColor(8); gr->SetLineColor(8);}
1056 else
1057 gr->SetLineColor(2);
1058 return gr;
1059 }
1060
1061 TGraph* Jim_ht_tb10(int mode){
1062 Int_t n = 20;
1063 Double_t x[20] = {15,65,115,165,215,265,315,365,415,465,515,565,615,665,715,765,815,865,915,965};
1064 Double_t yobs[20] = {290,280,300,290,300,290,280,270,250,250,240,230,220,220,210,190,200,180,190,180};
1065 Double_t yexp[20] = {290,280,290,300,300,290,280,270,250,250,240,240,220,220,210,190,200,180,190,180};
1066 Double_t yexpp[20] = {330,320,310,310,310,310,300,280,280,260,260,250,240,230,220,220,210,210,200,190};
1067 Double_t yexpn[20] = {290,280,280,280,280,280,270,260,240,240,230,220,200,200,190,190,180,180,170,170};
1068 Double_t y[20];
1069 for (int i=0;i<n;i++) {
1070 if (mode==0) y[i] = yobs[i];
1071 if (mode==1) y[i] = yexp[i];
1072 if (mode==2) y[i] = yexpp[i];
1073 if (mode==3) y[i] = yexpn[i];
1074 }
1075 TGraph* gr = new TGraph(n,x,y);
1076 gr->SetLineWidth(2);
1077 if (mode==1) gr->SetLineStyle(2);
1078 if (mode>2) {gr->SetFillColor(8); gr->SetLineColor(8);}
1079 else
1080 gr->SetLineColor(2);
1081 return gr;
1082 }
1083
1084
1085