Negative EDM values?

Hi,
Apologies if this is a very naive question, I’m not particularly experienced with RooFit.

I’m trying to run some limit setting code on blinded data, and am seeing the following behaviour:

Getting limit for nll: nll_CombinedPdf_asimovData_0
Minuit2Minimizer: Minimize with max-calls 12000 convergence for edm < 1 strategy 2
MnSeedGenerator: for initial parameters FCN = 0.964439
MnSeedGenerator: Initial state: - FCN = 0.9644388262245 Edm = -13813.3 NCalls = 107
MnSeedGenerator: Negative G2 found - new state: - FCN = -1906.862295397 Edm = 5396.03 NCalls = 164
MnSeedGenerator: run Hesse - new state: - FCN = -1906.862295397 Edm = 10199.6 NCalls = 537
VariableMetric: start iterating until Edm is < 0.001
VariableMetric: Initial state - FCN = -1906.862295397 Edm = 10199.6 NCalls = 537
VariableMetric: Iteration # 0 - FCN = -1906.862295397 Edm = 10199.6 NCalls = 537
VariableMetric: Iteration # 1 - FCN = -2907.593495041 Edm = 7820.25 NCalls = 591
VariableMetric: Iteration # 2 - FCN = -3749.416392392 Edm = 1355.62 NCalls = 643
VariableMetric: Iteration # 3 - FCN = -4167.95404513 Edm = 24.6958 NCalls = 695
VariableMetric: Iteration # 4 - FCN = -4192.383761139 Edm = 0.275901 NCalls = 744
VariableMetric: Iteration # 5 - FCN = -4192.642113973 Edm = 0.0029536 NCalls = 794
VariableMetric: Iteration # 6 - FCN = -4192.644861449 Edm = 0.000146763 NCalls = 844
VariableMetric: After Hessian - FCN = -4192.644861449 Edm = 0.00018698 NCalls = 1243
VariableMetric: Iteration # 7 - FCN = -4192.644861449 Edm = 0.00018698 NCalls = 1243
Minuit2Minimizer : Valid minimum - status = 0
FVAL = -4192.64486144903913
Edm = 0.000186980140839105544
Nfcn = 1243

mu_guess = -nan
sigma_guess = -nan
ERROR::POI gave nan. Please intervene.

I’m assuming the problem is coming from the line I’ve highlighted in bold. I’m not sure negative edm values make sense - but I don’t really know why they’re appearing.

Does anyone have any advice (or is more information needed)? Are negative edm values ok and the problem likely elsewhere? What typically causes them?

@moneta probably knows who can help you

Hello @afray,

I don’t think that this is the problem. As you can see, this only happens during the initial state (when you are far from the minimum). After the minimisation completes, you have a minimal function value and an EDM that makes sense. Minuit also thinks that the minimum is valid.
It looks like you are using the ATLAS limit setting code, but it’s hard to guess now where the nan shows up.

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