17#ifndef ROO_MINIMIZER_FCN
18#define ROO_MINIMIZER_FCN
41 std::string getFunctionName()
const override;
42 std::string getFunctionTitle()
const override;
44 void setOffsetting(
bool flag)
override;
46 double operator()(
const double *
x)
const;
47 void evaluateGradient(
const double *
x,
double *out)
const;
48 bool evaluateHessian(std::span<const double>
x,
double *out)
const;
50 RooArgSet freezeDisconnectedParameters()
const override;
52 bool secondDerivativeAlwaysVanishes(
unsigned int i,
unsigned int j)
const;
55 void buildSecondDerivMask()
const;
58 std::unique_ptr<ROOT::Math::IBaseFunctionMultiDim> _multiGenFcn;
59 mutable std::vector<double> _gradientOutput;
60 mutable std::vector<double> _hessianOutput;
61 mutable std::vector<bool> _secondDerivMask;
62 mutable std::once_flag _secondDerivMaskOnce;
Abstract Minimizer class, defining the interface for the various minimizer (like Minuit2,...
Abstract base class for objects that represent a real value and implements functionality common to al...
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Wrapper class around ROOT::Math::Minimizer that provides a seamless interface between the minimizer f...