From bfade6f4b8c0bbe145d99fe5f1f6d373c7b51966 Mon Sep 17 00:00:00 2001 From: "Ryan M. L. McFadden" Date: Thu, 9 Jan 2025 11:38:33 -0800 Subject: [PATCH] Explicit passing of MnStrategy during minimizer initialization This patch fixes compilation errors that arise with recent ROOT versions (e.g., 6.34.02), which require a ROOT::Minuit2::MnStrategy object to be passed when initializing the ROOT::Minuit2::MnX (X = Migrad, Simplex, Minimize) minimizers (i.e., instead of the integer representing the "strategy"). --- src/classes/PFitter.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/classes/PFitter.cpp b/src/classes/PFitter.cpp index 20ff53dc..a2e50ec0 100644 --- a/src/classes/PFitter.cpp +++ b/src/classes/PFitter.cpp @@ -59,6 +59,7 @@ #include "Minuit2/MnPrint.h" #include "Minuit2/MnScan.h" #include "Minuit2/MnSimplex.h" +#include "Minuit2/MnStrategy.h" #include "Minuit2/MnUserParameterState.h" #include "Minuit2/MinosError.h" @@ -1867,7 +1868,7 @@ Bool_t PFitter::ExecuteMigrad() fcn = fFitterFcnDKS.get(); else fcn = fFitterFcn.get(); - ROOT::Minuit2::MnMigrad migrad((*fcn), fMnUserParams, fStrategy); + ROOT::Minuit2::MnMigrad migrad((*fcn), fMnUserParams, ROOT::Minuit2::MnStrategy{fStrategy}); // minimize // maxfcn is MINUIT2 Default maxfcn @@ -1952,7 +1953,7 @@ Bool_t PFitter::ExecuteMinimize() fcn = fFitterFcnDKS.get(); else fcn = fFitterFcn.get(); - ROOT::Minuit2::MnMinimize minimize((*fcn), fMnUserParams, fStrategy); + ROOT::Minuit2::MnMinimize minimize((*fcn), fMnUserParams, ROOT::Minuit2::MnStrategy{fStrategy}); // minimize // maxfcn is MINUIT2 Default maxfcn @@ -2827,7 +2828,7 @@ Bool_t PFitter::ExecuteSimplex() fcn = fFitterFcnDKS.get(); else fcn = fFitterFcn.get(); - ROOT::Minuit2::MnSimplex simplex((*fcn), fMnUserParams, fStrategy); + ROOT::Minuit2::MnSimplex simplex((*fcn), fMnUserParams, ROOT::Minuit2::MnStrategy{fStrategy}); // minimize // maxfcn is 10*MINUIT2 Default maxfcn