TFractionFitter eliminate one parameter


TFractionFitter returns a fit fraction for each template histogram. I am trying to fit a data histogram to 2 Monte Carlo template histograms. I was wondering if TFractionFitter can be constrained in such a way that only 1 fraction is returned.

Namely, the data histogram is fit to aMC1 + bMC2 and fractions a, b are returned with errors. Can I force a = 1 - b so that the fit is done only over 1 parameter (namely, b)?


It is true TFractionFitter fitter estimates the errors in the two parameter, but in reality does not perform a really extended likelihood fit as it should and under-estimate the errors, as described in

If you want to perform a fit by considering the total number of events known (non-extended fit), then I think just perform a normal fit keeping the two fractions varying, then just fix one of them and re-perform the fit with only one varying. The values should not change, but you get know the right uncertainty.

Best Regards


Hi Lorenzo,

I am trying to do what you are describing by first fitting both fractions and then (attempting to) refit with 1 fraction fixed.

My problem is that I don’t know how to constrain the value of 1 fraction exactly. I can use fit -> Constrain(1, 0.392, 0.393) to give it a window. But this doesn’t have fraction fitter return the right error*. Is there a way to enforce one of the fractions to be a specific value?

*the “right” error is a theoretically calculated lower bound that I’ve confirmed by running TFractionFitter on several data sets and calculating the RMS of the returned fraction value. That RMS is consistent with the theoretical bound.