132 |
|
float err[9][1000]; |
133 |
|
float obslim[9][1000]; |
134 |
|
float explim[9][1000]; |
135 |
+ |
float explimplus[9][1000]; |
136 |
+ |
float explimminus[9][1000]; |
137 |
|
bool usedflag[9][1000]; // a flag to be used later |
138 |
|
int nentries[9]; // number of entries in the file |
139 |
|
|
246 |
|
for (int sr=0; sr<9; sr++) { |
247 |
|
cout << "Calculating limits for SR" << sr << endl; |
248 |
|
for (int il=0; il<numbLines; il++) { |
249 |
< |
float thisErr = err[sr][il]; |
250 |
< |
double blahObs = observedLimitOnNumberOfEvents(sr+1, 100.*thisErr, false ); |
251 |
< |
double blahExp = expectedLimitOnNumberOfEvents(sr+1, 100.*thisErr, false ); |
252 |
< |
obslim[sr][il] = (float) blahObs; |
253 |
< |
explim[sr][il] = (float) blahExp; |
249 |
> |
float thisErr = err[sr][il]; |
250 |
> |
double blahObs = observedLimitOnNumberOfEvents(sr+1, 100.*thisErr, true ); |
251 |
> |
double blahExp = expectedLimitOnNumberOfEvents(sr+1, 100.*thisErr, false ); |
252 |
> |
double blahExpplus = expectedPlusOneSigmaLimitOnNumberOfEvents(sr+1, 100.*thisErr, false ); |
253 |
> |
double blahExpminus = expectedMinusOneSigmaLimitOnNumberOfEvents(sr+1, 100.*thisErr, false ); |
254 |
> |
obslim[sr][il] = (float) blahObs; |
255 |
> |
explim[sr][il] = (float) blahExp; |
256 |
> |
explimplus[sr][il] = (float) blahExpplus; |
257 |
> |
explimminus[sr][il] = (float) blahExpminus; |
258 |
|
} |
259 |
|
} |
260 |
|
//----------------------------------------------------- |
323 |
|
float explimsr8_ = -1.; |
324 |
|
float explimsrb_ = -1.; // b = best SR |
325 |
|
|
326 |
+ |
float explimplussr0_ = -1.; |
327 |
+ |
float explimplussr1_ = -1.; |
328 |
+ |
float explimplussr2_ = -1.; |
329 |
+ |
float explimplussr3_ = -1.; |
330 |
+ |
float explimplussr4_ = -1.; |
331 |
+ |
float explimplussr5_ = -1.; |
332 |
+ |
float explimplussr6_ = -1.; |
333 |
+ |
float explimplussr7_ = -1.; |
334 |
+ |
float explimplussr8_ = -1.; |
335 |
+ |
float explimplussrb_ = -1.; // b = best SR |
336 |
+ |
|
337 |
+ |
float explimminussr0_ = -1.; |
338 |
+ |
float explimminussr1_ = -1.; |
339 |
+ |
float explimminussr2_ = -1.; |
340 |
+ |
float explimminussr3_ = -1.; |
341 |
+ |
float explimminussr4_ = -1.; |
342 |
+ |
float explimminussr5_ = -1.; |
343 |
+ |
float explimminussr6_ = -1.; |
344 |
+ |
float explimminussr7_ = -1.; |
345 |
+ |
float explimminussr8_ = -1.; |
346 |
+ |
float explimminussrb_ = -1.; // b = best SR |
347 |
+ |
|
348 |
|
|
349 |
|
// put the branches in the tree |
350 |
|
babyTree_->Branch("glmass", &glmass_); |
399 |
|
babyTree_->Branch("explimsr8", &explimsr8_); |
400 |
|
babyTree_->Branch("explimsrb", &explimsrb_); // b = best SR |
401 |
|
|
402 |
+ |
babyTree_->Branch("explimplussr0", &explimplussr0_); |
403 |
+ |
babyTree_->Branch("explimplussr1", &explimplussr1_); |
404 |
+ |
babyTree_->Branch("explimplussr2", &explimplussr2_); |
405 |
+ |
babyTree_->Branch("explimplussr3", &explimplussr3_); |
406 |
+ |
babyTree_->Branch("explimplussr4", &explimplussr4_); |
407 |
+ |
babyTree_->Branch("explimplussr5", &explimplussr5_); |
408 |
+ |
babyTree_->Branch("explimplussr6", &explimplussr6_); |
409 |
+ |
babyTree_->Branch("explimplussr7", &explimplussr7_); |
410 |
+ |
babyTree_->Branch("explimplussr8", &explimplussr8_); |
411 |
+ |
babyTree_->Branch("explimplussrb", &explimplussrb_); // b = best SR |
412 |
+ |
|
413 |
+ |
babyTree_->Branch("explimminussr0", &explimminussr0_); |
414 |
+ |
babyTree_->Branch("explimminussr1", &explimminussr1_); |
415 |
+ |
babyTree_->Branch("explimminussr2", &explimminussr2_); |
416 |
+ |
babyTree_->Branch("explimminussr3", &explimminussr3_); |
417 |
+ |
babyTree_->Branch("explimminussr4", &explimminussr4_); |
418 |
+ |
babyTree_->Branch("explimminussr5", &explimminussr5_); |
419 |
+ |
babyTree_->Branch("explimminussr6", &explimminussr6_); |
420 |
+ |
babyTree_->Branch("explimminussr7", &explimminussr7_); |
421 |
+ |
babyTree_->Branch("explimminussr8", &explimminussr8_); |
422 |
+ |
babyTree_->Branch("explimminussrb", &explimminussrb_); // b = best SR |
423 |
+ |
|
424 |
+ |
|
425 |
|
// fill the variables. |
426 |
|
// Note: the best region is the one with the smallest |
427 |
|
// ratio of expected limit and efficiency |
438 |
|
errsr0_ = eff[0][il]; |
439 |
|
obslimsr0_ = obslim[0][il]; |
440 |
|
explimsr0_ = explim[0][il]; |
441 |
+ |
explimplussr0_ = explimplus[0][il]; |
442 |
+ |
explimminussr0_ = explimminus[0][il]; |
443 |
|
float temp = explimsr0_/effsr0_; |
444 |
|
// if (temp < best) { |
445 |
|
// best = temp; |
453 |
|
errsr1_ = eff[1][il]; |
454 |
|
obslimsr1_ = obslim[1][il]; |
455 |
|
explimsr1_ = explim[1][il]; |
456 |
+ |
explimplussr1_ = explimplus[1][il]; |
457 |
+ |
explimminussr1_ = explimminus[1][il]; |
458 |
|
float temp = explimsr1_/effsr1_; |
459 |
|
if (temp < best) { |
460 |
|
best = temp; |
468 |
|
errsr2_ = eff[2][il]; |
469 |
|
obslimsr2_ = obslim[2][il]; |
470 |
|
explimsr2_ = explim[2][il]; |
471 |
+ |
explimplussr2_ = explimplus[2][il]; |
472 |
+ |
explimminussr2_ = explimminus[2][il]; |
473 |
|
float temp = explimsr2_/effsr2_; |
474 |
|
if (temp < best) { |
475 |
|
best = temp; |
483 |
|
errsr3_ = eff[3][il]; |
484 |
|
obslimsr3_ = obslim[3][il]; |
485 |
|
explimsr3_ = explim[3][il]; |
486 |
+ |
explimplussr3_ = explimplus[3][il]; |
487 |
+ |
explimminussr3_ = explimminus[3][il]; |
488 |
|
float temp = explimsr3_/effsr3_; |
489 |
|
if (temp < best) { |
490 |
|
best = temp; |
498 |
|
errsr4_ = eff[4][il]; |
499 |
|
obslimsr4_ = obslim[4][il]; |
500 |
|
explimsr4_ = explim[4][il]; |
501 |
+ |
explimplussr4_ = explimplus[4][il]; |
502 |
+ |
explimminussr4_ = explimminus[4][il]; |
503 |
|
float temp = explimsr4_/effsr4_; |
504 |
|
if (temp < best) { |
505 |
|
best = temp; |
513 |
|
errsr5_ = eff[5][il]; |
514 |
|
obslimsr5_ = obslim[5][il]; |
515 |
|
explimsr5_ = explim[5][il]; |
516 |
+ |
explimplussr5_ = explimplus[5][il]; |
517 |
+ |
explimminussr5_ = explimminus[5][il]; |
518 |
|
float temp = explimsr5_/effsr5_; |
519 |
|
if (temp < best) { |
520 |
|
best = temp; |
528 |
|
errsr6_ = eff[6][il]; |
529 |
|
obslimsr6_ = obslim[6][il]; |
530 |
|
explimsr6_ = explim[6][il]; |
531 |
+ |
explimplussr6_ = explimplus[6][il]; |
532 |
+ |
explimminussr6_ = explimminus[6][il]; |
533 |
|
float temp = explimsr6_/effsr6_; |
534 |
|
if (temp < best) { |
535 |
|
best = temp; |
543 |
|
errsr7_ = eff[7][il]; |
544 |
|
obslimsr7_ = obslim[7][il]; |
545 |
|
explimsr7_ = explim[7][il]; |
546 |
+ |
explimplussr7_ = explimplus[7][il]; |
547 |
+ |
explimminussr7_ = explimminus[7][il]; |
548 |
|
float temp = explimsr7_/effsr7_; |
549 |
|
if (temp < best) { |
550 |
|
best = temp; |
558 |
|
errsr8_ = eff[8][il]; |
559 |
|
obslimsr8_ = obslim[8][il]; |
560 |
|
explimsr8_ = explim[8][il]; |
561 |
+ |
explimplussr8_ = explimplus[8][il]; |
562 |
+ |
explimminussr8_ = explimminus[8][il]; |
563 |
|
float temp = explimsr8_/effsr8_; |
564 |
|
if (temp < best) { |
565 |
|
best = temp; |
572 |
|
errsrb_ = eff[ibest][il]; |
573 |
|
obslimsrb_ = obslim[ibest][il]; |
574 |
|
explimsrb_ = explim[ibest][il]; |
575 |
+ |
explimplussrb_ = explimplus[ibest][il]; |
576 |
+ |
explimminussrb_ = explimminus[ibest][il]; |
577 |
|
|
578 |
|
// Fill the cross-section |
579 |
|
bool done = false; |