Logo ROOT  
Reference Guide
No Matches
RooFit::TestStatistics::LikelihoodSerial Class Reference

Serial likelihood calculation strategy implementation.

This class serves as a baseline reference implementation of the LikelihoodWrapper. It reimplements the previous RooNLLVar "BulkPartition" single CPU strategy in the new RooFit::TestStatistics framework.

The class is not intended for use by end-users. We recommend to either use RooMinimizer with a RooAbsL derived likelihood object, or to use a higher level entry point like RooAbsPdf::fitTo() or RooAbsPdf::createNLL().

Definition at line 24 of file LikelihoodSerial.h.

Public Member Functions

 LikelihoodSerial (std::shared_ptr< RooAbsL > _likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculation_is_clean, SharedOffset offset)
void evaluate () override
 Triggers (possibly asynchronous) evaluation of the likelihood.
ROOT::Math::KahanSum< doublegetResult () const override
 Return the latest result of a likelihood evaluation.
void initVars ()
 Helper function for the constructor.
- Public Member Functions inherited from RooFit::TestStatistics::LikelihoodWrapper
 LikelihoodWrapper (const LikelihoodWrapper &)=delete
virtual ~LikelihoodWrapper ()=default
void constOptimizeTestStatistic (RooAbsArg::ConstOpCode opcode, bool doAlsoTrackingOpt)
double defaultErrorLevel () const
virtual void enableOffsetting (bool flag)
virtual std::string GetName () const
virtual std::string GetTitle () const
virtual bool isOffsetting () const
LikelihoodWrapperoperator= (const LikelihoodWrapper &)=delete
void setApplyWeightSquared (bool flag)
void setOffsettingMode (OffsettingMode mode)
virtual void synchronizeParameterSettings (const std::vector< ROOT::Fit::ParameterSettings > &parameter_settings)
virtual void synchronizeWithMinimizer (const ROOT::Math::MinimizerOptions &options)
 Synchronize minimizer settings with calculators in child classes.
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 range clipping), but that the specific calculator does need.

Private Attributes

RooArgList _saveVars
 Copy of variables.
RooArgList _vars
ROOT::Math::KahanSum< doubleresult

Additional Inherited Members

- Static Public Member Functions inherited from RooFit::TestStatistics::LikelihoodWrapper
static std::unique_ptr< LikelihoodWrappercreate (LikelihoodMode likelihoodMode, std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculationIsClean, SharedOffset offset)
 Factory method.
- Protected Member Functions inherited from RooFit::TestStatistics::LikelihoodWrapper
 LikelihoodWrapper (std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculation_is_clean, SharedOffset offset)
void calculate_offsets ()
 (Re)calculate (on each worker) all component offsets.
- Protected Attributes inherited from RooFit::TestStatistics::LikelihoodWrapper
std::shared_ptr< WrapperCalculationCleanFlagscalculation_is_clean_
bool do_offset_ = false
std::shared_ptr< RooAbsLlikelihood_
LikelihoodType likelihood_type_
OffsettingMode offsetting_mode_ = OffsettingMode::legacy
SharedOffset shared_offset_

#include </home/sftnight/build/workspace/root-makedoc-master/rootspi/rdoc/src/master/roofit/roofitcore/src/TestStatistics/LikelihoodSerial.h>

Inheritance diagram for RooFit::TestStatistics::LikelihoodSerial:

Constructor & Destructor Documentation

◆ LikelihoodSerial()

RooFit::TestStatistics::LikelihoodSerial::LikelihoodSerial ( std::shared_ptr< RooAbsL _likelihood,
std::shared_ptr< WrapperCalculationCleanFlags calculation_is_clean,
SharedOffset  offset 

Definition at line 31 of file LikelihoodSerial.cxx.

Member Function Documentation

◆ evaluate()

void RooFit::TestStatistics::LikelihoodSerial::evaluate ( )

Triggers (possibly asynchronous) evaluation of the likelihood.

In parallel strategies, it may be advantageous to allow a calling process to continue on with other tasks while the calculation is offloaded to another process or device, like a GPU. For this reason, evaluate() does not return the result, this is done in getResult().

Implements RooFit::TestStatistics::LikelihoodWrapper.

Definition at line 62 of file LikelihoodSerial.cxx.

◆ getResult()

ROOT::Math::KahanSum< double > RooFit::TestStatistics::LikelihoodSerial::getResult ( ) const

Return the latest result of a likelihood evaluation.

Returns the result that was stored after calling evaluate(). It is up to the implementer to make sure the stored value represents the most recent evaluation call, e.g. by using a mutex.

Implements RooFit::TestStatistics::LikelihoodWrapper.

Definition at line 32 of file LikelihoodSerial.h.

◆ initVars()

void RooFit::TestStatistics::LikelihoodSerial::initVars ( )

Helper function for the constructor.

This is a separate function (instead of just in ctor) for historical reasons. Its predecessor RooRealMPFE::initVars() was used from multiple ctors, but also from RooRealMPFE::constOptimizeTestStatistic at the end, which makes sense, because it might change the set of variables. We may at some point want to do this here as well.

Definition at line 46 of file LikelihoodSerial.cxx.

Member Data Documentation

◆ _saveVars

RooArgList RooFit::TestStatistics::LikelihoodSerial::_saveVars

Copy of variables.

Definition at line 38 of file LikelihoodSerial.h.

◆ _vars

RooArgList RooFit::TestStatistics::LikelihoodSerial::_vars


Definition at line 37 of file LikelihoodSerial.h.

◆ result

ROOT::Math::KahanSum<double> RooFit::TestStatistics::LikelihoodSerial::result

Definition at line 35 of file LikelihoodSerial.h.

  • roofit/roofitcore/src/TestStatistics/LikelihoodSerial.h
  • roofit/roofitcore/src/TestStatistics/LikelihoodSerial.cxx