26namespace TestStatistics {
 
   34   double operator()(std::vector<double> 
const &
v)
 const override { 
return _fcn(
v.data()); }
 
   35   double Up()
 const override { 
return _up; }
 
   36   void SetErrorDef(
double val)
 override { 
_up = val; }
 
   37   bool HasGradient()
 const override { 
return true; }
 
   38   std::vector<double> 
Gradient(std::vector<double> 
const ¶ms)
 const override 
   40      std::vector<double> grad(
_fcn.getNDim());
 
   41      _fcn.Gradient(params.data(), grad.data());
 
   47      std::vector<double> 
output(
v.size());
 
   89                             std::vector<ROOT::Fit::ParameterSettings> ¶meters, 
LikelihoodMode likelihoodMode,
 
   93   synchronizeParameterSettings(parameters, 
true);
 
  113   _gradient->synchronizeParameterSettingsImpl(parameters);
 
 
  153      std::cout << 
"\nprevFCN" << (
likelihoodHere.isOffsetting() ? 
"-offset" : 
"") << 
" = " << std::setprecision(10)
 
  154                << 
fvalue << std::setprecision(4) << 
"  ";
 
 
  204         throw std::logic_error(
"Updating Minuit-internal parameters only makes sense for (gradient) calculators that " 
  205                                "are defined in Minuit-internal parameter space.");
 
  208      for (std::size_t ix = 0; ix < 
getNDim(); ++ix) {
 
  224      for (std::size_t ix = 0; ix < 
getNDim(); ++ix) {
 
 
  272   _gradient->synchronizeParameterSettings(parameters);
 
  275   _gradient->synchronizeWithMinimizer(
_context->fitter()->Config().MinimizerOptions());
 
 
  282   minuit.SetFCN(
getNDim(), std::make_unique<MinuitGradFunctor>(*
this, 
minim.ErrorDef()));
 
 
MinuitFcnGrad const  & _fcn
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
TRObject operator()(const T1 &t1) const
 
Abstract Minimizer class, defining the interface for the various minimizer (like Minuit2,...
 
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
 
Minuit2Minimizer class implementing the ROOT::Math::Minimizer interface for Minuit2 minimization algo...
 
static std::unique_ptr< LikelihoodGradientWrapper > create(LikelihoodGradientMode likelihoodGradientMode, std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculationIsClean, std::size_t nDim, RooMinimizer *minimizer, SharedOffset offset)
Factory method.
 
static std::unique_ptr< LikelihoodWrapper > create(LikelihoodMode likelihoodMode, std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculationIsClean, SharedOffset offset)
Factory method.
 
void GradientWithPrevResult(const double *x, double *grad, double *previous_grad, double *previous_g2, double *previous_gstep) const
 
double operator()(const double *x) const
 
bool Synchronize(std::vector< ROOT::Fit::ParameterSettings > ¶meter_settings) override
Overridden from RooAbsMinimizerFcn to include gradient strategy synchronization.
 
void Gradient(const double *x, double *grad) const
IMultiGradFunction overrides necessary for Minuit.
 
std::vector< double > _minuitInternalX
 
std::shared_ptr< LikelihoodWrapper > _likelihood
 
bool syncParameterValuesFromMinuitCalls(const double *x, bool minuit_internal) const
Minuit calls (via FcnAdapters etc) DoEval or Gradient with a set of parameters x.
 
bool _minuitInternalRooFitXMismatch
 
std::unique_ptr< LikelihoodGradientWrapper > _gradient
 
void syncOffsets() const
Make sure the offsets are up to date.
 
std::shared_ptr< WrapperCalculationCleanFlags > _calculationIsClean
 
bool _calculatingGradient
 
std::vector< double > _minuitExternalX
 
std::shared_ptr< LikelihoodWrapper > _likelihoodInGradient
 
void initMinimizer(ROOT::Math::Minimizer &) override
 
void applyToLikelihood(Func &&func) const
 
MinuitFcnGrad(const std::shared_ptr< RooFit::TestStatistics::RooAbsL > &absL, RooMinimizer *context, std::vector< ROOT::Fit::ParameterSettings > ¶meters, LikelihoodMode likelihoodMode, LikelihoodGradientMode likelihoodGradientMode)
 
bool returnsInMinuit2ParameterSpace() const
 
Wrapper class around ROOT::Math::Minimizer that provides a seamless interface between the minimizer f...
 
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
 
T * Gradient(Long64_t n, T *f, double h=1)
Calculate the one-dimensional gradient of an array with length n.