ROOT::FIT, parameter error propagation

Dear rooters,

I’m still new to the ROOT::FIT classes. In some of the fits, several parameters are kept fix; but they have an associated error.

In order to propagate these errors (associated with the fix parameters) to the “free” parameters, I have to perform several fits changing the values of the fixed parameters (a Montecarlo way of propagating errors).

So, my question is: is there a way using ROOT::FIT to propagate the errors of the fixed parameters?

I spent a while looking for it, but I didn’t find anything. So, in case of a negative answer, is there any more stylish way of propagating the errors? (I can provide a “simplified working code” if needed).

Thank you for your time.



The correct way to include the uncertainty on those parameter is to include an additional term in the likelihood, such as a Gaussian constraint.
This is not foreseen actually in ROOT::Fit, but it is not complicated to do it by extending the negative log-likelihood with a quadratic term in the parameter (the log of a gaussian) and then use the ROOT::Fitter::FitFCN function to perform the fit.
If you need I could make an example for you

Best Regards



I would be grateful if you could make an example of the propagation of systematic errors.

I have simplified an example, if you don’t want to make it from scratch.
propagateSystematicErrors.C (2.2 KB)

Thank you for your time :slight_smile:

Best regards,


Here is an example where the constraint is added for the parameter 1, slope of the exponential

LorenzopropagateSystematicErrors.C (2.4 KB)

1 Like


Thank you for your example code.

The final error is smaller using this way, compared to the “Montecarlo way”.

I will need more time to understand the statistics that is causing this issue (do you have any suggestion?).

Thank you again for your time.

Best regards,