Dear Experts,
This is a complicated question, but any insight would be appreciated. I am interested in setting single bin limits on a POI that has a functional dependence on the number of signal events (eg f(lambda)=nSig). The problem is that I get a discrepancy between setting limits with lambda as the POI and setting limits directly with nSig as the POI. For example:
-
Set limits on number of signal events (
nSig) wherenExp = nSig+nBkg. For one configuration we get for example an upper limit onnSigof <5.40 -
Set limits on
lambdawhere a function oflambdadeterminesnSig:f(lambda) = nSig. In this case,nExp = f(lambda)+nBkg. With the same configuration we get a limit on lambda that corresponds tof(lambda)=nSigof <5.85
It doesn’t seem to be a precision issue since the limits converge on different values when I increase the steps in SetFixedScan(). Indeed I get very different CLs values for the two procedures as shown in this plot:

I put a stand-alone implementation on Git:
The function f(lambda) depends on integrating a number of histograms. The implementation of f(lambda) is in a RooAbsReal class that simply integrates histograms also saved in the repo. There is a simple script that implements it in analysis/example.py: cd analysis; python2 example.py
If anyone has resolved a similar problem, I would be very happy to hear about possible solutions or workarounds.
Best,
Aaron
