More asymptotic formulae

Hi there ROOTers,

The RooStats::AsimovSignificance, RooStats::PValueToSignificance and RooStats::SignificanceToPValue helper functions are lifesavers as they provide accurate estimates and reduce mistakes (factors of two, etc).

I was looking around and was wondering if there are also helper functions that encapsulate other RPP formulae, e.g. the frequentist confidence intervals, described in the RPP 40.4.2, in particular Eqs. 40.77a, 40.77b, 40.78a, and 40.78b.

These are not hard to do and can be contributed if there are no objections and some naming guidance.



Dear @adavid ,

Thank you so much for your feedback, and for proposing to help! I will ask @jonas and @moneta to give you some guidance on this matter.


Hi Andre,

Apologies for my late reply. The functions you proposing for computing the frequentist confidence intervals for the Poisson and the Binomial are available in ROOT.

  • For the binomial, you can use the static function TEfficiency::ClopperPearson

  • For the Poisson there are the methods in TH1, TH1::GetBinErrorLow(bin) and TH1::GetBinErrorUp(bin). If you want a free (static) function, you can use ROOT::Math::gamma_quantile and ROOT::Math::gamma_quantile_c as done in the implementation of these TH1 functions. Maybe we could add in this case a more convenient function for the user to compute the Poisson interval

Best Regards


Ciao Lorenzo,

Thanks. It was clear that it was all already somewhere in the code base.

Would it make sense to have a namespace of convenience functions allowing anyone perusing the RPP to intuitively reproduce the results in there?

A low entry bar alternative could be an example file that goes through what the RPP provides.

If the latter is preferred, let me know how to contribute it.

Hi Andre,

I think we can provide these convenience functions.

I have not sure what you mean here, a tutorial macro ?


Yes, something like

Numerical methods and functions from the PDG RPP Statistics Review

// Figure 40.1
// ROOT code to compute p(chi2, ndof)
// Possibly code to reproduce the figure.

// Table 40.1
// ROOT code to compute alpha(delta) ans vice-versa 

// Equation 40.72
// ROOT code to compute alpha(chi2, ndof)

// ... 

// Equation 40.84
// RooStats::AsimovSignificance example

but with actual code :slight_smile:.

Makes sense?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.

Thank you Andre for reminding us of this! I remember you have already opened a GitHub issue about this:

Since this is a feature request and not a support question, it’s better to follow up on GitHub. Sorry for getting back to you about this so late, it was not really on my radar. I will look into this matter and then reply to the GitHub thread.