17#ifdef R__HAS_ROOFIT_MULTIPROCESS
22namespace TestStatistics {
43 std::shared_ptr<WrapperCalculationCleanFlags> calculation_is_clean,
45 : likelihood_(std::move(likelihood)), minimizer_(minimizer), calculation_is_clean_(std::move(calculation_is_clean))
55 const std::vector<ROOT::Fit::ParameterSettings> ¶meter_settings)
68std::unique_ptr<LikelihoodGradientWrapper>
70 std::shared_ptr<WrapperCalculationCleanFlags> calculationIsClean, std::size_t nDim,
73 switch (likelihoodGradientMode) {
75#ifdef R__HAS_ROOFIT_MULTIPROCESS
76 return std::make_unique<LikelihoodGradientJob>(std::move(likelihood), std::move(calculationIsClean), nDim,
80 (
void) calculationIsClean;
83 throw std::runtime_error(
"MinuitFcnGrad ctor with LikelihoodGradientMode::multiprocess is not available in this "
84 "build without RooFit::Multiprocess!");
89 throw std::logic_error(
"In MinuitFcnGrad constructor: likelihoodGradientMode has an unsupported value!");
typedef void(GLAPIENTRYP _GLUfuncptr)(void)
LikelihoodGradientWrapper(std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculation_is_clean, std::size_t N_dim, RooMinimizer *minimizer)
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...
RooMinimizer * minimizer_
static std::unique_ptr< LikelihoodGradientWrapper > create(LikelihoodGradientMode likelihoodGradientMode, std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculationIsClean, std::size_t nDim, RooMinimizer *minimizer)
Factory method.
virtual void synchronizeParameterSettings(const std::vector< ROOT::Fit::ParameterSettings > ¶meter_settings)
virtual void updateMinuitExternalParameterValues(const std::vector< double > &minuit_external_x)
RooMinimizer is a wrapper class around ROOT::Fit:Fitter that provides a seamless interface between th...
ROOT::Math::IMultiGenFunction * getMultiGenFcn() const
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...