13#ifndef ROOT_ROOFIT_TESTSTATISTICS_LikelihoodGradientWrapper
14#define ROOT_ROOFIT_TESTSTATISTICS_LikelihoodGradientWrapper
41 std::shared_ptr<WrapperCalculationCleanFlags> calculation_is_clean, std::size_t N_dim,
49 static std::unique_ptr<LikelihoodGradientWrapper>
51 std::shared_ptr<WrapperCalculationCleanFlags> calculationIsClean, std::size_t nDim,
RooMinimizer *minimizer,
virtual bool usesMinuitInternalValues()=0
Implement usesMinuitInternalValues to return true when you want Minuit to send this class Minuit-inte...
virtual bool isCalculating()=0
Reports whether or not the gradient is currently being calculated.
std::shared_ptr< WrapperCalculationCleanFlags > calculation_is_clean_
virtual void synchronizeWithMinimizer(const ROOT::Math::MinimizerOptions &options)
Synchronize minimizer settings with calculators in child classes.
virtual void updateMinuitInternalParameterValues(const std::vector< double > &minuit_internal_x)
Minuit passes in parameter values that may not conform to RooFit internal standards (like applying ra...
virtual void fillGradient(double *grad)=0
std::shared_ptr< RooAbsL > likelihood_
LikelihoodGradientWrapper(const LikelihoodGradientWrapper &)=delete
RooMinimizer * minimizer_
LikelihoodGradientWrapper(std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculation_is_clean, std::size_t N_dim, RooMinimizer *minimizer, SharedOffset offset)
virtual void synchronizeParameterSettings(const std::vector< ROOT::Fit::ParameterSettings > ¶meter_settings)
SharedOffset shared_offset_
LikelihoodGradientWrapper & operator=(const LikelihoodGradientWrapper &)=delete
virtual void synchronizeParameterSettingsImpl(const std::vector< ROOT::Fit::ParameterSettings > ¶meter_settings)=0
virtual ~LikelihoodGradientWrapper()=default
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.
virtual void fillGradientWithPrevResult(double *grad, double *previous_grad, double *previous_g2, double *previous_gstep)=0
virtual void updateMinuitExternalParameterValues(const std::vector< double > &minuit_external_x)
Wrapper class around ROOT::Math::Minimizer that provides a seamless interface between the minimizer f...
Namespace for new RooFit test statistic calculation.
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
For communication with wrappers, an instance of this struct must be shared between them and MinuitFcn...