Unbinned Maximum Likelyhood fit to a 2D plot

Hello Roofit community,

I want to fit a Dalitz plot (X, Y) with (1 + aY + bY^2 + cX + dX^2) function with RooAbsPdf using the unbinned maximum likelihood method. I generated a Dalitz plot with a=−0.047, b =−0.069, c=0.019 and d −0.073 (also checked) and I expect the same results back, but the fit results, parameters correlation and error matrix are zero. Please look at the ‘Unbinned_DPFit.C’ macro attached.

To run the program:
root [ ] .L myPdf.cxx+
root [ ] .L Unbinned_DPFit.C+
and execute
root [ ] Unbinned_DPFit()

Kindly help me with your valuable suggestions.

Thanks in advance,

Complete files along with the root file are available at:


You should set good initial parameter values. If for the initial parameter values your pdf evaluate to zero, you are getting already an infinity value for the negative log-likelihood.
This makes the fit not working


Thanks for the reply.
I set,
RooRealVar a(“a”,“a”,-0.15,0.0);
RooRealVar b(“b”,“b”,-0.15,0.0);
RooRealVar c(“c”,“c”,0.0,0.1);
RooRealVar d(“d”,“d”,-0.15,0.0);
which is very close to what I expect a=−0.047, b =−0.069, c=0.019 and d=−0.073.

I get is:
NO. GLOBAL 1 2 3 4
1 0.00000 1.000 0.000 0.000 0.000
2 0.00000 0.000 1.000 0.000 0.000
3 0.00000 0.000 0.000 1.000 0.000
4 0.00000 0.000 0.000 0.000 1.000

Floating Parameter FinalValue +/- Error

                 a   -1.3811e-01 +/-  5.54e-02
                 b   -7.5000e-02 +/-  6.31e-02
                 c    5.0000e-02 +/-  4.21e-02
                 d   -7.5000e-02 +/-  6.31e-02

So setting the initial parameter values does not help.

I think the problem with the current unbinned maximum likelihood fit is following:

When I try to fit (1 + aY + bY^2 + cX+ dX^2). It only optimizes the parameter ‘a’ and for rest of the parameters ‘b’,‘c’ and ‘d’ it assigns the arithmetical mean between the limits of parameters.

Let’s say I the parameter b is defined as RooRealVar b(“b”,“b”,2,4);
So the output value of the parameter ‘b’ after fitting will be (2+4)/2 = 3.

Is there any way to fix this?

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