How to get a "SUCCESSFUL" fit in MINOS?

Dear All

I am fitting a line shape using TMinuit, MINOS, however, the results are always “STATUS=PROBLEMS” or “STATUS=FAILURE”.

I do not know how to optimize it.

Here is my options in code:

    TMinuit *ptMinuit = new TMinuit(iNum);
    ptMinuit->SetPrintLevel();
    ptMinuit->SetFCN(calc_chi_square);
    ptMinuit->SetMaxIterations(1000);
    Double_t arglist[10];
    Int_t ierflg = 0;
    arglist[0] = 1;
    ptMinuit->mnexcm("SET ERR", arglist ,1,ierflg);
    arglist[0] = 2;
    ptMinuit->mnexcm("SET STR", arglist ,1,ierflg);
        for(int i=0; i<ipar; i++){
        parmintem[i]=vstart[i];
        ptMinuit->mnparm(i, pars_name[i], vstart[i],  step[i], vstart_low[i], vstart_high[i], ierflg);
        }
        arglist[0] = 5000;
        arglist[1] = 1.6;
        ptMinuit->mnexcm("SIMPLEX", arglist ,ipar,ierflg);
        ptMinuit->mnexcm("MIGRAD", arglist ,ipar,ierflg);
        ptMinuit->mnexcm("MIGRAD", arglist ,ipar,ierflg);
        ptMinuit->mnexcm("MINOS", arglist ,ipar,ierflg);

And here is the details:

FCN=16.0683 FROM MINOS     STATUS=NEW MINIMU    227 CALLS    30345902 TOTAL
                     EDM= unknown      STRATEGY= 2      NO ERROR MATRIX
  EXT PARAMETER                  PARABOLIC         MINOS ERRORS
  NO.   NAME      VALUE            ERROR      NEGATIVE      POSITIVE
   1  a0          -2.70737e+00   4.41469e-01
   2  a1           9.50336e-01   4.67776e-01
   3  a2          -5.99460e+00   3.77415e+00
   4  a3           8.19141e-01   1.32770e+00
   5  a4           2.98390e+00   3.56443e+00
   6  a5          -5.06823e-01   8.45144e-01
 NEW MINIMUM FOUND.  GO BACK TO MINIMIZATION STEP.
 =================================================
                                                  V
                                                  V
                                                  V
                                               VVVVVVV
                                                VVVVV
                                                 VVV
                                                  V

 MINUIT WARNING IN HESSE
 ============== Negative diagonal element 3 in Error Matrix
 MINUIT WARNING IN HESSE
 ============== Negative diagonal element 5 in Error Matrix
 MINUIT WARNING IN HESSE
 ============== 11.6231 added to diagonal of error matrix
 EIGENVALUES OF SECOND-DERIVATIVE MATRIX:
        -1.4213e+00 -3.6672e-02  1.7827e-02  1.5054e-01  9.9964e-01  6.2899e+00
 MINUIT WARNING IN HESSE
 ============== MATRIX FORCED POS-DEF BY ADDING 1.427548 TO DIAGONAL.
 EIGENVALUES OF SECOND-DERIVATIVE MATRIX:
        -5.2637e-03  1.7040e-05  1.9500e-02  6.2492e-01  1.0662e+00  4.2946e+00
 MINUIT WARNING IN MIGRAD
 ============== MATRIX FORCED POS-DEF BY ADDING 0.009558 TO DIAGONAL.
 MIGRAD MINIMIZATION HAS CONVERGED.
 MIGRAD WILL VERIFY CONVERGENCE AND ERROR MATRIX.
 FCN=3.05887 FROM MIGRAD    STATUS=CONVERGED    4843 CALLS    30350745 TOTAL
                     EDM=3.12499e-05    STRATEGY= 2      ERROR MATRIX ACCURATE
  EXT PARAMETER                                   STEP         FIRST
  NO.   NAME      VALUE            ERROR          SIZE      DERIVATIVE
   1  a0          -5.44166e+00   6.20311e+00   2.76801e-05   1.56653e-02
   2  a1           9.99999e-01   3.92643e-07   1.46198e-10  -1.73244e+03
   3  a2          -3.15107e+00   7.98764e-04   1.47401e-06  -1.76736e+01
   4  a3           4.12862e-03   3.68619e-04   2.17488e-08   2.56198e+01
   5  a4           5.14168e-02   4.40022e+00   1.77173e-05  -1.96943e-02
   6  a5          -3.25259e-01   1.14480e-02   8.77797e-07   4.70225e-01
 CALL LIMIT EXCEEDED IN MIGRAD.
 MINUIT WARNING IN HESSE
 ============== Negative diagonal element 2 in Error Matrix
 MINUIT WARNING IN HESSE
 ============== Negative diagonal element 3 in Error Matrix
 MINUIT WARNING IN HESSE
 ============== Negative diagonal element 5 in Error Matrix
 MINUIT WARNING IN HESSE
 ============== 9.21912e+09 added to diagonal of error matrix
 EIGENVALUES OF SECOND-DERIVATIVE MATRIX:
        -1.7956e+04  1.0000e+00  1.0000e+00  1.0829e+00  1.7957e+04
 MINUIT WARNING IN HESSE
 ============== MATRIX FORCED POS-DEF BY ADDING 17973.511877 TO DIAGONAL.
 MINUIT WARNING IN MIGRAD
 ============== Negative diagonal element 3 in Error Matrix
 MINUIT WARNING IN MIGRAD
 ============== 1.00002 added to diagonal of error matrix
 MINUIT WARNING IN HESSE
 ============== Negative diagonal element 2 in Error Matrix
 MINUIT WARNING IN HESSE
 ============== Negative diagonal element 3 in Error Matrix
 MINUIT WARNING IN HESSE
 ============== Negative diagonal element 4 in Error Matrix
 MINUIT WARNING IN HESSE
 ============== 1.59089e+06 added to diagonal of error matrix
 EIGENVALUES OF SECOND-DERIVATIVE MATRIX:
        -2.3125e+03  7.6667e-01  9.9065e-01  1.0000e+00  2.3147e+03
 MINUIT WARNING IN HESSE
 ============== MATRIX FORCED POS-DEF BY ADDING 2314.787661 TO DIAGONAL.
 FCN=3.05887 FROM MINOS     STATUS=FAILURE      5711 CALLS    30356456 TOTAL
                     EDM=3.12499e-05    STRATEGY= 2      ERROR MATRIX ACCURATE
  EXT PARAMETER                  PARABOLIC         MINOS ERRORS
  NO.   NAME      VALUE            ERROR      NEGATIVE      POSITIVE
   1  a0          -5.44166e+00   6.20311e+00
   2  a1           9.99999e-01   3.92643e-07
   3  a2          -3.15107e+00   7.98764e-04
   4  a3           4.12862e-03   3.68619e-04
   5  a4           5.14168e-02   4.40022e+00
   6  a5          -3.25259e-01   1.14480e-02

See how to post code in the forum.

Hi,
There is a problem in minimizing the profile likelihood function. It seems its Hessian is not positive defined.
I see also that the minimisation did not converge correctly and you have a call limit exceeded.
First thing I would increase the maximum number of calls. Then I will look carefully at the log to see if you have found the right minimum and then run Minos.

If you need further help, please post your running code

Lorenzo