Home | News | Documentation | Download

Upper limit for signal strength, ON/OFF problem, multiple independent runs

Dear all,
I am trying to solve the following problem with Roofit/RooStats. I have a counting experiment, made by independent runs. In each run, there is a “beam-ON” time, with measured number of events n_ON^i, and a “beam-OFF” time, with measured numbers of events n_OFF^i. The overall likelihood reads:

where f_i is the luminosity for run i over the total luminosity, and tau is the beam-OFF/beam-ON ratio for the run i. I want to set a limit on S, Bi are the nuisance parameters, and nON_i and nOFF_i the observables.

I tried to implement this model in roofit. The code I am using is attached (the first part is to read the data from a txt file). In particular, the overall PDF is a RooProdPDF of many terms, one per run - each term being a product of two Poisson PDFs.
I noticed that, when using this code, if the number of runs I am considering is more than 15, the code I use to find the upper limit (HipoTestInverter) crashes. Maybe there is a limit on the number of terms I can use in this product?

I attach to this message the 3 files necessary to reproduce the problem: the root macro to create the model, the root macro for Hypothesis inversion, and the file with data.

data.txt (1.2 KB) poissonRuns_HipoInverter.C (6.3 KB) poissonRuns.C (7.0 KB)

Hi @andrea.celentano,

I am inviting @moneta to this topic; I am sure he can help you with this.

Cheers,
J.

Dear @jalopezg,
thanks! Maybe the issue here is the following: I am considering a “single” experiment, made by many runs, i.e. my dataset, view as a table, where each row is one “event” and each column is one observable, at this moment is a single-row, multi-column dataset (the number of columns is 2*N, where “N” is the number of runs).
Maybe I should change approach, and consider the same problem treating the independent runs as independent rows in the dataset? The full PDF is still product over all terms.

Thanks,
Andrea

Hi @andrea.celentano,

To be honest, I have almost no experience with RooFit and I cannot personally help you with this, but I am sure @moneta can point you in the right direction.

Cheers,
J.

Hi @jalopezg,
thanks. I hope that @moneta will have the chance to have a look at this!

Thanks!
Andrea

Hi Andrea,

Sorry for my late reply. I have downloaded the code and it seems to run fine. How can I reproduce your problem ?
I am using ROOT master, which ROOT version are you using ?

Cheers

Lorenzo

Hi Lorenzo,
I am using root version 6.18/04 (apologies for not having reported this before). In order to reproduce the issue, you can change the “14” in the data.txt file to “20” or more. This is the number of runs that are considered, i.e. the number of lines in the data.txt file that are read.

Thanks
Andrea

I can now reproduce the crash. I will investigate it…
Cheers

Lorenzo

Actually I cannot reproduce the crash with ROOT >= 6.22 and 6.24 on Linux, but I can on MaOS.
I suspect there is an issue on the sorting of a large vector. Which operating system are you using ?

Lorenzo

Hi,
I am using MacOS 11.2.3. I can try repeating this on Linux and confirm the issue is not present there.

Hi,
I have made a PR implenting a workaround avoid the crash, see

Lorenzo