Skip to content

treat matrix forced positive as warning

Stefano Camarda requested to merge posdef-warning into master

Covariance matrix not positive definite or not accurate from MINUIT is treated as a (Serious) Error S:, resulting in a call to HF_STOP. In some cases part of the job output is lost due to this error.

While it is true that the user should be warned that the error estimate is not reliable in this case, from the point of view of developers and advanced users, useful information for debugging purpose is lost.

To address this issue, I have added a new level E:, intermediate between W: (warning) and S: (serious error), and classified MINUIT covariance matrix errors as E:. In addition the value of MAX_ERR_ALLOWED, which is used in error_logging.f to decide whether to call HF_STOP when an error occurs, is now read from parameters.yaml. The default value of MAX_ERR_ALLOWED is set to 2 as default in all examples, which means errors of the type E: S: F: will cause program terminations, while I: and W: will not.

Edited by Stefano Camarda

Merge request reports