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.8 by auterman, Wed Jun 22 15:03:36 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 19 | Line 39 | SusyScan::SusyScan(std::string filename)
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", 10);
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);
# Line 41 | Line 66 | SusyScan::SusyScan(std::string filename)
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);
# Line 72 | Line 98 | SusyScan::SusyScan(std::string filename)
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);
# Line 88 | Line 118 | SusyScan::SusyScan(std::string filename)
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);
# Line 119 | Line 152 | SusyScan::SusyScan(std::string filename)
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 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines