Definition at line 28 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) | |
LikelihoodJob * | clone () const override |
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< double > | getResult () 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 (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 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 Member Functions | |
std::size_t | getNComponentTasks () |
std::size_t | getNEventTasks () |
Private Attributes | |
LikelihoodType | likelihood_type_ |
std::size_t | n_component_tasks_ |
std::size_t | n_event_tasks_ |
std::size_t | n_tasks_at_workers_ = 0 |
ROOT::Math::KahanSum< double > | result_ |
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< LikelihoodWrapper > | create (LikelihoodMode likelihoodMode, std::shared_ptr< RooAbsL > likelihood, std::shared_ptr< WrapperCalculationCleanFlags > calculationIsClean) |
Factory method. | |
Protected Member Functions inherited from RooFit::MultiProcess::Job | |
JobManager * | get_manager () |
Get JobManager instance; create and activate if necessary. | |
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::MultiProcess::Job | |
std::size_t | id_ |
std::size_t | state_id_ = 0 |
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 |
|
strong |
Enumerator | |
---|---|
parameters | |
offsetting |
Definition at line 51 of file LikelihoodJob.h.
RooFit::TestStatistics::LikelihoodJob::LikelihoodJob | ( | std::shared_ptr< RooAbsL > | _likelihood, |
std::shared_ptr< WrapperCalculationCleanFlags > | calculation_is_clean | ||
) |
Definition at line 31 of file LikelihoodJob.cxx.
|
overridevirtual |
Implements RooFit::TestStatistics::LikelihoodWrapper.
Definition at line 56 of file LikelihoodJob.cxx.
|
overridevirtual |
Reimplemented from RooFit::TestStatistics::LikelihoodWrapper.
Definition at line 277 of file LikelihoodJob.cxx.
|
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 181 of file LikelihoodJob.cxx.
|
overridevirtual |
Implements RooFit::MultiProcess::Job.
Definition at line 228 of file LikelihoodJob.cxx.
|
private |
Definition at line 126 of file LikelihoodJob.cxx.
|
private |
Definition at line 113 of file LikelihoodJob.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 37 of file LikelihoodJob.h.
void RooFit::TestStatistics::LikelihoodJob::init_vars | ( | ) |
Definition at line 66 of file LikelihoodJob.cxx.
|
overridevirtual |
Implements RooFit::MultiProcess::Job.
Definition at line 217 of file LikelihoodJob.cxx.
|
overridevirtual |
Implements RooFit::MultiProcess::Job.
Definition at line 209 of file LikelihoodJob.cxx.
|
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.
Reimplemented from RooFit::MultiProcess::Job.
Definition at line 84 of file LikelihoodJob.cxx.
void RooFit::TestStatistics::LikelihoodJob::updateWorkersOffsetting | ( | ) |
Definition at line 176 of file LikelihoodJob.cxx.
void RooFit::TestStatistics::LikelihoodJob::updateWorkersParameters | ( | ) |
Definition at line 138 of file LikelihoodJob.cxx.
|
private |
Definition at line 72 of file LikelihoodJob.h.
|
private |
Definition at line 77 of file LikelihoodJob.h.
|
private |
Definition at line 76 of file LikelihoodJob.h.
|
private |
Definition at line 73 of file LikelihoodJob.h.
|
private |
Definition at line 66 of file LikelihoodJob.h.
|
private |
Definition at line 67 of file LikelihoodJob.h.
|
private |
Definition at line 70 of file LikelihoodJob.h.
|
private |
Definition at line 69 of file LikelihoodJob.h.