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

# User Rev Content
1 auterman 1.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 auterman 1.1.1.2 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 auterman 1.1
174     class TScan {
175     public:
176     TScan();
177     ~TScan();
178    
179 auterman 1.1.1.2 template <class T> MyTGraph * IsoMassLine(std::vector<T>, bool(*func)(T,double), double);
180 auterman 1.1 MyTGraph * GetContour(TH2F*, int flag=0);
181 auterman 1.1.1.2 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 auterman 1.1 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 auterman 1.1.1.2 void ReadGeneratedXsects(std::string file);
191     void SetBins(int bx, int by){bins_x=bx; bins_y=by;};
192 auterman 1.1
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 auterman 1.1.1.2 std::vector<SUSY_XSECS> xsects;
197 auterman 1.1
198     };
199    
200    
201     #endif