1 |
#ifndef SCAN_H
|
2 |
#define SCAN_H
|
3 |
|
4 |
#include <vector>
|
5 |
|
6 |
#include <TH2.h>
|
7 |
#include <TGraph.h>
|
8 |
#include <TGraph2D.h>
|
9 |
|
10 |
class MyTGraph : public TGraph{
|
11 |
public:
|
12 |
MyTGraph(int b):TGraph(b){};
|
13 |
void Add(double x,double y){ this->SetPoint( this->GetN(),x,y); };
|
14 |
void ls(){
|
15 |
double x,y;
|
16 |
for (int i=0; i<this->GetN(); ++i){
|
17 |
this->GetPoint(i,x,y);
|
18 |
std::cout << i << "th: "<<x<<", " <<y<<std::endl;
|
19 |
}};
|
20 |
};
|
21 |
|
22 |
class SUSY_POINT {
|
23 |
public:
|
24 |
double MZERO;
|
25 |
double MHALF;
|
26 |
double TANB;
|
27 |
double SGNMU;
|
28 |
double AZERO;
|
29 |
double MTOP;
|
30 |
double muQ;
|
31 |
double Q;
|
32 |
double M1;
|
33 |
double M2;
|
34 |
double M3;
|
35 |
double MGL;
|
36 |
double MUL;
|
37 |
double MB1;
|
38 |
double MSN;
|
39 |
double MNTAU;
|
40 |
double MZ1;
|
41 |
double MW1;
|
42 |
double MHL;
|
43 |
double MUR;
|
44 |
double MB2;
|
45 |
double MEL;
|
46 |
double MTAU1;
|
47 |
double MZ2;
|
48 |
double MW2;
|
49 |
double MHH;
|
50 |
double MDL;
|
51 |
double MT1;
|
52 |
double MER;
|
53 |
double MTAU2;
|
54 |
double MZ3;
|
55 |
double MHA;
|
56 |
double MDR;
|
57 |
double MT2;
|
58 |
double MZ4;
|
59 |
double MHp;
|
60 |
};
|
61 |
|
62 |
class SUSY_XSECS {
|
63 |
public:
|
64 |
double MZERO;
|
65 |
double MHALF;
|
66 |
double TANB;
|
67 |
double SGNMU;
|
68 |
double AZERO;
|
69 |
double MTOP;
|
70 |
double XS0; // I 0 All // Included subprocesses // I
|
71 |
double XS201; // I 201
|
72 |
double XS202; // I 202 f + fbar -> ~e_R + ~e_Rbar // I
|
73 |
double XS204; // I 204 f + fbar -> ~mu_L + ~mu_Lbar // I
|
74 |
double XS205; // I 205 f + fbar -> ~mu_R + ~mu_Rbar // I
|
75 |
double XS207; // I 207 f+fbar -> ~tau_1 + ~tau_1bar // I
|
76 |
double XS208; // I 208 f+fbar -> ~tau_2 + ~tau_2bar // I
|
77 |
double XS209; // I 209 f+fbar -> ~tau_1 + ~tau_2bar // I
|
78 |
double XS210; // I 210
|
79 |
double XS211; // I 211 q+qbar'-> ~tau_1 + ~nutaubar // I
|
80 |
double XS212; // I 212 q+qbar'-> ~tau_2 + ~nutaubar // I
|
81 |
double XS213; // I 213 f + fbar -> ~nul + ~nulbar // I
|
82 |
double XS214; // I 214 f+fbar -> ~nutau + ~nutaubar // I
|
83 |
double XS216; // I 216 f + fbar -> ~chi1 + ~chi1 // I
|
84 |
double XS217; // I 217 f + fbar -> ~chi2 + ~chi2 // I
|
85 |
double XS218; // I 218 f + fbar -> ~chi3 + ~chi3 // I
|
86 |
double XS219; // I 219 f + fbar -> ~chi4 + ~chi4 // I
|
87 |
double XS220; // I 220 f + fbar -> ~chi1 + ~chi2 // I
|
88 |
double XS221; // I 221 f + fbar -> ~chi1 + ~chi3 // I
|
89 |
double XS222; // I 222 f + fbar -> ~chi1 + ~chi4 // I
|
90 |
double XS223; // I 223 f + fbar -> ~chi2 + ~chi3 // I
|
91 |
double XS224; // I 224 f + fbar -> ~chi2 + ~chi4 // I
|
92 |
double XS225; // I 225 f + fbar -> ~chi3 + ~chi4 // I
|
93 |
double XS226; // I 226 f+fbar -> ~chi+-1 + ~chi-+1 // I
|
94 |
double XS227; // I 227 f+fbar -> ~chi+-2 + ~chi-+2 // I
|
95 |
double XS228; // I 228 f+fbar -> ~chi+-1 + ~chi-+2 // I
|
96 |
double XS229; // I 229 q + qbar' -> ~chi1 + ~chi+-1 // I
|
97 |
double XS230; // I 230 q + qbar' -> ~chi2 + ~chi+-1 // I
|
98 |
double XS231; // I 231 q + qbar' -> ~chi3 + ~chi+-1 // I
|
99 |
double XS232; // I 232 q + qbar' -> ~chi4 + ~chi+-1 // I
|
100 |
double XS233; // I 233 q + qbar' -> ~chi1 + ~chi+-2 // I
|
101 |
double XS234; // I 234 q + qbar' -> ~chi2 + ~chi+-2 // I
|
102 |
double XS235; // I 235 q + qbar' -> ~chi3 + ~chi+-2 // I
|
103 |
double XS236; // I 236 q + qbar' -> ~chi4 + ~chi+-2 // I
|
104 |
double XS237; // I 237 q + qbar -> ~chi1 + ~g // I
|
105 |
double XS238; // I 238 q + qbar -> ~chi2 + ~g // I
|
106 |
double XS239; // I 239 q + qbar -> ~chi3 + ~g // I
|
107 |
double XS240; // I 240 q + qbar -> ~chi4 + ~g // I
|
108 |
double XS241; // I 241 q + qbar' -> ~chi+-1 + ~g // I
|
109 |
double XS242; // I 242 q + qbar' -> ~chi+-2 + ~g // I
|
110 |
double XS243; // I 243 q + qbar -> ~g + ~g // I
|
111 |
double XS244; // I 244 g + g -> ~g + ~g // I
|
112 |
double XS246; // I 246 qj + g -> ~qj_L + ~chi1 // I
|
113 |
double XS247; // I 247 qj + g -> ~qj_R + ~chi1 // I
|
114 |
double XS248; // I 248 qj + g -> ~qj_L + ~chi2 // I
|
115 |
double XS249; // I 249 qj + g -> ~qj_R + ~chi2 // I
|
116 |
double XS250; // I 250 qj + g -> ~qj_L + ~chi3 // I
|
117 |
double XS251; // I 251 qj + g -> ~qj_R + ~chi3 // I
|
118 |
double XS252; // I 252 qj + g -> ~qj_L + ~chi4 // I
|
119 |
double XS253; // I 253 qj + g -> ~qj_R + ~chi4 // I
|
120 |
double XS254; // I 254 qj + g -> ~qk_L + ~chi+-1 // I
|
121 |
double XS256; // I 256 qj + g -> ~qk_L + ~chi+-2 // I
|
122 |
double XS258; // I 258 qj + g -> ~qj_L + ~g // I
|
123 |
double XS259; // I 259 qj + g -> ~qj_R + ~g // I
|
124 |
double XS261; // I 261 f + fbar -> ~t_1 + ~t_1bar // I
|
125 |
double XS262; // I 262 f + fbar -> ~t_2 + ~t_2bar // I
|
126 |
double XS263; // I 263 f + fbar -> ~t_1 + ~t_2bar // I
|
127 |
double XS264; // I 264 g + g -> ~t_1 + ~t_1bar // I
|
128 |
double XS265; // I 265 g + g -> ~t_2 + ~t_2bar // I
|
129 |
double XS271; // I 271 qi + qj -> ~qi_L + ~qj_L // I
|
130 |
double XS272; // I 272 qi + qj -> ~qi_R + ~qj_R // I
|
131 |
double XS273; // I 273 qi + qj -> ~qi_L + ~qj_R // I
|
132 |
double XS274; // I 274 qi+qjbar -> ~qi_L + ~qj_Lbar // I
|
133 |
double XS275; // I 275 qi+qjbar -> ~qi_R + ~qj_Rbar // I
|
134 |
double XS276; // I 276 qi+qjbar -> ~qi_L + ~qj_Rbar // I
|
135 |
double XS277; // I 277 f + fbar -> ~qi_L + ~qi_Lbar // I
|
136 |
double XS278; // I 278 f + fbar -> ~qi_R + ~qi_Rbar // I
|
137 |
double XS279; // I 279 g + g -> ~qi_L + ~qi_Lbar // I
|
138 |
double XS280; // I 280 g + g -> ~qi_R + ~qi_Rbar // I
|
139 |
double XS281; // I 281 b + qj -> ~b_1 + ~qj_L // I
|
140 |
double XS282; // I 282 b + qj -> ~b_2 + ~qj_R // I
|
141 |
double XS283; // I 283 b + qj -> ~b_1 + ~qj_R // I
|
142 |
double XS284; // I 284 b + qjbar -> ~b_1 + ~qj_Lbar // I
|
143 |
double XS285; // I 285 b + qjbar -> ~b_2 + ~qj_Rbar // I
|
144 |
double XS286; // I 286 b + qjbar -> ~b_1 + ~qj_Rbar // I
|
145 |
double XS287; // I 287 f + fbar -> ~b_1 + ~b_1bar // I
|
146 |
double XS288; // I 288 f + fbar -> ~b_2 + ~b_2bar // I
|
147 |
double XS289; // I 289 g + g -> ~b_1 + ~b_1bar // I
|
148 |
double XS290; // I 290 g + g -> ~b_2 + ~b_2bar // I
|
149 |
double XS291; // I 291 b + b -> ~b_1 + ~b_1 // I
|
150 |
double XS292; // I 292 b + b -> ~b_2 + ~b_2 // I
|
151 |
double XS293; // I 293 b + b -> ~b_1 + ~b_2 // I
|
152 |
double XS294; // I 294 b + g -> ~b_1 + ~g // I
|
153 |
double XS295; // I 295 b + g -> ~b_2 + ~g // I
|
154 |
double XS296; // I 296 b + bbar -> ~b_1 + ~b_2bar // I
|
155 |
double XS297; // I 297 f + fbar' -> H+/- + h0 // I
|
156 |
double XS298; // I 298 f + fbar -> H+/- + H0 // I
|
157 |
double XS299; // I 299 f + fbar -> A0 + h0 // I
|
158 |
double XS300; // I 300 f + fbar -> A0 + H0 // I
|
159 |
double XS301; // I 301 f + fbar -> H+ + H- // I
|
160 |
|
161 |
//total susy x-sec
|
162 |
double total() const {return XS0*1.0E9;};
|
163 |
|
164 |
//gluino-gluino prod. x-sec in pb:
|
165 |
double sgsg() const {return (XS243+XS244)*1.0E9;};
|
166 |
|
167 |
//squark-gluino prod. x-sec in pb:
|
168 |
double sqsg() const {return (XS258+XS259+XS294+XS295)*1.0E9;};
|
169 |
|
170 |
//squark-squark prod. x-sec in pb:
|
171 |
double sqsq() const {return (XS261+XS262+XS263+XS264+XS265+XS271+XS272+XS273+XS274+XS275+XS276+XS277+XS278+XS279+XS280+XS281+XS282+XS283+XS284+XS285+XS286+XS287+XS288+XS289+XS290+XS291+XS292+XS293+XS296)*1.0E9;};
|
172 |
};
|
173 |
|
174 |
class TScan {
|
175 |
public:
|
176 |
TScan();
|
177 |
~TScan();
|
178 |
|
179 |
template <class T> MyTGraph * IsoMassLine(std::vector<T>, bool(*func)(T,double), double);
|
180 |
MyTGraph * GetContour(TH2F*, int flag=0);
|
181 |
template <class T> TH2F * TScan::Area(std::vector<T>, bool(*func)(T));
|
182 |
template <class T> TH2F * TScan::Area(std::vector<T>,double(*func)(T));
|
183 |
TH2F * Area51();
|
184 |
//static bool ul(const SUSY_POINT point, const double mass);
|
185 |
|
186 |
int DoStuff();
|
187 |
|
188 |
private:
|
189 |
void ReadGeneratedMasses(std::string file);
|
190 |
void ReadGeneratedXsects(std::string file);
|
191 |
void SetBins(int bx, int by){bins_x=bx; bins_y=by;};
|
192 |
|
193 |
int plot_id, bins_x, bins_y;
|
194 |
double min_x, max_x, min_y, max_y;
|
195 |
std::vector<SUSY_POINT> points;
|
196 |
std::vector<SUSY_XSECS> xsects;
|
197 |
|
198 |
};
|
199 |
|
200 |
|
201 |
#endif
|