Fumili and Minuit act here differently, so I decided to write this post.
I can’t get minuit and minuit2 to respect my step size in some cases. I do:
fitter->Config().ParSettings(6).SetLimits(-1e-5, 1e-5);
fitter->Config().ParSettings(6).SetStepSize(1e-6);
and parameter 6 is at the beginning set to 0.
and than, during fitting, I print out my parameter changes. Here is the first change using Fumili:
Change in parameter 6. Old value: 0, new value: -1e-05
and second:
Change in parameter 6. Old value: -1e-05, new value: -2.5e-06
so it’s around my step size. Now Minuit Minimize (same with Minuit2), initial settings seem to be fine:
FCN= unknown FROM FIX STATUS=RESET 0 CALLS 2
TOTAL
EDM= unknown STRATEGY= 1 NO ERROR MATRIX
EXT PARAMETER CURRENT GUESS PHYSICAL LIMITS
NO. NAME VALUE ERROR NEGATIVE POSITIVE
1 x 0.00000e+00 fixed
2 y 4.00000e+02 fixed
3 dx 1.48974e-01 5.00000e-01 -1.10000e+00 1.10000e+00
4 dy -9.42479e-01 1.00000e-01 -1.10000e+00 1.10000e+00
5 z 8.50000e-02 2.55000e-02
6 ast 0.00000e+00 fixed
7 coma 0.00000e+00 1.00000e-06 -1.00000e-05 1.00000e-05
8 spher 0.00000e+00 fixed
9 spher1 0.00000e+00 fixed
PARAMETER DEFINITIONS:
NO. NAME VALUE STEP SIZE LIMITS
10 scale 3.61336e-09 1.08401e-09 no limits
11 bg 9.60510e-02 2.88153e-02 no limits
**********
** 8 **SET ERR 1
**********
**********
** 9 **SET PRINT 2
**********
**********
** 10 **MINIMIZE 2705 1
**********
FIRST CALL TO USER FUNCTION AT NEW START POINT, WITH IFLAG=4.
and then the first parameter change:
Change in parameter 6. Old value: 0, new value: -1.18318044407e-11
and second:
Change in parameter 6. Old value: -1.18318044407e-11, new value: -5.91590222034e-13
why is that so? With such changes, Minuit will never hit my minimum for parameter around -1.5e-6…