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

# 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     signal_kfactor = config.read<double>("signal.kFactor", 0);
43    
44 auterman 1.7 signal_contamination = config.read<double>("signal.LO.signalregion.IsoMuon", 0) +
45     config.read<double>("signal.LO.signalregion.Tau", 0);
46 auterman 1.6 signal = config.read<double>("signal.LO", 0);
47     signal_uncertainty = config.read<double>("signal.LO.uncertainty", 0);
48 auterman 1.1 Xsection = config.read<double>("Xsection", 0);
49 auterman 1.6 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 auterman 1.7 CLs_bNoSig_xsec=config.read<double>("LO.CLs_b_DataNoSignalHyp@xsec", 0);
66 auterman 1.6 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 auterman 1.7 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 auterman 1.6 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 auterman 1.7 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 auterman 1.6 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 auterman 1.1 }
151 auterman 1.7
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     }