Problem with ML fit


I’m trying to use a ML extended method to fit some data. I use a Crystal Ball for the signal and a Berstein polynomial for the background (order 4) The signal is ok well but i don’t understand why the background is flat.

I use root 5.26

Any ideas ?



CheckJPsi.C (3.35 KB)
PDC09.root (560 KB)

Hi Bruno,

It seems you run into some fit stability issues, for which I see two causes:

  1. You use a Bernstein polynomial with forced positive coefficients. While
    the ensures a positive defined pdf it does sometimes have some issues
    with the final fitted shapes ends up having several coefficients consistent
    with zero, which are then all at the allowed parameter boundary. If I e.g. switch
    your background pdf to a Chebychev I see less problems. In your case
    something like a RooExponential might also work well with your background shape,
    and have none these issues typical to polynomials

  2. If you perform a fit with a Range() command, the yields nsig and nbkg
    remain expressed in the full range. In your model this stongly increases
    the correlation between various parameters. An alternate way to do the

x.setRange(2.5,4.0) ;
RooFitResult *fr = model.fitTo(*data,Save()) ;

would also intepret nsig and nbkg in the stated range and results in a more
stabilized fit.

I have attached a version of macro with some changes that I made.

CheckJPsi.C (3.16 KB)

It works, thanks

For the background, the shape changes. In this case it’s an exponential background but at higher value, it’s almost flat so i need to use polynomials.