ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/SusyScan/PlotScript/SusyScan.cc
(Generate patch)

Comparing UserCode/auterman/SusyScan/PlotScript/SusyScan.cc (file contents):
Revision 1.6 by auterman, Tue Feb 22 13:59:19 2011 UTC vs.
Revision 1.7 by auterman, Fri May 20 07:39:34 2011 UTC

# Line 1 | Line 1
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);
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);
# Line 21 | Line 41 | SusyScan::SusyScan(std::string filename)
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", 10);
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);
# Line 41 | Line 62 | SusyScan::SusyScan(std::string filename)
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);
# Line 72 | Line 94 | SusyScan::SusyScan(std::string filename)
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);
# Line 88 | Line 114 | SusyScan::SusyScan(std::string filename)
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);
# Line 119 | Line 148 | SusyScan::SusyScan(std::string filename)
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 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines