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

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 40 of file FitObjective.cpp.

Constructor & Destructor Documentation

◆ ObjectiveMetricWrapper()

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

Definition at line 348 of file FitObjective.cpp.

349  : IMetricWrapper(), m_module(std::move(module))
350 {
351  if (!m_module)
352  throw std::runtime_error("Error in ObjectiveMetricWrapper: empty objective metric passed");
353 }
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 355 of file FitObjective.cpp.

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

References m_module.

Member Data Documentation

◆ m_module

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

Definition at line 46 of file FitObjective.cpp.

Referenced by ObjectiveMetricWrapper(), and compute().


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