ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/SusyScan/PlotScript/SusyScan.cc
Revision: 1.7
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.6: +203 -3 lines
Log Message:
post CWR comments

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