Meaning of getPropagatedError()'s nset argument

Dear experts,

I’m using a RooFormulaVar to compute a ratio (actually 1 - N_a/N_b) of two parameters N_a and N_b. These parameters are estimated from a fit, so I’m using the getPropagatedError method to compute the error of the RooFormulaVar. My issue is that the getPropagatedError method allows an nset argument and I can’t understand what’s its purpose. Do I need to pass the fit variables in this argument?

Thanks in advance


@moneta and @jonas are the right people to answer :slight_smile:

Hi @lmeyerga, thanks for the question!

In RooFit, pdfs are not normalized until you tell then which set of variables they should be normalized over (see “Normalization/Integration” in the RooAbsPdf documentation). This is the so called “normalization set”, often referred to as “normSet” or “nset” in the code.

Usually, you want to normalize over the observables in you dataset, so you’d have to call it like getPropagatedError(fitResult, *data.get()).

But that is only relevant in care there are some RooAbsPdf involved in the computation of the variable you want get the propagated error for. If you really just compute 1 - N_a/N_b, where N_a and N_b are RooRealVars, the normalization set doesn’t matter.

Hope this helps!

Hi @etejedor, @jonas

Thank’s, that solves my doubt.

