What is the recommended way to ensure that a fit was successful? That is, I want to ensure it converged and its error matrix is positive-definite. Details below.
RooFitResult::status returns the MINUIT status code, but there is a bug that means I am getting status=0 even if the covariance matrix was forced positive-definite. (See below)
RooFitResult::covQual seems like a possible workaround, but I cannot find documentation for the codes (apparently a common problem).
I can extract the error matrix using
correlationMatrix, but I haven’t found a built-in method to determine whether it’s positive definite, much less whether it was forced positive definite.
Regarding the above bug in
RooFitResult::status, I have fit results where
RooFit::Print says that the covariance matrix was forced positive-definite. An old forum answer says that this should not happen, that the status should be 1 in this case, so this seems to be a bug. That said, the codes are not well documented, so perhaps I’ve missed something.