I am starting to use TRolke and SetGaussBkgGaussEff does not perform as I expect. In particular, the upper limit returned does not seem to depend on the uncertainty on the background estimate. SetGaussBkgKnownEff does seem to work as I expect.
I am using Root 5.26/00 on Mac OS 10.6.2
Here is my test program:
[quote]{
TRolke tr;
Double_t alpha = 0.8;
tr.SetCL(alpha);
Double_t events = 182;
Double_t background = 182;
Double_t backErr = 0;
Double_t efficiency = 1;
Double_t effErr = 0;
Double_t UL;
tr.SetGaussBkgGaussEff(events, background, efficiency, effErr, backErr);
UL = tr.GetUpperLimit();
cout << "GaussBkgGaussEff: Observed = " << events << " Background = "
<< background << " +/- " << backErr << " upper limit = " << UL << endl;
tr.SetGaussBkgKnownEff(events, background, backErr, efficiency);
UL = tr.GetUpperLimit();
cout << "GaussBkgKnownEff: Observed = " << events << " Background = "
<< background << " +/- " << backErr << " upper limit = " << UL << endl;
backErr = 14;
tr.SetGaussBkgGaussEff(events, background, efficiency, effErr, backErr);
UL = tr.GetUpperLimit();
cout << "GaussBkgGaussEff: Observed = " << events << " Background = "
<< background << " +/- " << backErr << " upper limit = " << UL << endl;
tr.SetGaussBkgKnownEff(events, background, backErr, efficiency);
UL = tr.GetUpperLimit();
cout << "GaussBkgKnownEff: Observed = " << events << " Background = "
<< background << " +/- " << backErr << " upper limit = " << UL << endl;
}
[/quote]
When I run it, the upper limit using GaussBkgGaussEff does not increase when the uncertainty on the background increases.
Anyone have any suggestions? Thanks,
- Chris