[RooStats] Question about ForcePriorNuisanceAlt

Dear all,

I’m not sure what I should put into the ForcePriorNuisanceAlt and ForcePriorNuisanceNull methods of the HybridCalculator class.
I want to measure the significance of a signal hypothesis over a null hypothesis with the ProfileLikelihoodTestStat and the HybridCalculator.
Here a simplified example of my problem.

I have an extended likelihood that consists of a signal pdf (with fixed shape) plus an exponential background.
So my likelihood is:

L = (N_s * S(m) + N_b * Expo (m| tau) ) * Gau(tau| tau_0, sigma_0)

N_s and N_b are the floating signal and bkg yields.
S(m) is fixed.
The exponential depends on tau wich is constrained with a Gaussian, with constant mean and sigma.
My null hypothesis is N_s = 0.
So, in the end, my p.o.i. is N_s, my noisance parameters are N_b and tau, and tau is a constrained parameter.
Thus, given my problem, what should I put into the ForcePriorNuisanceAlt(Null) methods?

Thank you very much in advance for your help,


In your case, I think you should use as prior pdf for the nuisance parameters the Gaussian in tau. You need to specify the pdf which will be used to generate values of the nuisance parameters which will be used for generating the toy events. By doing this you are basically integrating in your test statistics the nuisance parameters

Best Regards


Ciao Lorenzo,

thank you very much! You are clarifying my doubts.
I still have two questions:

  1. For what I understand from your reply, I have to specify in ForcePriorNuisanceAlt(Null) a yet existing part of my likelihood (the one that contains the constraint). I don’t have to create an other RooGaussian just to be sent into ForcePriorNuisanceAlt(Null).
    Is it correct?

  2. What about N_b? Is it ok it remains without prior? In this way will it be integrated flat in all its range of validity?



  1. Yes, you do not need to create extra terms, you should use what is already in your likelihood

  2. If N_b is declared as nuisance parameters and it has not a prior, I think they will be kept constant and not smeared at all. If you want to have them flat in their range, better specifying a Uniform function in ForceNuisancePdf.