ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/SusyScan/PlotScript/SusyScan.cc
Revision: 1.8
Committed: Wed Jun 22 15:03:36 2011 UTC (13 years, 10 months ago) by auterman
Content type: text/plain
Branch: MAIN
CVS Tags: JHEP2010, HEAD
Changes since 1.7: +8 -0 lines
Log Message:
2010 RA2 paper

File Contents

# Content
1 #include "SusyScan.h"
2 #include "ConfigFile.h"
3
4
5 SusyScan::SusyScan()
6 {
7 SetPtr();
8 for (std::vector<double*>::iterator it=p.begin(); it!=p.end(); ++it)
9 **it = 0.;
10 }
11 SusyScan::SusyScan(const SusyScan& c)
12 {
13 SetPtr();
14 //std::cout<<Mzero<<"=m0, "<<Mhalf <<"=m12, " <<p.size()<<"<-this, c:"<<c.p.size()<<std::endl;
15
16 std::vector<double*>::iterator it=p.begin();
17 std::vector<double*>::const_iterator ct=c.p.begin();
18 for (; ct!=c.p.end(); ++it, ++ct)
19 **it = **ct;
20 }
21
22
23 SusyScan::SusyScan(std::string filename)
24 {
25 SetPtr();
26 ConfigFile config(filename);
27 Mzero = config.read<double>("Mzero", 0);
28 Mhalf = config.read<double>("Mhalf", 0);
29 Mu = config.read<double>("Mu", 0);
30 TanBeta = config.read<double>("TanBeta", 0);
31 Azero = config.read<double>("Azero", 0);
32 Run = config.read<double>("Run", 0);
33 background = config.read<double>("background", 0);
34 background_uncertainty = config.read<double>("background.uncertainty", 0);
35 data = config.read<double>("data", 0);
36 signal_JEC_UP = config.read<double>("signal.JEC_.UP", 0);
37 signal_JEC_DN = config.read<double>("signal.JEC_.DN", 0);
38 signal_MuIso_UP = config.read<double>("signal.MuIso_.UP", 0);
39 signal_MuIso_DN = config.read<double>("signal.MuIso_.DN", 0);
40 signal_kfactor_UP = config.read<double>("signal.kFactorUP", 0);
41 signal_kfactor_DN = config.read<double>("signal.kFactorDN", 0);
42 signal_PDF_UP = config.read<double>("signal.PDF.UP", 0);
43 signal_PDF_DN = config.read<double>("signal.PDF.DN", 0);
44 signal_XSPDF_UP = config.read<double>("signal.PDFXsec.UP", 0);
45 signal_XSPDF_DN = config.read<double>("signal.PDFXsec.DN", 0);
46 signal_kfactor = config.read<double>("signal.kFactor", 0);
47
48 signal_contamination = config.read<double>("signal.LO.signalregion.IsoMuon", 0) +
49 config.read<double>("signal.LO.signalregion.Tau", 0);
50 signal = config.read<double>("signal.LO", 0);
51 signal_uncertainty = config.read<double>("signal.LO.uncertainty", 0);
52 Xsection = config.read<double>("Xsection", 0);
53 ExpXsecLimit = config.read<double>("LO.ExpXsecLimit", 0);
54 ObsXsecLimit = config.read<double>("LO.ObsXsecLimit", 0);
55 ExpNsigLimit = config.read<double>("LO.ExpNsigLimit", 0);
56 ObsNsigLimit = config.read<double>("LO.ObsNsigLimit", 0);
57 lnQ_b_exp = config.read<double>("LO.-2lnQ_b@exp", 0);
58 lnQ_b_obs = config.read<double>("LO.-2lnQ_b@obs", 0);
59 lnQ_b_xsec = config.read<double>("LO.-2lnQ_b@xsec", 0);
60 lnQ_sb_exp = config.read<double>("LO.-2lnQ_sb@exp", 0);
61 lnQ_sb_obs = config.read<double>("LO.-2lnQ_sb@obs", 0);
62 lnQ_sb_xsec = config.read<double>("LO.-2lnQ_sb@xsec", 0);
63 CLb_b_exp = config.read<double>("LO.CLb_b@exp", 0);
64 CLb_b_obs = config.read<double>("LO.CLb_b@obs", 0);
65 CLb_b_xsec = config.read<double>("LO.CLb_b@xsec", 0);
66 CLs_exp = config.read<double>("LO.CLs@exp", 0);
67 CLs_obs = config.read<double>("LO.CLs@obs", 0);
68 CLs_xsec = config.read<double>("LO.CLs@xsec", 0);
69 CLs_bNoSig_xsec=config.read<double>("LO.CLs_b_DataNoSignalHyp@xsec", 0);
70 CLs_b_exp = config.read<double>("LO.CLs_b@exp", 0);
71 CLs_b_obs = config.read<double>("LO.CLs_b@obs", 0);
72 CLs_b_xsec = config.read<double>("LO.CLs_b@xsec", 0);
73 CLs_b_n1_exp = config.read<double>("LO.CLs_b_n1@exp", 0);
74 CLs_b_n1_obs = config.read<double>("LO.CLs_b_n1@obs", 0);
75 CLs_b_n1_xsec = config.read<double>("LO.CLs_b_n1@xsec", 0);
76 CLs_b_n2_exp = config.read<double>("LO.CLs_b_n2@exp", 0);
77 CLs_b_n2_obs = config.read<double>("LO.CLs_b_n2@obs", 0);
78 CLs_b_n2_xsec = config.read<double>("LO.CLs_b_n2@xsec", 0);
79 CLs_b_p1_exp = config.read<double>("LO.CLs_b_p1@exp", 0);
80 CLs_b_p1_obs = config.read<double>("LO.CLs_b_p1@obs", 0);
81 CLs_b_p1_xsec = config.read<double>("LO.CLs_b_p1@xsec", 0);
82 CLs_b_p2_exp = config.read<double>("LO.CLs_b_p2@exp", 0);
83 CLs_b_p2_obs = config.read<double>("LO.CLs_b_p2@obs", 0);
84 CLs_b_p2_xsec = config.read<double>("LO.CLs_b_p2@xsec", 0);
85 CLsb_b_exp = config.read<double>("LO.CLsb_b@exp", 0);
86 CLsb_b_obs = config.read<double>("LO.CLsb_b@obs", 0);
87 CLsb_b_xsec = config.read<double>("LO.CLsb_b@xsec", 0);
88 PLExpXsecLimit= config.read<double>("RooSimpleProfile.xsec.LO.ExpUpperLimit", 0);
89 PLObsXsecLimit= config.read<double>("RooSimpleProfile.xsec.LO.ObsUpperLimit", 0);
90 PLExpNsigLimit= config.read<double>("RooSimpleProfile.signal.LO.ExpUpperLimit", 0);
91 PLObsNsigLimit= config.read<double>("RooSimpleProfile.signal.LO.ObsUpperLimit", 0);
92 FCExpXsecLimit= config.read<double>("RooFC.xsec.LO.ExpUpperLimit", 0);
93 FCObsXsecLimit= config.read<double>("RooFC.xsec.LO.ObsUpperLimit", 0);
94 FCExpNsigLimit= config.read<double>("RooFC.signal.LO.ExpUpperLimit", 0);
95 FCObsNsigLimit= config.read<double>("RooFC.signal.LO.ObsUpperLimit", 0);
96 MCMCExpXsecLimit= config.read<double>("RooMCMC.xsec.LO.ExpUpperLimit", 0);
97 MCMCObsXsecLimit= config.read<double>("RooMCMC.xsec.LO.ObsUpperLimit", 0);
98 MCMCExpNsigLimit= config.read<double>("RooMCMC.signal.LO.ExpUpperLimit", 0);
99 MCMCObsNsigLimit= config.read<double>("RooMCMC.signal.LO.ObsUpperLimit", 0);
100
101 NLO_signal_contamination = config.read<double>("signal.NLO.signalregion.IsoMuon", 0) +
102 config.read<double>("signal.NLO.signalregion.Tau", 0);
103 NLO_signal = config.read<double>("signal.NLO", 0);
104 NLO_signal_uncertainty = config.read<double>("signal.NLO.uncertainty", 0);
105 NLO_ExpXsecLimit = config.read<double>("NLO.ExpXsecLimit", 0);
106 NLO_ObsXsecLimit = config.read<double>("NLO.ObsXsecLimit", 0);
107 NLO_ExpNsigLimit = config.read<double>("NLO.ExpNsigLimit", 0);
108 NLO_ObsNsigLimit = config.read<double>("NLO.ObsNsigLimit", 0);
109 NLO_lnQ_b_exp = config.read<double>("NLO.-2lnQ_b@exp", 0);
110 NLO_lnQ_b_obs = config.read<double>("NLO.-2lnQ_b@obs", 0);
111 NLO_lnQ_b_xsec = config.read<double>("NLO.-2lnQ_b@xsec", 0);
112 NLO_lnQ_sb_exp = config.read<double>("NLO.-2lnQ_sb@exp", 0);
113 NLO_lnQ_sb_obs = config.read<double>("NLO.-2lnQ_sb@obs", 0);
114 NLO_lnQ_sb_xsec = config.read<double>("NLO.-2lnQ_sb@xsec", 0);
115 NLO_CLb_b_exp = config.read<double>("NLO.CLb_b@exp", 0);
116 NLO_CLb_b_obs = config.read<double>("NLO.CLb_b@obs", 0);
117 NLO_CLb_b_xsec = config.read<double>("NLO.CLb_b@xsec", 0);
118 NLO_CLs_exp = config.read<double>("NLO.CLs@exp", 0);
119 NLO_CLs_obs = config.read<double>("NLO.CLs@obs", 0);
120 NLO_CLs_xsec = config.read<double>("NLO.CLs@xsec", 0);
121 NLOHybrid_CLs_xsec = config.read<double>("NLOHybrid_CLs@xsec", 0);
122 NLOHybrid_CLs_xsec_error = config.read<double>("NLOHybrid_CLs_error@xsec", 0);
123 NLO_CLs_bNoSig_xsec = config.read<double>("NLO.CLs_b_DataNoSignalHyp@xsec", 0);
124 NLO_CLs_b_exp = config.read<double>("NLO.CLs_b@exp", 0);
125 NLO_CLs_b_obs = config.read<double>("NLO.CLs_b@obs", 0);
126 NLO_CLs_b_xsec = config.read<double>("NLO.CLs_b@xsec", 0);
127 NLO_CLs_b_n1_exp = config.read<double>("NLO.CLs_b_n1@exp", 0);
128 NLO_CLs_b_n1_obs = config.read<double>("NLO.CLs_b_n1@obs", 0);
129 NLO_CLs_b_n1_xsec = config.read<double>("NLO.CLs_b_n1@xsec", 0);
130 NLO_CLs_b_n2_exp = config.read<double>("NLO.CLs_b_n2@exp", 0);
131 NLO_CLs_b_n2_obs = config.read<double>("NLO.CLs_b_n2@obs", 0);
132 NLO_CLs_b_n2_xsec = config.read<double>("NLO.CLs_b_n2@xsec", 0);
133 NLO_CLs_b_p1_exp = config.read<double>("NLO.CLs_b_p1@exp", 0);
134 NLO_CLs_b_p1_obs = config.read<double>("NLO.CLs_b_p1@obs", 0);
135 NLO_CLs_b_p1_xsec = config.read<double>("NLO.CLs_b_p1@xsec", 0);
136 NLO_CLs_b_p2_exp = config.read<double>("NLO.CLs_b_p2@exp", 0);
137 NLO_CLs_b_p2_obs = config.read<double>("NLO.CLs_b_p2@obs", 0);
138 NLO_CLs_b_p2_xsec = config.read<double>("NLO.CLs_b_p2@xsec", 0);
139 NLO_CLsb_b_exp = config.read<double>("NLO.CLsb_b@exp", 0);
140 NLO_CLsb_b_obs = config.read<double>("NLO.CLsb_b@obs", 0);
141 NLO_CLsb_b_xsec = config.read<double>("NLO.CLsb_b@xsec", 0);
142 NLO_PLExpXsecLimit= config.read<double>("RooSimpleProfile.xsec.NLO.ExpUpperLimit", 0);
143 NLO_PLObsXsecLimit= config.read<double>("RooSimpleProfile.xsec.NLO.ObsUpperLimit", 0);
144 NLO_PLExpNsigLimit= config.read<double>("RooSimpleProfile.signal.NLO.ExpUpperLimit", 0);
145 NLO_PLObsNsigLimit= config.read<double>("RooSimpleProfile.signal.NLO.ObsUpperLimit", 0);
146 NLO_FCExpXsecLimit= config.read<double>("RooFC.xsec.NLO.ExpUpperLimit", 0);
147 NLO_FCObsXsecLimit= config.read<double>("RooFC.xsec.NLO.ObsUpperLimit", 0);
148 NLO_FCExpNsigLimit= config.read<double>("RooFC.signal.NLO.ExpUpperLimit", 0);
149 NLO_FCObsNsigLimit= config.read<double>("RooFC.signal.NLO.ObsUpperLimit", 0);
150 NLO_MCMCExpXsecLimit= config.read<double>("RooMCMC.xsec.NLO.ExpUpperLimit", 0);
151 NLO_MCMCObsXsecLimit= config.read<double>("RooMCMC.xsec.NLO.ObsUpperLimit", 0);
152 NLO_MCMCExpNsigLimit= config.read<double>("RooMCMC.signal.NLO.ExpUpperLimit", 0);
153 NLO_MCMCObsNsigLimit= config.read<double>("RooMCMC.signal.NLO.ObsUpperLimit", 0);
154 }
155
156 void SusyScan::SetPtr()
157 {
158 if (p.size()!=0) return;
159 p.push_back( &Mzero);
160 p.push_back( &Mhalf);
161 p.push_back( &Mu);
162 p.push_back( &TanBeta);
163 p.push_back( &Azero);
164 p.push_back( &Run);
165 p.push_back( &data);
166 p.push_back( &Xsection);
167 p.push_back( &background);
168 p.push_back( &background_uncertainty);
169 p.push_back( &signal_JEC_UP);
170 p.push_back( &signal_JEC_DN);
171 p.push_back( &signal_MuIso_UP);
172 p.push_back( &signal_MuIso_DN);
173 p.push_back( &signal_kfactor_UP);
174 p.push_back( &signal_kfactor_DN);
175 p.push_back( &signal_PDF_UP);
176 p.push_back( &signal_PDF_DN);
177 p.push_back( &signal_XSPDF_UP);
178 p.push_back( &signal_XSPDF_DN);
179 p.push_back( &signal_kfactor);
180 p.push_back( &signal);
181 p.push_back( &signal_uncertainty);
182 p.push_back( &signal_contamination);
183 p.push_back( &ExpXsecLimit);
184 p.push_back( &ObsXsecLimit);
185 p.push_back( &ExpNsigLimit);
186 p.push_back( &ObsNsigLimit);
187 p.push_back( &lnQ_b_exp);
188 p.push_back( &lnQ_b_obs);
189 p.push_back( &lnQ_b_xsec);
190 p.push_back( &lnQ_sb_exp);
191 p.push_back( &lnQ_sb_obs);
192 p.push_back( &lnQ_sb_xsec);
193 p.push_back( &CLb_b_exp);
194 p.push_back( &CLb_b_obs);
195 p.push_back( &CLb_b_xsec);
196 p.push_back( &CLs_exp);
197 p.push_back( &CLs_obs);
198 p.push_back( &CLs_xsec);
199 p.push_back( &CLs_b_exp);
200 p.push_back( &CLs_bNoSig_xsec);
201 p.push_back( &CLs_b_obs);
202 p.push_back( &CLs_b_xsec);
203 p.push_back( &CLs_b_n1_exp);
204 p.push_back( &CLs_b_n1_obs);
205 p.push_back( &CLs_b_n1_xsec);
206 p.push_back( &CLs_b_n2_exp);
207 p.push_back( &CLs_b_n2_obs);
208 p.push_back( &CLs_b_n2_xsec);
209 p.push_back( &CLs_b_p1_exp);
210 p.push_back( &CLs_b_p1_obs);
211 p.push_back( &CLs_b_p1_xsec);
212 p.push_back( &CLs_b_p2_exp);
213 p.push_back( &CLs_b_p2_obs);
214 p.push_back( &CLs_b_p2_xsec);
215 p.push_back( &CLsb_b_exp);
216 p.push_back( &CLsb_b_obs);
217 p.push_back( &CLsb_b_xsec);
218 p.push_back( &PLExpXsecLimit);
219 p.push_back( &PLObsXsecLimit);
220 p.push_back( &PLExpNsigLimit);
221 p.push_back( &PLObsNsigLimit);
222 p.push_back( &FCExpXsecLimit);
223 p.push_back( &FCObsXsecLimit);
224 p.push_back( &FCExpNsigLimit);
225 p.push_back( &FCObsNsigLimit);
226 p.push_back( &MCMCExpXsecLimit);
227 p.push_back( &MCMCObsXsecLimit);
228 p.push_back( &MCMCExpNsigLimit);
229 p.push_back( &MCMCObsNsigLimit);
230 p.push_back( &NLO_signal);
231 p.push_back( &NLO_signal_uncertainty);
232 p.push_back( &NLO_signal_contamination);
233 p.push_back( &NLO_ExpXsecLimit);
234 p.push_back( &NLO_ObsXsecLimit);
235 p.push_back( &NLO_ExpNsigLimit);
236 p.push_back( &NLO_ObsNsigLimit);
237 p.push_back( &NLO_lnQ_b_exp);
238 p.push_back( &NLO_lnQ_b_obs);
239 p.push_back( &NLO_lnQ_b_xsec);
240 p.push_back( &NLO_lnQ_sb_exp);
241 p.push_back( &NLO_lnQ_sb_obs);
242 p.push_back( &NLO_lnQ_sb_xsec);
243 p.push_back( &NLO_CLb_b_exp);
244 p.push_back( &NLO_CLb_b_obs);
245 p.push_back( &NLO_CLb_b_xsec);
246 p.push_back( &NLO_CLs_exp);
247 p.push_back( &NLO_CLs_obs);
248 p.push_back( &NLOHybrid_CLs_xsec);
249 p.push_back( &NLOHybrid_CLs_xsec_error);
250 p.push_back( &NLO_CLs_xsec);
251 p.push_back( &NLO_CLs_bNoSig_xsec);
252 p.push_back( &NLO_CLs_b_exp);
253 p.push_back( &NLO_CLs_b_obs);
254 p.push_back( &NLO_CLs_b_xsec);
255 p.push_back( &NLO_CLs_b_n1_exp);
256 p.push_back( &NLO_CLs_b_n1_obs);
257 p.push_back( &NLO_CLs_b_n1_xsec);
258 p.push_back( &NLO_CLs_b_n2_exp);
259 p.push_back( &NLO_CLs_b_n2_obs);
260 p.push_back( &NLO_CLs_b_n2_xsec);
261 p.push_back( &NLO_CLs_b_p1_exp);
262 p.push_back( &NLO_CLs_b_p1_obs);
263 p.push_back( &NLO_CLs_b_p1_xsec);
264 p.push_back( &NLO_CLs_b_p2_exp);
265 p.push_back( &NLO_CLs_b_p2_obs);
266 p.push_back( &NLO_CLs_b_p2_xsec);
267 p.push_back( &NLO_CLsb_b_exp);
268 p.push_back( &NLO_CLsb_b_obs);
269 p.push_back( &NLO_CLsb_b_xsec);
270 p.push_back( &NLO_PLExpXsecLimit);
271 p.push_back( &NLO_PLObsXsecLimit);
272 p.push_back( &NLO_PLExpNsigLimit);
273 p.push_back( &NLO_PLObsNsigLimit);
274 p.push_back( &NLO_FCExpXsecLimit);
275 p.push_back( &NLO_FCObsXsecLimit);
276 p.push_back( &NLO_FCExpNsigLimit);
277 p.push_back( &NLO_FCObsNsigLimit);
278 p.push_back( &NLO_MCMCExpXsecLimit);
279 p.push_back( &NLO_MCMCObsXsecLimit);
280 p.push_back( &NLO_MCMCExpNsigLimit);
281 p.push_back( &NLO_MCMCObsNsigLimit);
282 p.push_back( &M1);
283 p.push_back( &M2);
284 p.push_back( &M3);
285 p.push_back( &MGL);
286 p.push_back( &MUL);
287 p.push_back( &MB1);
288 p.push_back( &MSN);
289 p.push_back( &MNTAU);
290 p.push_back( &MZ1);
291 p.push_back( &MW1);
292 p.push_back( &MHL);
293 p.push_back( &MUR);
294 p.push_back( &MB2);
295 p.push_back( &MEL);
296 p.push_back( &MTAU1);
297 p.push_back( &MZ2);
298 p.push_back( &MW2);
299 p.push_back( &MHH);
300 p.push_back( &MDL);
301 p.push_back( &MT1);
302 p.push_back( &MER);
303 p.push_back( &MTAU2);
304 p.push_back( &MZ3);
305 p.push_back( &MHA);
306 p.push_back( &MDR);
307 p.push_back( &MT2);
308 p.push_back( &MZ4);
309 p.push_back( &MHp);
310
311 }
312
313 const SusyScan SusyScan::operator*(const double f) const
314 {
315 SusyScan res(*this);
316 for (std::vector<double*>::iterator it=res.p.begin(); it!=res.p.end(); ++it)
317 **it *= f;
318 return res;
319 }
320
321 const SusyScan SusyScan::operator+(const SusyScan& f) const
322 {
323 SusyScan res(*this);
324 std::vector<double*>::iterator it=res.p.begin();
325 std::vector<double*>::const_iterator fi= f.p.begin();
326 for (; it!=res.p.end(); ++it, ++fi)
327 **it += **fi;
328 return res;
329 }