ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/FGolf/Tools/ScaleFactors.cc
(Generate patch)

Comparing UserCode/FGolf/Tools/ScaleFactors.cc (file contents):
Revision 1.1 by fgolf, Mon May 28 15:18:22 2012 UTC vs.
Revision 1.2 by kelley, Mon May 28 19:31:28 2012 UTC

# Line 1 | Line 1
1   #include "ScaleFactors.h"
2   #include "CORE/CMS2.h"
3 < #include "bTagEff_BTV.h"
3 > //#include "bTagEff_BTV.h"
4  
5 < float dileptonTagAndProbeScaleFactor(int idx)
5 > float dileptonTagAndProbeScaleFactor(int hyp_idx)
6   {
7 <    float sf1 = tagAndProbeScaleFactor(cms2.hyp_lt_id().at(idx), cms2.hyp_lt_p4().at(idx).pt(), cms2.hyp_lt_p4().at(idx).eta());
8 <    float sf2 = tagAndProbeScaleFactor(cms2.hyp_ll_id().at(idx), cms2.hyp_ll_p4().at(idx).pt(), cms2.hyp_ll_p4().at(idx).eta());
7 >    float sf1 = tagAndProbeScaleFactor(cms2.hyp_lt_id().at(hyp_idx), cms2.hyp_lt_p4().at(hyp_idx).pt(), cms2.hyp_lt_p4().at(hyp_idx).eta());
8 >    float sf2 = tagAndProbeScaleFactor(cms2.hyp_ll_id().at(hyp_idx), cms2.hyp_ll_p4().at(hyp_idx).pt(), cms2.hyp_ll_p4().at(hyp_idx).eta());
9  
10      return (sf1 * sf2);
11   }
# Line 57 | Line 57 | float tagAndProbeScaleFactor(int id, flo
57      return 0.;
58   }
59  
60 + float dilepTriggerScaleFactor(enum TrigEffType trig_eff_type, int hyp_idx)
61 + {
62 +    float sf1 = triggerScaleFactor(trig_eff_type, cms2.hyp_lt_id().at(hyp_idx), cms2.hyp_lt_p4().at(hyp_idx).pt(), cms2.hyp_lt_p4().at(hyp_idx).eta());
63 +    float sf2 = triggerScaleFactor(trig_eff_type, cms2.hyp_ll_id().at(hyp_idx), cms2.hyp_ll_p4().at(hyp_idx).pt(), cms2.hyp_ll_p4().at(hyp_idx).eta());
64 +    return (sf1 * sf2);
65 + }
66 +
67 + float triggerScaleFactor(enum TrigEffType trig_eff_type, int id, float pt, float eta)
68 + {
69 +        unsigned int aid  = abs(id);
70 +        float feta = fabs(eta);
71 +
72 +        if (aid == 11)
73 +        {
74 +                switch (trig_eff_type)
75 +                {
76 +                        case DzDbl:
77 +                                if (fabs(eta) < 0.000) return 0.;
78 +                                if (fabs(eta) > 2.500) return 0.;
79 +
80 +                                if (pt < 20.000) return 0.;
81 +                                if (pt > 7000.000) return 0.;
82 +
83 +                                if (fabs(eta) < 0.800000) {
84 +                                        if (pt < 22.500000) return 1.000;
85 +                                        else if (pt < 25.000000) return 1.000;
86 +                                        else if (pt < 27.500000) return 0.999;
87 +                                        else if (pt < 30.000000) return 1.000;
88 +                                        else if (pt < 35.000000) return 1.000;
89 +                                        else if (pt < 40.000000) return 1.000;
90 +                                        else if (pt < 50.000000) return 1.000;
91 +                                        else if (pt < 7000.000000) return 1.000;
92 +                                }
93 +                                else if (fabs(eta) < 1.479000) {
94 +                                        if (pt < 22.500000) return 1.000;
95 +                                        else if (pt < 25.000000) return 1.000;
96 +                                        else if (pt < 27.500000) return 0.996;
97 +                                        else if (pt < 30.000000) return 1.000;
98 +                                        else if (pt < 35.000000) return 1.000;
99 +                                        else if (pt < 40.000000) return 1.000;
100 +                                        else if (pt < 50.000000) return 0.999;
101 +                                        else if (pt < 7000.000000) return 1.000;
102 +                                }
103 +                                else if (fabs(eta) < 2.000000) {
104 +                                        if (pt < 22.500000) return 1.000;
105 +                                        else if (pt < 25.000000) return 1.000;
106 +                                        else if (pt < 27.500000) return 1.000;
107 +                                        else if (pt < 30.000000) return 0.997;
108 +                                        else if (pt < 35.000000) return 0.999;
109 +                                        else if (pt < 40.000000) return 0.999;
110 +                                        else if (pt < 50.000000) return 0.998;
111 +                                        else if (pt < 7000.000000) return 0.997;
112 +                                }
113 +                                else if (fabs(eta) < 2.500000) {
114 +                                        if (pt < 22.500000) return 0.974;
115 +                                        else if (pt < 25.000000) return 0.990;
116 +                                        else if (pt < 27.500000) return 0.994;
117 +                                        else if (pt < 30.000000) return 1.000;
118 +                                        else if (pt < 35.000000) return 0.993;
119 +                                        else if (pt < 40.000000) return 0.987;
120 +                                        else if (pt < 50.000000) return 0.989;
121 +                                        else if (pt < 7000.000000) return 0.988;
122 +                                }
123 +                                break;
124 +                        case LeadDbl:
125 +                                if (fabs(eta) < 0.000) return 0.;
126 +                                if (fabs(eta) > 2.500) return 0.;
127 +
128 +                                if (pt < 20.000) return 0.;
129 +                                if (pt > 7000.000) return 0.;
130 +
131 +                                if (fabs(eta) < 0.800000) {
132 +                                        if (pt < 22.500000) return 0.943;
133 +                                        else if (pt < 25.000000) return 0.936;
134 +                                        else if (pt < 27.500000) return 0.960;
135 +                                        else if (pt < 30.000000) return 0.967;
136 +                                        else if (pt < 35.000000) return 0.974;
137 +                                        else if (pt < 40.000000) return 0.977;
138 +                                        else if (pt < 50.000000) return 0.977;
139 +                                        else if (pt < 7000.000000) return 0.971;
140 +                                }
141 +                                else if (fabs(eta) < 1.479000) {
142 +                                        if (pt < 22.500000) return 0.957;
143 +                                        else if (pt < 25.000000) return 0.969;
144 +                                        else if (pt < 27.500000) return 0.987;
145 +                                        else if (pt < 30.000000) return 0.987;
146 +                                        else if (pt < 35.000000) return 0.991;
147 +                                        else if (pt < 40.000000) return 0.993;
148 +                                        else if (pt < 50.000000) return 0.995;
149 +                                        else if (pt < 7000.000000) return 0.993;
150 +                                }
151 +                                else if (fabs(eta) < 2.000000) {
152 +                                        if (pt < 22.500000) return 0.982;
153 +                                        else if (pt < 25.000000) return 0.986;
154 +                                        else if (pt < 27.500000) return 0.984;
155 +                                        else if (pt < 30.000000) return 0.991;
156 +                                        else if (pt < 35.000000) return 0.994;
157 +                                        else if (pt < 40.000000) return 0.994;
158 +                                        else if (pt < 50.000000) return 0.996;
159 +                                        else if (pt < 7000.000000) return 0.995;
160 +                                }
161 +                                else if (fabs(eta) < 2.500000) {
162 +                                        if (pt < 22.500000) return 0.835;
163 +                                        else if (pt < 25.000000) return 0.981;
164 +                                        else if (pt < 27.500000) return 1.000;
165 +                                        else if (pt < 30.000000) return 0.987;
166 +                                        else if (pt < 35.000000) return 0.990;
167 +                                        else if (pt < 40.000000) return 0.986;
168 +                                        else if (pt < 50.000000) return 0.989;
169 +                                        else if (pt < 7000.000000) return 0.994;
170 +                                }
171 +                                break;
172 +                        case Sgl:
173 +                                if (fabs(eta) < 0.000) return 0.;
174 +                                if (fabs(eta) > 2.500) return 0.;
175 +
176 +                                if (pt < 20.000) return 0.;
177 +                                if (pt > 7000.000) return 0.;
178 +
179 +                                if (fabs(eta) < 0.800000) {
180 +                                        if (pt < 22.500000) return 0.000;
181 +                                        else if (pt < 25.000000) return 0.000;
182 +                                        else if (pt < 27.500000) return 0.059;
183 +                                        else if (pt < 30.000000) return 0.740;
184 +                                        else if (pt < 35.000000) return 0.904;
185 +                                        else if (pt < 40.000000) return 0.927;
186 +                                        else if (pt < 50.000000) return 0.945;
187 +                                        else if (pt < 7000.000000) return 0.950;
188 +                                }
189 +                                else if (fabs(eta) < 1.479000) {
190 +                                        if (pt < 22.500000) return 0.000;
191 +                                        else if (pt < 25.000000) return 0.035;
192 +                                        else if (pt < 27.500000) return 0.112;
193 +                                        else if (pt < 30.000000) return 0.647;
194 +                                        else if (pt < 35.000000) return 0.915;
195 +                                        else if (pt < 40.000000) return 0.939;
196 +                                        else if (pt < 50.000000) return 0.956;
197 +                                        else if (pt < 7000.000000) return 0.968;
198 +                                }
199 +                                else if (fabs(eta) < 2.000000) {
200 +                                        if (pt < 22.500000) return 0.000;
201 +                                        else if (pt < 25.000000) return 0.006;
202 +                                        else if (pt < 27.500000) return 0.108;
203 +                                        else if (pt < 30.000000) return 0.448;
204 +                                        else if (pt < 35.000000) return 0.687;
205 +                                        else if (pt < 40.000000) return 0.735;
206 +                                        else if (pt < 50.000000) return 0.767;
207 +                                        else if (pt < 7000.000000) return 0.766;
208 +                                }
209 +                                else if (fabs(eta) < 2.500000) {
210 +                                        if (pt < 22.500000) return 0.000;
211 +                                        else if (pt < 25.000000) return 0.009;
212 +                                        else if (pt < 27.500000) return 0.095;
213 +                                        else if (pt < 30.000000) return 0.305;
214 +                                        else if (pt < 35.000000) return 0.532;
215 +                                        else if (pt < 40.000000) return 0.640;
216 +                                        else if (pt < 50.000000) return 0.695;
217 +                                        else if (pt < 7000.000000) return 0.687;
218 +                                }
219 +                                break;
220 +                        case TrailDbl:
221 +                                if (fabs(eta) < 0.000) return 0.;
222 +                                if (fabs(eta) > 2.500) return 0.;
223 +
224 +                                if (pt < 20.000) return 0.;
225 +                                if (pt > 7000.000) return 0.;
226 +
227 +                                if (fabs(eta) < 0.800000) {
228 +                                        if (pt < 22.500000) return 0.943;
229 +                                        else if (pt < 25.000000) return 0.951;
230 +                                        else if (pt < 27.500000) return 0.963;
231 +                                        else if (pt < 30.000000) return 0.962;
232 +                                        else if (pt < 35.000000) return 0.970;
233 +                                        else if (pt < 40.000000) return 0.974;
234 +                                        else if (pt < 50.000000) return 0.974;
235 +                                        else if (pt < 7000.000000) return 0.970;
236 +                                }
237 +                                else if (fabs(eta) < 1.479000) {
238 +                                        if (pt < 22.500000) return 0.970;
239 +                                        else if (pt < 25.000000) return 0.974;
240 +                                        else if (pt < 27.500000) return 0.977;
241 +                                        else if (pt < 30.000000) return 0.984;
242 +                                        else if (pt < 35.000000) return 0.987;
243 +                                        else if (pt < 40.000000) return 0.987;
244 +                                        else if (pt < 50.000000) return 0.990;
245 +                                        else if (pt < 7000.000000) return 0.987;
246 +                                }
247 +                                else if (fabs(eta) < 2.000000) {
248 +                                        if (pt < 22.500000) return 0.982;
249 +                                        else if (pt < 25.000000) return 0.993;
250 +                                        else if (pt < 27.500000) return 0.979;
251 +                                        else if (pt < 30.000000) return 0.991;
252 +                                        else if (pt < 35.000000) return 0.988;
253 +                                        else if (pt < 40.000000) return 0.989;
254 +                                        else if (pt < 50.000000) return 0.993;
255 +                                        else if (pt < 7000.000000) return 0.992;
256 +                                }
257 +                                else if (fabs(eta) < 2.500000) {
258 +                                        if (pt < 22.500000) return 0.962;
259 +                                        else if (pt < 25.000000) return 0.981;
260 +                                        else if (pt < 27.500000) return 1.000;
261 +                                        else if (pt < 30.000000) return 0.987;
262 +                                        else if (pt < 35.000000) return 0.989;
263 +                                        else if (pt < 40.000000) return 0.985;
264 +                                        else if (pt < 50.000000) return 0.987;
265 +                                        else if (pt < 7000.000000) return 0.992;
266 +                                }
267 +                                break;
268 +                };
269 +        }
270 +        else if (aid == 13)
271 +        {
272 +                switch (trig_eff_type)
273 +                {
274 +                        case DzDbl:
275 +                                if (fabs(eta) < 0.000) return 0.;
276 +                                if (fabs(eta) > 2.400) return 0.;
277 +
278 +                                if (pt < 20.000) return 0.;
279 +                                if (pt > 7000.000) return 0.;
280 +
281 +                                if (fabs(eta) < 0.800000) {
282 +                                        if (pt < 22.500000) return 0.901;
283 +                                        else if (pt < 25.000000) return 0.883;
284 +                                        else if (pt < 27.500000) return 0.912;
285 +                                        else if (pt < 30.000000) return 0.905;
286 +                                        else if (pt < 35.000000) return 0.906;
287 +                                        else if (pt < 40.000000) return 0.909;
288 +                                        else if (pt < 50.000000) return 0.923;
289 +                                        else if (pt < 7000.000000) return 0.927;
290 +                                }
291 +                                else if (fabs(eta) < 1.200000) {
292 +                                        if (pt < 22.500000) return 0.904;
293 +                                        else if (pt < 25.000000) return 0.897;
294 +                                        else if (pt < 27.500000) return 0.926;
295 +                                        else if (pt < 30.000000) return 0.921;
296 +                                        else if (pt < 35.000000) return 0.903;
297 +                                        else if (pt < 40.000000) return 0.896;
298 +                                        else if (pt < 50.000000) return 0.890;
299 +                                        else if (pt < 7000.000000) return 0.876;
300 +                                }
301 +                                else if (fabs(eta) < 2.400000) {
302 +                                        if (pt < 22.500000) return 0.864;
303 +                                        else if (pt < 25.000000) return 0.847;
304 +                                        else if (pt < 27.500000) return 0.864;
305 +                                        else if (pt < 30.000000) return 0.862;
306 +                                        else if (pt < 35.000000) return 0.858;
307 +                                        else if (pt < 40.000000) return 0.840;
308 +                                        else if (pt < 50.000000) return 0.824;
309 +                                        else if (pt < 7000.000000) return 0.810;
310 +                                }
311 +                                break;
312 +                        case LeadDbl:
313 +                                if (fabs(eta) < 0.000) return 0.;
314 +                                if (fabs(eta) > 2.400) return 0.;
315 +
316 +                                if (pt < 20.000) return 0.;
317 +                                if (pt > 7000.000) return 0.;
318 +
319 +                                if (fabs(eta) < 0.800000) {
320 +                                        if (pt < 22.500000) return 0.983;
321 +                                        else if (pt < 25.000000) return 0.976;
322 +                                        else if (pt < 27.500000) return 0.982;
323 +                                        else if (pt < 30.000000) return 0.977;
324 +                                        else if (pt < 35.000000) return 0.976;
325 +                                        else if (pt < 40.000000) return 0.977;
326 +                                        else if (pt < 50.000000) return 0.976;
327 +                                        else if (pt < 7000.000000) return 0.977;
328 +                                }
329 +                                else if (fabs(eta) < 1.200000) {
330 +                                        if (pt < 22.500000) return 0.911;
331 +                                        else if (pt < 25.000000) return 0.935;
332 +                                        else if (pt < 27.500000) return 0.927;
333 +                                        else if (pt < 30.000000) return 0.925;
334 +                                        else if (pt < 35.000000) return 0.938;
335 +                                        else if (pt < 40.000000) return 0.939;
336 +                                        else if (pt < 50.000000) return 0.939;
337 +                                        else if (pt < 7000.000000) return 0.934;
338 +                                }
339 +                                else if (fabs(eta) < 2.400000) {
340 +                                        if (pt < 22.500000) return 0.900;
341 +                                        else if (pt < 25.000000) return 0.915;
342 +                                        else if (pt < 27.500000) return 0.903;
343 +                                        else if (pt < 30.000000) return 0.908;
344 +                                        else if (pt < 35.000000) return 0.917;
345 +                                        else if (pt < 40.000000) return 0.917;
346 +                                        else if (pt < 50.000000) return 0.921;
347 +                                        else if (pt < 7000.000000) return 0.916;
348 +                                }
349 +                                break;
350 +                        case Sgl:
351 +                                if (fabs(eta) < 0.000) return 0.;
352 +                                if (fabs(eta) > 2.400) return 0.;
353 +
354 +                                if (pt < 20.000) return 0.;
355 +                                if (pt > 7000.000) return 0.;
356 +
357 +                                if (fabs(eta) < 0.800000) {
358 +                                        if (pt < 22.500000) return 0.001;
359 +                                        else if (pt < 25.000000) return 0.390;
360 +                                        else if (pt < 27.500000) return 0.870;
361 +                                        else if (pt < 30.000000) return 0.883;
362 +                                        else if (pt < 35.000000) return 0.905;
363 +                                        else if (pt < 40.000000) return 0.916;
364 +                                        else if (pt < 50.000000) return 0.931;
365 +                                        else if (pt < 7000.000000) return 0.944;
366 +                                }
367 +                                else if (fabs(eta) < 1.200000) {
368 +                                        if (pt < 22.500000) return 0.005;
369 +                                        else if (pt < 25.000000) return 0.361;
370 +                                        else if (pt < 27.500000) return 0.803;
371 +                                        else if (pt < 30.000000) return 0.805;
372 +                                        else if (pt < 35.000000) return 0.829;
373 +                                        else if (pt < 40.000000) return 0.847;
374 +                                        else if (pt < 50.000000) return 0.856;
375 +                                        else if (pt < 7000.000000) return 0.850;
376 +                                }
377 +                                else if (fabs(eta) < 2.400000) {
378 +                                        if (pt < 22.500000) return 0.004;
379 +                                        else if (pt < 25.000000) return 0.312;
380 +                                        else if (pt < 27.500000) return 0.590;
381 +                                        else if (pt < 30.000000) return 0.608;
382 +                                        else if (pt < 35.000000) return 0.620;
383 +                                        else if (pt < 40.000000) return 0.653;
384 +                                        else if (pt < 50.000000) return 0.699;
385 +                                        else if (pt < 7000.000000) return 0.710;
386 +                                }
387 +                                break;
388 +                        case TrailDbl:
389 +                                if (fabs(eta) < 0.000) return 0.;
390 +                                if (fabs(eta) > 2.400) return 0.;
391 +
392 +                                if (pt < 20.000) return 0.;
393 +                                if (pt > 7000.000) return 0.;
394 +
395 +                                if (fabs(eta) < 0.800000) {
396 +                                        if (pt < 22.500000) return 0.985;
397 +                                        else if (pt < 25.000000) return 0.977;
398 +                                        else if (pt < 27.500000) return 0.984;
399 +                                        else if (pt < 30.000000) return 0.978;
400 +                                        else if (pt < 35.000000) return 0.977;
401 +                                        else if (pt < 40.000000) return 0.978;
402 +                                        else if (pt < 50.000000) return 0.978;
403 +                                        else if (pt < 7000.000000) return 0.978;
404 +                                }
405 +                                else if (fabs(eta) < 1.200000) {
406 +                                        if (pt < 22.500000) return 0.934;
407 +                                        else if (pt < 25.000000) return 0.946;
408 +                                        else if (pt < 27.500000) return 0.945;
409 +                                        else if (pt < 30.000000) return 0.934;
410 +                                        else if (pt < 35.000000) return 0.949;
411 +                                        else if (pt < 40.000000) return 0.948;
412 +                                        else if (pt < 50.000000) return 0.947;
413 +                                        else if (pt < 7000.000000) return 0.943;
414 +                                }
415 +                                else if (fabs(eta) < 2.400000) {
416 +                                        if (pt < 22.500000) return 0.933;
417 +                                        else if (pt < 25.000000) return 0.948;
418 +                                        else if (pt < 27.500000) return 0.934;
419 +                                        else if (pt < 30.000000) return 0.936;
420 +                                        else if (pt < 35.000000) return 0.940;
421 +                                        else if (pt < 40.000000) return 0.935;
422 +                                        else if (pt < 50.000000) return 0.936;
423 +                                        else if (pt < 7000.000000) return 0.931;
424 +                                }
425 +                                break;
426 +                };
427 +        }
428 +        else
429 +        {
430 +                return 0.0;
431 +        }
432 +        return 0.0;
433 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines