-
Notifications
You must be signed in to change notification settings - Fork 1.4k
[Math] Make building old C++ Minuit implementation optional #20032
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Test Results 22 files 22 suites 3d 17h 11m 23s ⏱️ For more details on these failures, see this check. Results for commit 33a1506. ♻️ This comment has been updated with latest results. |
7c5b819
to
bfd811a
Compare
286e166
to
bd3826f
Compare
There seems to be unrelated commits in the PR (roofit value servers) |
They are related. Using Minuit 2 consistently unearthed some problems in RooFit, because Minuit 2 is more verbose with errors. So I use this PR to also see how I can fix these problems. The goal is to create spin-of PRs for the RooFit fixes (many are already in), and then finally come back to this PR and only include the Minuit changes. |
This avoids false positives for the parameters list in conditional fits.
Minuit 2 has been the default for 2 years, and one day we should consider not building ROOT with the old C++ TMinuit implementation anymore. To make it possible to try this out, introduce a new `minuit1` flag that is on by default. Building with `minuit1=OFF` will also help to ensure that we are actually using Minuit 2 in all out tests. With this, it was uncovered that the `stressRooFit` actually didn't use Minuit 2, even thought it's the default minimizer in RooFit as well. Therefore, the default minimizer setting in `stressRooFit`/`stressRooStats` are changed to `Minuit2`, reference files are updated, and new tests with the old Minuit 1 are added to keep previous test coverage.
There is no particular reason anymore to run this test with both Minuit 1 and Minuit 2, and it's a bit awkward that this is the only RooFit test that hardcodes the iteration over different minimizers.
Minuit 2 has been the default for 2 years, and one day we should consider not building ROOT with the old C++ TMinuit implementation anymore.
To make it possible to try this out, introduce a new
minuit1
flag that is on by default.Building with
minuit1=OFF
will also help to ensure that we are actually using Minuit 2 in all out tests. With this, it was uncoveredthat the
stressRooFit
actually didn't use Minuit 2, even thought it's the default minimizer in RooFit as well. Therefore, the default minimizer setting instressRooFit
/stressRooStats
are changed toMinuit2
, reference files are updated, and new tests with the old Minuit 1 are added to keep previous test coverage.