BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ObjectiveMetricWrapper Class Reference
Inheritance diagram for ObjectiveMetricWrapper:
Collaboration diagram for ObjectiveMetricWrapper:

Public Member Functions

 ObjectiveMetricWrapper (std::unique_ptr< ObjectiveMetric > module)
 
double compute (const std::vector< SimDataPair > &fit_objects, size_t n_pars) const override
 

Private Attributes

std::unique_ptr< ObjectiveMetricm_module
 

Detailed Description

Definition at line 42 of file FitObjective.cpp.

Constructor & Destructor Documentation

◆ ObjectiveMetricWrapper()

ObjectiveMetricWrapper::ObjectiveMetricWrapper ( std::unique_ptr< ObjectiveMetric module)
explicit

Definition at line 351 of file FitObjective.cpp.

352  : IMetricWrapper(), m_module(std::move(module))
353 {
354  if (!m_module)
355  throw std::runtime_error("Error in ObjectiveMetricWrapper: empty objective metric passed");
356 }
std::unique_ptr< ObjectiveMetric > m_module

References m_module.

Member Function Documentation

◆ compute()

double ObjectiveMetricWrapper::compute ( const std::vector< SimDataPair > &  fit_objects,
size_t  n_pars 
) const
overridevirtual

Implements IMetricWrapper.

Definition at line 358 of file FitObjective.cpp.

359 {
360  // deciding whether to use uncertainties in metrics computation.
361  bool use_uncertainties = true;
362  for (auto& obj : fit_objects)
363  use_uncertainties = use_uncertainties && obj.containsUncertainties();
364 
365  double result = 0.0;
366  for (auto& obj : fit_objects)
367  result += m_module->compute(obj, use_uncertainties);
368  return result;
369 }

References m_module.

Member Data Documentation

◆ m_module

std::unique_ptr<ObjectiveMetric> ObjectiveMetricWrapper::m_module
private

Definition at line 49 of file FitObjective.cpp.

Referenced by compute(), and ObjectiveMetricWrapper().


The documentation for this class was generated from the following file: