Fit does not converge with RooHypatia

Dear Experts,

I am trying to fit a distribution with using the sum of the PDFs RooHypatia2 and RooJohnson (with a common mean and sigma). It fits my distribution very well (with a 1st order Chebychev for the background) and the pull distribution looks great too. However, I am not able to understand why the fit does not converge. I have tried many times and also tried to fix some parameter but it still does not work.

Will you please suggest what changes should be made to the model to get a properly converged fit? Here is folder with the macro and the root file.root_forum.tar.gz (8.3 KB)


Hi @sanjeeda!

There are some problems with your model:

  1. You define some parameters outside of a range that is supported by the pdfs you use them in, namely the parameters delta_h and sigma_L should be positive. So instead of limiting them by zero from the left, they should be limited by a small number:
    RooRealVar sigma_h("#sigma_{H}", "sigma",  0.002,0.0000001,1);
    RooRealVar delta_J("#delta_{J}", "delta", 12, 0.0000001, 20.);
  2. Your initial parameters for n_sig and n_bkg differ by two orders of magnitude, but in the data there is about 10 times more signal than background if you integrate over the full range. If you take more realistic initial parameters, the fit will converge better. In this case, you should choose initial values for n_sig and n_bkg in the same order of magnitude:
    RooRealVar n_sig("N_{sig}", "n_{s}", 2000000, 0, 1e9);
    RooRealVar n_bkg("N_{bkg}", "n_{b}", 1000000,0,1e9);
  3. Your background model is problematic. Remaining convergence problems are caused by the background model. If you make your plot in log scale (add upPad->SetLogy() to your script), you will see that the background is quite flat and therefore not great to fit with (only) a Chebychev polynomial. I would rather take a flat background as a start, and then see how things can be improved from there.

With all these changes, I ended up with a fit that already looks quite good:

So it seems the flat background was also the appropriate shape, as the large pulls cluster more in the signal than in the background shape. So starting from there, I would rather try to improve the modelling of the peak than the modelling of the background. Maybe you think about these questions:

  • is the assumption that the Ipatia and the Johnson share the \mu and/or \sigma parameter valid?
  • does it make sense to add one more component to the signal model, for example a Gaussian or a crystal ball to model the behavior in the tails?

I hope this post helps you to improve the fit!


hi @jonas ,

Sorry, for the late reply and thank you very much for the detailed explantion.

I was already getting a fit that looked good, what I was trying to get is a converged fit.
However, I have now changed the model and got a converged fit with a (RooJohnson + RooGaussian) as the signal peak and a 3rd order Chebychev as the background.


This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.