Definition at line 28 of file LikelihoodGradientJob.h.
|
| JobManager * | get_manager () |
| | Get JobManager instance; create and activate if necessary.
|
#include </home/stephan/code/root-2/roofit/roofitcore/src/TestStatistics/LikelihoodGradientJob.h>
◆ GradientCalculatorMode
◆ LikelihoodGradientJob()
◆ calculate_all()
| void RooFit::TestStatistics::LikelihoodGradientJob::calculate_all |
( |
| ) |
|
|
private |
◆ create()
◆ evaluate_task()
| void RooFit::TestStatistics::LikelihoodGradientJob::evaluate_task |
( |
std::size_t | task | ) |
|
|
overrideprivatevirtual |
◆ fillGradient()
| void RooFit::TestStatistics::LikelihoodGradientJob::fillGradient |
( |
double * | grad | ) |
|
|
overridevirtual |
◆ fillGradientWithPrevResult()
| void RooFit::TestStatistics::LikelihoodGradientJob::fillGradientWithPrevResult |
( |
double * | grad, |
|
|
double * | previous_grad, |
|
|
double * | previous_g2, |
|
|
double * | previous_gstep ) |
|
overridevirtual |
◆ gather_worker_results()
| void RooFit::MultiProcess::Job::gather_worker_results |
( |
| ) |
|
|
inherited |
Wait for all tasks to be retrieved for the current Job.
Definition at line 126 of file Job.cxx.
◆ get_manager()
| JobManager * RooFit::MultiProcess::Job::get_manager |
( |
| ) |
|
|
protectedinherited |
Get JobManager instance; create and activate if necessary.
Child classes should refrain from direct access to the JobManager instance (through JobManager::instance), but rather use the here provided Job::get_manager(). This function starts the worker_loop on the worker when first called, meaning that the workers will not be running before they are needed.
Definition at line 112 of file Job.cxx.
◆ get_state_id()
| std::size_t RooFit::MultiProcess::Job::get_state_id |
( |
| ) |
|
|
inherited |
Get the current state identifier.
Definition at line 141 of file Job.cxx.
◆ isCalculating()
| bool RooFit::TestStatistics::LikelihoodGradientJob::isCalculating |
( |
| ) |
|
|
inlineoverridevirtual |
Reports whether or not the gradient is currently being calculated.
This is used in MinuitFcnGrad to switch between LikelihoodWrapper implementations inside and outside of a LikelihoodGradientJob calculation when the LikelihoodWrapper used is LikelihoodJob. This is to prevent Jobs from being started within Jobs.
Implements RooFit::TestStatistics::LikelihoodGradientWrapper.
Definition at line 41 of file LikelihoodGradientJob.h.
◆ receive_task_result_on_master()
| bool RooFit::TestStatistics::LikelihoodGradientJob::receive_task_result_on_master |
( |
const zmq::message_t & | message | ) |
|
|
overrideprivatevirtual |
◆ run_derivator()
| void RooFit::TestStatistics::LikelihoodGradientJob::run_derivator |
( |
unsigned int | i_component | ) |
const |
|
private |
◆ send_back_task_result_from_worker()
| void RooFit::TestStatistics::LikelihoodGradientJob::send_back_task_result_from_worker |
( |
std::size_t | task | ) |
|
|
overrideprivatevirtual |
◆ setErrorLevel()
| void RooFit::TestStatistics::LikelihoodGradientJob::setErrorLevel |
( |
double | error_level | ) |
const |
|
private |
◆ setGradTolerance()
| void RooFit::TestStatistics::LikelihoodGradientJob::setGradTolerance |
( |
double | grad_tolerance | ) |
const |
|
private |
◆ setNCycles()
| void RooFit::TestStatistics::LikelihoodGradientJob::setNCycles |
( |
unsigned int | ncycles | ) |
const |
|
private |
◆ setStepTolerance()
| void RooFit::TestStatistics::LikelihoodGradientJob::setStepTolerance |
( |
double | step_tolerance | ) |
const |
|
private |
◆ setStrategy()
| void RooFit::TestStatistics::LikelihoodGradientJob::setStrategy |
( |
int | istrat | ) |
|
|
private |
◆ synchronizeParameterSettings()
| void RooFit::TestStatistics::LikelihoodGradientWrapper::synchronizeParameterSettings |
( |
const std::vector< ROOT::Fit::ParameterSettings > & | parameter_settings | ) |
|
|
virtualinherited |
◆ synchronizeParameterSettingsImpl()
| void RooFit::TestStatistics::LikelihoodGradientJob::synchronizeParameterSettingsImpl |
( |
const std::vector< ROOT::Fit::ParameterSettings > & | parameter_settings | ) |
|
|
overrideprivatevirtual |
◆ synchronizeWithMinimizer()
◆ update_state()
| void RooFit::TestStatistics::LikelihoodGradientJob::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 143 of file LikelihoodGradientJob.cxx.
◆ update_workers_state()
| void RooFit::TestStatistics::LikelihoodGradientJob::update_workers_state |
( |
| ) |
|
|
private |
◆ update_workers_state_isCalculating()
| void RooFit::TestStatistics::LikelihoodGradientJob::update_workers_state_isCalculating |
( |
| ) |
|
|
private |
◆ updateMinuitExternalParameterValues()
| void RooFit::TestStatistics::LikelihoodGradientWrapper::updateMinuitExternalParameterValues |
( |
const std::vector< double > & | minuit_external_x | ) |
|
|
virtualinherited |
◆ updateMinuitInternalParameterValues()
| void RooFit::TestStatistics::LikelihoodGradientJob::updateMinuitInternalParameterValues |
( |
const std::vector< double > & | minuit_internal_x | ) |
|
|
overrideprivatevirtual |
◆ usesMinuitInternalValues()
| bool RooFit::TestStatistics::LikelihoodGradientJob::usesMinuitInternalValues |
( |
| ) |
|
|
overrideprivatevirtual |
Implement usesMinuitInternalValues to return true when you want Minuit to send this class Minuit-internal values, or return false when you want "regular" Minuit-external values.
Minuit internally uses a transformed parameter space to graciously handle externally mandated parameter range boundaries. Transformation from Minuit-internal to external (i.e. "regular") parameters is done using trigonometric functions that in some cases can cause a few bits of precision loss with respect to the original parameter values. To circumvent this, Minuit also allows external gradient providers (like LikelihoodGradientWrapper) to take the Minuit-internal parameter values directly, without transformation. This way, the gradient provider (e.g. the implementation of this class) can handle transformation manually, possibly with higher precision.
Implements RooFit::TestStatistics::LikelihoodGradientWrapper.
Definition at line 276 of file LikelihoodGradientJob.cxx.
◆ _manager
| JobManager* RooFit::MultiProcess::Job::_manager = nullptr |
|
privateinherited |
Definition at line 50 of file Job.h.
◆ calculation_is_clean_
◆ grad_
◆ gradf_
◆ id_
| std::size_t RooFit::MultiProcess::Job::id_ |
|
protectedinherited |
Definition at line 45 of file Job.h.
◆ isCalculating_
| bool RooFit::TestStatistics::LikelihoodGradientJob::isCalculating_ = false |
|
mutableprivate |
◆ likelihood_
| std::shared_ptr<RooAbsL> RooFit::TestStatistics::LikelihoodGradientWrapper::likelihood_ |
|
protectedinherited |
◆ minimizer_
| RooMinimizer* RooFit::TestStatistics::LikelihoodGradientWrapper::minimizer_ |
|
protectedinherited |
◆ minuit_internal_x_
| std::vector<double> RooFit::TestStatistics::LikelihoodGradientJob::minuit_internal_x_ |
|
private |
◆ N_tasks_
| std::size_t RooFit::TestStatistics::LikelihoodGradientJob::N_tasks_ = 0 |
|
private |
◆ N_tasks_at_workers_
| std::size_t RooFit::TestStatistics::LikelihoodGradientJob::N_tasks_at_workers_ = 0 |
|
private |
◆ offsets_previous_
◆ shared_offset_
| SharedOffset RooFit::TestStatistics::LikelihoodGradientWrapper::shared_offset_ |
|
protectedinherited |
◆ state_id_
| std::size_t RooFit::MultiProcess::Job::state_id_ = 0 |
|
protectedinherited |
Definition at line 46 of file Job.h.
The documentation for this class was generated from the following files: