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.
Definition at line 26 of file LikelihoodSerial.h.
Public Member Functions | |
LikelihoodSerial (std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculation_is_clean) | |
LikelihoodSerial * | clone () const override |
void | evaluate () override |
Triggers (possibly asynchronous) evaluation of the likelihood. | |
ROOT::Math::KahanSum< double > | getResult () const override |
Return the latest result of a likelihood evaluation. | |
void | initVars () |
Helper function for the constuctor. | |
Public Member Functions inherited from RooFit::TestStatistics::LikelihoodWrapper | |
LikelihoodWrapper (std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculation_is_clean) | |
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 |
ROOT::Math::KahanSum< double > | offset () const |
void | setApplyWeightSquared (bool flag) |
void | setOffsettingMode (OffsettingMode mode) |
virtual void | synchronizeParameterSettings (const std::vector< ROOT::Fit::ParameterSettings > ¶meter_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 |
Variables. | |
LikelihoodType | likelihood_type |
ROOT::Math::KahanSum< double > | result |
Additional Inherited Members | |
Static Public Member Functions inherited from RooFit::TestStatistics::LikelihoodWrapper | |
static std::unique_ptr< LikelihoodWrapper > | create (LikelihoodMode likelihoodMode, std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculationIsClean) |
Factory method. | |
Protected Member Functions inherited from RooFit::TestStatistics::LikelihoodWrapper | |
ROOT::Math::KahanSum< double > | applyOffsetting (ROOT::Math::KahanSum< double > current_value) |
void | swapOffsets () |
When calculating an unbinned likelihood with square weights applied, a different offset is necessary. | |
Protected Attributes inherited from RooFit::TestStatistics::LikelihoodWrapper | |
std::shared_ptr< WrapperCalculationCleanFlags > | calculation_is_clean_ |
bool | do_offset_ = false |
std::shared_ptr< RooAbsL > | likelihood_ |
ROOT::Math::KahanSum< double > | offset_ |
ROOT::Math::KahanSum< double > | offset_save_ {0.} |
! | |
OffsettingMode | offsetting_mode_ = OffsettingMode::legacy |
RooFit::TestStatistics::LikelihoodSerial::LikelihoodSerial | ( | std::shared_ptr< RooAbsL > | likelihood, |
std::shared_ptr< WrapperCalculationCleanFlags > | calculation_is_clean | ||
) |
Definition at line 35 of file LikelihoodSerial.cxx.
|
inlineoverridevirtual |
Implements RooFit::TestStatistics::LikelihoodWrapper.
Definition at line 30 of file LikelihoodSerial.h.
|
overridevirtual |
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 79 of file LikelihoodSerial.cxx.
|
inlineoverridevirtual |
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 35 of file LikelihoodSerial.h.
void RooFit::TestStatistics::LikelihoodSerial::initVars | ( | ) |
Helper function for the constuctor.
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 63 of file LikelihoodSerial.cxx.
|
private |
Copy of variables.
Definition at line 41 of file LikelihoodSerial.h.
|
private |
Variables.
Definition at line 40 of file LikelihoodSerial.h.
|
private |
Definition at line 43 of file LikelihoodSerial.h.
|
private |
Definition at line 38 of file LikelihoodSerial.h.