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

# User Rev Content
1 auterman 1.1 #include "SusyScan.h"
2     #include "ConfigFile.h"
3    
4 auterman 1.7
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 auterman 1.1 SusyScan::SusyScan(std::string filename)
24     {
25 auterman 1.7 SetPtr();
26 auterman 1.1 ConfigFile config(filename);
27 auterman 1.7 Mzero = config.read<double>("Mzero", 0);
28     Mhalf = config.read<double>("Mhalf", 0);
29 auterman 1.1 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 auterman 1.6 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 auterman 1.8 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 auterman 1.6 signal_kfactor = config.read<double>("signal.kFactor", 0);
47    
48 auterman 1.7 signal_contamination = config.read<double>("signal.LO.signalregion.IsoMuon", 0) +
49     config.read<double>("signal.LO.signalregion.Tau", 0);
50 auterman 1.6 signal = config.read<double>("signal.LO", 0);
51     signal_uncertainty = config.read<double>("signal.LO.uncertainty", 0);
52 auterman 1.1 Xsection = config.read<double>("Xsection", 0);
53 auterman 1.6 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 auterman 1.7 CLs_bNoSig_xsec=config.read<double>("LO.CLs_b_DataNoSignalHyp@xsec", 0);
70 auterman 1.6 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 auterman 1.7 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 auterman 1.6 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 auterman 1.7 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 auterman 1.6 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 auterman 1.1 }
155 auterman 1.7
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 auterman 1.8 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 auterman 1.7 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     }