ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/SusyScan/PlotScript/scan.h
Revision: 1.1.1.2 (vendor branch)
Committed: Mon Feb 25 15:54:04 2008 UTC (17 years, 2 months ago) by auterman
Content type: text/plain
Branch: tex, Demo, SusyScan
CVS Tags: start
Changes since 1.1.1.1: +117 -2 lines
Log Message:
PAT Jet Analyzer

File Contents

# Content
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