10 #ifndef ROOT_Minuit2_FumiliMinimizer
11 #define ROOT_Minuit2_FumiliMinimizer
23 class MinimumSeedGenerator;
28 class GradientCalculator;
29 class MnUserParameterState;
30 class MnUserParameters;
31 class MnUserCovariance;
50 class FumiliMinimizer :
public ModularFunctionMinimizer {
66 FumiliMinimizer() : fMinSeedGen(MnSeedGenerator()),
67 fMinBuilder(FumiliBuilder()) {}
80 const MinimumSeedGenerator& SeedGenerator()
const {
return fMinSeedGen;}
91 const FumiliBuilder& Builder()
const {
return fMinBuilder;}
92 FumiliBuilder& Builder() {
return fMinBuilder;}
97 FunctionMinimum Minimize(
const FCNBase&,
const MnUserParameterState&,
const MnStrategy&,
unsigned int maxfcn = 0,
double toler = 0.1)
const;
99 virtual FunctionMinimum Minimize(
const FCNGradientBase&,
const MnUserParameterState&,
const MnStrategy&,
unsigned int maxfcn = 0,
double toler = 0.1)
const;
103 virtual FunctionMinimum Minimize(
const FCNBase& fcn,
const std::vector<double>& par,
const std::vector<double>& err,
unsigned int stra = 1,
unsigned int maxfcn = 0,
double toler = 0.1)
const {
104 return ModularFunctionMinimizer::Minimize(fcn, par, err, stra, maxfcn,toler);
107 virtual FunctionMinimum Minimize(
const FCNGradientBase&fcn,
const std::vector<double>&par,
const std::vector<double>&err,
unsigned int stra=1,
unsigned int maxfcn = 0,
double toler = 0.1)
const {
108 return ModularFunctionMinimizer::Minimize(fcn,par,err,stra,maxfcn,toler);
111 virtual FunctionMinimum Minimize(
const FCNBase& fcn,
const std::vector<double>&par,
unsigned int nrow,
const std::vector<double>&cov,
unsigned int stra=1,
unsigned int maxfcn = 0,
double toler = 0.1)
const {
112 return ModularFunctionMinimizer::Minimize(fcn,par,nrow,cov,stra,maxfcn,toler);
115 virtual FunctionMinimum Minimize(
const FCNGradientBase& fcn,
const std::vector<double>&par,
unsigned int nrow,
const std::vector<double>&cov,
unsigned int stra=1,
unsigned int maxfcn = 0,
double toler = 0.1)
const {
116 return ModularFunctionMinimizer::Minimize(fcn,par,nrow,cov,stra,maxfcn,toler);
120 virtual FunctionMinimum Minimize(
const FCNBase& fcn,
const MnUserParameters& par,
const MnStrategy& stra,
unsigned int maxfcn = 0,
double toler = 0.1)
const {
121 return ModularFunctionMinimizer::Minimize(fcn,par,stra,maxfcn,toler);
124 virtual FunctionMinimum Minimize(
const FCNGradientBase& fcn,
const MnUserParameters& par,
const MnStrategy& stra,
unsigned int maxfcn = 0,
double toler = 0.1)
const {
125 return ModularFunctionMinimizer::Minimize(fcn,par,stra,maxfcn,toler);
128 virtual FunctionMinimum Minimize(
const FCNBase& fcn,
const MnUserParameters& par,
const MnUserCovariance& cov,
const MnStrategy& stra,
unsigned int maxfcn = 0,
double toler = 0.1)
const {
129 return ModularFunctionMinimizer::Minimize(fcn,par,cov,stra,maxfcn,toler);
132 virtual FunctionMinimum Minimize(
const FCNGradientBase& fcn,
const MnUserParameters& par,
const MnUserCovariance& cov,
const MnStrategy& stra,
unsigned int maxfcn = 0,
double toler = 0.1)
const {
133 return ModularFunctionMinimizer::Minimize(fcn,par,cov,stra,maxfcn,toler);
138 virtual FunctionMinimum Minimize(
const MnFcn& mfcn,
const GradientCalculator& gc,
const MinimumSeed& seed,
const MnStrategy& stra,
unsigned int maxfcn,
double toler)
const {
139 return ModularFunctionMinimizer::Minimize(mfcn, gc, seed, stra, maxfcn, toler);
145 MnSeedGenerator fMinSeedGen;
146 FumiliBuilder fMinBuilder;
154 #endif // ROOT_Minuit2_FumiliMinimizer