BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
PoissonLikeMetric Class Reference

Implementation of $ \chi^2 $ metric with standard deviation $\sigma = max(\sqrt{I}, 1)$, where $I$ is the simulated intensity. More...

+ Inheritance diagram for PoissonLikeMetric:

Public Member Functions

PoissonLikeMetricclone () const override
 
double computeFromArrays (std::vector< double > sim_data, std::vector< double > exp_data, std::vector< double > weight_factors) const override
 Computes metric value from data arrays. More...
 
double computeFromArrays (std::vector< double > sim_data, std::vector< double > exp_data, std::vector< double > uncertainties, std::vector< double > weight_factors) const override
 Computes metric value from data arrays. More...
 
double computeFromArrays (std::vector< double > sim_data, std::vector< double > exp_data, std::vector< double > weight_factors) const override
 Computes metric value from data arrays. More...
 
- Public Member Functions inherited from Chi2Metric
double computeFromArrays (std::vector< double > sim_data, std::vector< double > exp_data, std::vector< double > uncertainties, std::vector< double > weight_factors) const override
 Computes metric value from data arrays. More...
 
- Public Member Functions inherited from ObjectiveMetric
 ObjectiveMetric (std::function< double(double)> norm)
 
virtual double compute (const SimDataPair &data_pair, bool use_weights) const
 Computes metric value from SimDataPair object. More...
 
void setNorm (std::function< double(double)> norm)
 
auto norm () const
 Returns a copy of the normalization function used.
 
- Public Member Functions inherited from ICloneable
 ICloneable (const ICloneable &)=delete
 
 ICloneable (ICloneable &&)=default
 
virtual void transferToCPP ()
 Used for Python overriding of clone (see swig/tweaks.py)
 

Detailed Description

Implementation of $ \chi^2 $ metric with standard deviation $\sigma = max(\sqrt{I}, 1)$, where $I$ is the simulated intensity.

With default L2 norm corresponds to the formula

\[\chi^2 = \sum \frac{(I - D)^2}{max(I, 1)}\]

for unweighted experimental data. Falls to standard Chi2Metric when data uncertainties are taken into account.

Definition at line 109 of file ObjectiveMetric.h.

Member Function Documentation

◆ computeFromArrays() [1/3]

double PoissonLikeMetric::computeFromArrays ( std::vector< double >  sim_data,
std::vector< double >  exp_data,
std::vector< double >  weight_factors 
) const
overridevirtual

Computes metric value from data arrays.

Negative values in exp_data are ignored as well as non-positive weight_factors. All arrays involved in the computation must be of the same size.

Parameters
sim_dataarray with simulated intensities.
exp_dataarray with intensity values obtained from an experiment.
weight_factorsuser-defined weighting factors. Used linearly, no matter which norm is chosen.

Reimplemented from Chi2Metric.

Definition at line 127 of file ObjectiveMetric.cpp.

◆ computeFromArrays() [2/3]

double Chi2Metric::computeFromArrays
override

Computes metric value from data arrays.

Negative values in exp_data are ignored as well as non-positive weight_factors and uncertainties. All arrays involved in the computation must be of the same size.

Parameters
sim_dataarray with simulated intensities.
exp_dataarray with intensity values obtained from an experiment.
uncertaintiesarray with experimental data uncertainties.
weight_factorsuser-defined weighting factors. Used linearly, no matter which norm is chosen.

Definition at line 87 of file ObjectiveMetric.cpp.

◆ computeFromArrays() [3/3]

double Chi2Metric::computeFromArrays
override

Computes metric value from data arrays.

Negative values in exp_data are ignored as well as non-positive weight_factors. All arrays involved in the computation must be of the same size.

Parameters
sim_dataarray with simulated intensities.
exp_dataarray with intensity values obtained from an experiment.
weight_factorsuser-defined weighting factors. Used linearly, no matter which norm is chosen.

Definition at line 98 of file ObjectiveMetric.cpp.


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