13#ifndef ROOT_ROOFIT_TESTSTATISTICS_LikelihoodWrapper
14#define ROOT_ROOFIT_TESTSTATISTICS_LikelihoodWrapper
29namespace TestStatistics {
61 std::shared_ptr<WrapperCalculationCleanFlags> calculation_is_clean);
65 static std::unique_ptr<LikelihoodWrapper>
create(
LikelihoodMode likelihoodMode, std::shared_ptr<RooAbsL> likelihood,
66 std::shared_ptr<WrapperCalculationCleanFlags> calculationIsClean);
92 virtual std::string
GetName()
const;
93 virtual std::string
GetTitle()
const;
The Kahan summation is a compensated summation algorithm, which significantly reduces numerical error...
Virtual base class for implementation of likelihood calculation strategies.
virtual bool isOffsetting() const
virtual void synchronizeParameterSettings(const std::vector< ROOT::Fit::ParameterSettings > ¶meter_settings)
std::shared_ptr< RooAbsL > likelihood_
virtual LikelihoodWrapper * clone() const =0
void constOptimizeTestStatistic(RooAbsArg::ConstOpCode opcode, bool doAlsoTrackingOpt)
virtual std::string GetTitle() const
ROOT::Math::KahanSum< double > applyOffsetting(ROOT::Math::KahanSum< double > current_value)
ROOT::Math::KahanSum< double > offset_save_
!
void setOffsettingMode(OffsettingMode mode)
virtual std::string GetName() const
virtual void enableOffsetting(bool flag)
virtual ~LikelihoodWrapper()=default
ROOT::Math::KahanSum< double > offset_
void swapOffsets()
When calculating an unbinned likelihood with square weights applied, a different offset is necessary.
OffsettingMode offsetting_mode_
double defaultErrorLevel() const
virtual void updateMinuitExternalParameterValues(const std::vector< double > &minuit_external_x)
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 evaluate()=0
Triggers (possibly asynchronous) evaluation of the likelihood.
ROOT::Math::KahanSum< double > offset() const
virtual ROOT::Math::KahanSum< double > getResult() const =0
Return the latest result of a likelihood evaluation.
virtual void synchronizeWithMinimizer(const ROOT::Math::MinimizerOptions &options)
Synchronize minimizer settings with calculators in child classes.
void setApplyWeightSquared(bool flag)
std::shared_ptr< WrapperCalculationCleanFlags > calculation_is_clean_
static std::unique_ptr< LikelihoodWrapper > create(LikelihoodMode likelihoodMode, std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculationIsClean)
Factory method.
RooMinimizer is a wrapper class around ROOT::Fit:Fitter that provides a seamless interface between th...
OffsettingMode
Previously, offsetting was only implemented for RooNLLVar components of a likelihood,...
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...