Gaussian constraints using Roofit

Dear experts,

I have a poisson model in Roofit and I want to associate one of its parameters with more than one gaussian and then multiply them with the model. At first I did that for one gaussian and then I tried with more. What I did exactly was to write the gaussian functions and put them in a RooArgList. The only thing that I changed over those gaussians was the value for sigma (and their names of course). Then I used the RooProdPdf (for the model and the list) and finally I proceeded to the fit to data with constraints.

Normally the error of the parameter associated with the gaussian functions should have been increased at the end but the problem is that the final error after the fit is way smaller than when I had only one gaussian (as if I have lots of measurements for the same parameter for example). What can I do to fix the problem? Should I do something else?

Sorry if this is something trivial but I’m quite new to roofit. Thank you in advance.


Hi Stergios,

hard to say anything without a minimal piece of code reproducing the behaviour you describe.
Did you have a look to the example macro illustrating the usage of constraints on parameters … ts_8C.html ?


Yeah, in this example if I got it right it uses one constraint term every time for parameter f. I tried to use more than one constraints for the same parameter.

I am writting the first constraint as:

// C r e a t e c o n s t r a i n t p d f // ----------------------------------------- // Construct Gaussian constraint p.d.f on parameter f at 0.8 with resolution of 0.1 RooGaussian fconstraint("fconstraint","fconstraint",f,RooConst(0.8),RooConst(0.1)) ;

and the others by changing (increasing) the value of the second RooConst as:

RooGaussian fconst1("fconst1","fconst1", f, RooConst(0.8), RooConst(0.2)) ;

Although every next costraint multiplied to the model has a sigma value greater than 0.1, the final error of the parameter f decreases. Is this normal?? I don’t know if I made myself clear now… If not let me know

Thank you in advance


can you share a reproducer (code runable by others and the input data if any) of your fit?