Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooFit::TestStatistics::LikelihoodJob Class Reference

Definition at line 31 of file LikelihoodJob.h.

Classes

struct  task_result_t
 
struct  update_state_t
 

Public Types

enum class  update_state_mode : int { parameters , offsetting }
 

Public Member Functions

 LikelihoodJob (std::shared_ptr< RooAbsL > _likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculation_is_clean, SharedOffset offset)
 
void enableOffsetting (bool flag) override
 
void evaluate () override
 Triggers (possibly asynchronous) evaluation of the likelihood.
 
void evaluate_task (std::size_t task) override
 
ROOT::Math::KahanSum< doublegetResult () const override
 Return the latest result of a likelihood evaluation.
 
void init_vars ()
 
bool receive_task_result_on_master (const zmq::message_t &message) override
 
void send_back_task_result_from_worker (std::size_t task) override
 
void update_state () override
 Virtual function to update any necessary state on workers.
 
void updateWorkersOffsetting ()
 
void updateWorkersParameters ()
 
- Public Member Functions inherited from RooFit::MultiProcess::Job
 Job ()
 
 Job (const Job &other)
 
 ~Job ()
 
void gather_worker_results ()
 Wait for all tasks to be retrieved for the current Job.
 
std::size_t get_state_id ()
 Get the current state identifier.
 
- 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 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 Member Functions

std::size_t getNComponentTasks ()
 
std::size_t getNEventTasks ()
 

Private Attributes

LikelihoodSerial likelihood_serial_
 
std::size_t n_component_tasks_
 
std::size_t n_event_tasks_
 
std::size_t n_tasks_at_workers_ = 0
 
SharedOffset::OffsetVec offsets_previous_
 
ROOT::Math::KahanSum< doubleresult_
 
std::vector< ROOT::Math::KahanSum< double > > results_
 
RooArgList save_vars_
 
RooArgList vars_
 

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::MultiProcess::Job
JobManagerget_manager ()
 Get JobManager instance; create and activate if necessary.
 
- 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::MultiProcess::Job
std::size_t id_
 
std::size_t state_id_ = 0
 
- 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/LikelihoodJob.h>

Inheritance diagram for RooFit::TestStatistics::LikelihoodJob:
[legend]

Member Enumeration Documentation

◆ update_state_mode

Enumerator
parameters 
offsetting 

Definition at line 53 of file LikelihoodJob.h.

Constructor & Destructor Documentation

◆ LikelihoodJob()

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

Definition at line 35 of file LikelihoodJob.cxx.

Member Function Documentation

◆ enableOffsetting()

void RooFit::TestStatistics::LikelihoodJob::enableOffsetting ( bool  flag)
overridevirtual

Reimplemented from RooFit::TestStatistics::LikelihoodWrapper.

Definition at line 341 of file LikelihoodJob.cxx.

◆ evaluate()

void RooFit::TestStatistics::LikelihoodJob::evaluate ( )
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 192 of file LikelihoodJob.cxx.

◆ evaluate_task()

void RooFit::TestStatistics::LikelihoodJob::evaluate_task ( std::size_t  task)
overridevirtual

Implements RooFit::MultiProcess::Job.

Definition at line 270 of file LikelihoodJob.cxx.

◆ getNComponentTasks()

std::size_t RooFit::TestStatistics::LikelihoodJob::getNComponentTasks ( )
private

Definition at line 128 of file LikelihoodJob.cxx.

◆ getNEventTasks()

std::size_t RooFit::TestStatistics::LikelihoodJob::getNEventTasks ( )
private
Warning
In automatic mode, this function can start MultiProcess (forks, starts workers, etc)!

Definition at line 116 of file LikelihoodJob.cxx.

◆ getResult()

ROOT::Math::KahanSum< double > RooFit::TestStatistics::LikelihoodJob::getResult ( ) const
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 39 of file LikelihoodJob.h.

◆ init_vars()

void RooFit::TestStatistics::LikelihoodJob::init_vars ( )

Definition at line 51 of file LikelihoodJob.cxx.

◆ receive_task_result_on_master()

bool RooFit::TestStatistics::LikelihoodJob::receive_task_result_on_master ( const zmq::message_t &  message)
overridevirtual

Implements RooFit::MultiProcess::Job.

Definition at line 256 of file LikelihoodJob.cxx.

◆ send_back_task_result_from_worker()

void RooFit::TestStatistics::LikelihoodJob::send_back_task_result_from_worker ( std::size_t  task)
overridevirtual

Implements RooFit::MultiProcess::Job.

Definition at line 241 of file LikelihoodJob.cxx.

◆ update_state()

void RooFit::TestStatistics::LikelihoodJob::update_state ( )
overridevirtual

Virtual function to update any necessary state on workers.

This function is called from the worker loop when something is received over the ZeroMQ "SUB" socket. The master process sends messages to workers on its "PUB" socket. Thus, we can update, for instance, parameter values on the worker that were updated since the last call on the master side.

Note
Implementers: make sure to also update the state_id_ member.

Reimplemented from RooFit::MultiProcess::Job.

Definition at line 69 of file LikelihoodJob.cxx.

◆ updateWorkersOffsetting()

void RooFit::TestStatistics::LikelihoodJob::updateWorkersOffsetting ( )

Definition at line 187 of file LikelihoodJob.cxx.

◆ updateWorkersParameters()

void RooFit::TestStatistics::LikelihoodJob::updateWorkersParameters ( )

Definition at line 140 of file LikelihoodJob.cxx.

Member Data Documentation

◆ likelihood_serial_

LikelihoodSerial RooFit::TestStatistics::LikelihoodJob::likelihood_serial_
private

Definition at line 84 of file LikelihoodJob.h.

◆ n_component_tasks_

std::size_t RooFit::TestStatistics::LikelihoodJob::n_component_tasks_
private

Definition at line 79 of file LikelihoodJob.h.

◆ n_event_tasks_

std::size_t RooFit::TestStatistics::LikelihoodJob::n_event_tasks_
private

Definition at line 78 of file LikelihoodJob.h.

◆ n_tasks_at_workers_

std::size_t RooFit::TestStatistics::LikelihoodJob::n_tasks_at_workers_ = 0
private

Definition at line 75 of file LikelihoodJob.h.

◆ offsets_previous_

SharedOffset::OffsetVec RooFit::TestStatistics::LikelihoodJob::offsets_previous_
private

Definition at line 83 of file LikelihoodJob.h.

◆ result_

ROOT::Math::KahanSum<double> RooFit::TestStatistics::LikelihoodJob::result_
private

Definition at line 69 of file LikelihoodJob.h.

◆ results_

std::vector<ROOT::Math::KahanSum<double> > RooFit::TestStatistics::LikelihoodJob::results_
private

Definition at line 70 of file LikelihoodJob.h.

◆ save_vars_

RooArgList RooFit::TestStatistics::LikelihoodJob::save_vars_
private

Definition at line 73 of file LikelihoodJob.h.

◆ vars_

RooArgList RooFit::TestStatistics::LikelihoodJob::vars_
private

Definition at line 72 of file LikelihoodJob.h.

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