BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Holds vector of SimDataPair
s (experimental data and simulation results) for use in fitting.
More...
Public Member Functions | |
FitObjective () | |
virtual | ~FitObjective () |
SimulationResult | absoluteDifference (size_t i_item=0) const |
Returns absolute value of difference between simulation and experimental data in the form of SimulationResult. More... | |
template<class T > | |
void | addSimulationAndData (PyBuilderCallback &callback, const T &data, const T &uncertainties, double weight=1.0) |
Constructs simulation/data pair for later fit. More... | |
template<class T > | |
void | addSimulationAndData (PyBuilderCallback &callback, const T &data, double weight=1.0) |
Constructs simulation/data pair for later fit. More... | |
void | addSimulationAndData (simulation_builder_t builder, const OutputData< double > &data, std::unique_ptr< OutputData< double >> uncertainties, double weight=1.0) |
Constructs simulation/data pair for later fit. More... | |
bool | allPairsHaveUncertainties () const |
Returns true if all the data pairs in FitObjective instance contain uncertainties. More... | |
bool | containsUncertainties (size_t i_item) const |
Returns true if the specified DataPair element contains uncertainties. More... | |
const SimDataPair & | dataPair (size_t i_item=0) const |
Returns a reference to i-th SimDataPair. More... | |
virtual double | evaluate (const mumufit::Parameters ¶ms) |
virtual std::vector< double > | evaluate_residuals (const mumufit::Parameters ¶ms) |
std::vector< double > | experimental_array () const |
Returns one dimensional array representing merged experimental data. More... | |
SimulationResult | experimentalData (size_t i_item=0) const |
Returns experimental data in the form of SimulationResult. More... | |
void | finalize (const mumufit::MinimizerResult &result) |
Should be explicitely called on last iteration to notify all observers. More... | |
unsigned | fitObjectCount () const |
void | initPlot (int every_nth, fit_observer_t observer) |
void | initPlot (int every_nth, PyObserverCallback &callback) |
Initializes observer callback to be called on every_nth fit iteration. More... | |
void | initPrint (int every_nth) |
Initializes printing to standard output on every_nth fit iteration. More... | |
void | interruptFitting () |
bool | isCompleted () const |
bool | isFirstIteration () const |
bool | isInterrupted () const |
IterationInfo | iterationInfo () const |
mumufit::MinimizerResult | minimizerResult () const |
size_t | numberOfFitElements () const |
SimulationResult | relativeDifference (size_t i_item=0) const |
Returns relative difference between simulation and experimental data in the form of SimulationResult. More... | |
void | run_simulations (const mumufit::Parameters ¶ms) |
void | setChiSquaredModule (const IChiSquaredModule &module) |
void | setObjectiveMetric (const std::string &metric) |
void | setObjectiveMetric (const std::string &metric, const std::string &norm) |
Sets objective metric to the FitObjective. More... | |
void | setObjectiveMetric (std::unique_ptr< ObjectiveMetric > metric) |
std::vector< double > | simulation_array () const |
Returns one dimensional array representing merged simulated intensities data. More... | |
SimulationResult | simulationResult (size_t i_item=0) const |
Returns simulation result in the form of SimulationResult. More... | |
std::vector< double > | uncertainties () const |
Returns one-dimensional array representing merged data uncertainties. More... | |
SimulationResult | uncertaintyData (size_t i_item=0) const |
Returns experimental data uncertainties in the form of SimulationResult. More... | |
std::vector< double > | weights_array () const |
Returns one-dimensional array representing merged user weights. More... | |
Static Public Member Functions | |
static std::string | availableMetricOptions () |
Returns available metrics and norms. More... | |
Private Types | |
typedef std::vector< double >(SimDataPair::* | DataPairAccessor) () const |
Private Member Functions | |
size_t | check_index (size_t index) const |
std::vector< double > | composeArray (DataPairAccessor getter) const |
Static Private Member Functions | |
static simulation_builder_t | simulationBuilder (PyBuilderCallback &callback) |
Private Attributes | |
std::vector< SimDataPair > | m_fit_objects |
std::unique_ptr< FitStatus > | m_fit_status |
std::unique_ptr< IMetricWrapper > | m_metric_module |
Holds vector of SimDataPair
s (experimental data and simulation results) for use in fitting.
Definition at line 33 of file FitObjective.h.
|
private |
Definition at line 134 of file FitObjective.h.
FitObjective::FitObjective | ( | ) |
Definition at line 59 of file FitObjective.cpp.
|
virtualdefault |
SimulationResult FitObjective::absoluteDifference | ( | size_t | i_item = 0 | ) | const |
Returns absolute value of difference between simulation and experimental data in the form of SimulationResult.
Definition at line 134 of file FitObjective.cpp.
References SimDataPair::absoluteDifference(), and dataPair().
|
inline |
Constructs simulation/data pair for later fit.
callback | simulation builder capable of producing simulations |
data | experimental data array |
uncertainties | data uncertainties array |
weight | weight of dataset in metric calculations |
Definition at line 62 of file FitObjective.h.
References addSimulationAndData(), ArrayUtils::createData(), simulationBuilder(), and uncertainties().
|
inline |
Constructs simulation/data pair for later fit.
callback | simulation builder capable of producing simulations |
data | experimental data array |
weight | weight of dataset in metric calculations |
Definition at line 50 of file FitObjective.h.
References addSimulationAndData(), ArrayUtils::createData(), and simulationBuilder().
void FitObjective::addSimulationAndData | ( | simulation_builder_t | builder, |
const OutputData< double > & | data, | ||
std::unique_ptr< OutputData< double >> | uncertainties, | ||
double | weight = 1.0 |
||
) |
Constructs simulation/data pair for later fit.
builder | simulation builder capable of producing simulations |
data | experimental data array |
uncertainties | data uncertainties array |
weight | weight of dataset in metric calculations |
Definition at line 73 of file FitObjective.cpp.
References m_fit_objects, and uncertainties().
Referenced by addSimulationAndData().
bool FitObjective::allPairsHaveUncertainties | ( | ) | const |
Returns true if all the data pairs in FitObjective instance contain uncertainties.
Definition at line 276 of file FitObjective.cpp.
References SimDataPair::containsUncertainties(), dataPair(), and fitObjectCount().
|
static |
Returns available metrics and norms.
Definition at line 285 of file FitObjective.cpp.
References ObjectiveMetricUtils::availableMetricOptions().
|
private |
Definition at line 307 of file FitObjective.cpp.
References m_fit_objects.
Referenced by dataPair().
|
private |
Definition at line 290 of file FitObjective.cpp.
References m_fit_objects, and numberOfFitElements().
Referenced by experimental_array(), simulation_array(), uncertainties(), and weights_array().
bool FitObjective::containsUncertainties | ( | size_t | i_item | ) | const |
Returns true if the specified DataPair element contains uncertainties.
Definition at line 270 of file FitObjective.cpp.
References SimDataPair::containsUncertainties(), and dataPair().
const SimDataPair & FitObjective::dataPair | ( | size_t | i_item = 0 | ) | const |
Returns a reference to i-th SimDataPair.
Definition at line 167 of file FitObjective.cpp.
References check_index(), and m_fit_objects.
Referenced by absoluteDifference(), allPairsHaveUncertainties(), containsUncertainties(), experimentalData(), relativeDifference(), simulationResult(), uncertaintyData(), and GUIFitObserver::update().
|
virtual |
Definition at line 81 of file FitObjective.cpp.
References m_fit_objects, m_fit_status, m_metric_module, run_simulations(), and mumufit::Parameters::size().
Referenced by evaluate_residuals().
|
virtual |
Definition at line 89 of file FitObjective.cpp.
References evaluate(), experimental_array(), and simulation_array().
std::vector< double > FitObjective::experimental_array | ( | ) | const |
Returns one dimensional array representing merged experimental data.
The area outside of the region of interest is not included, masked data is nullified.
Definition at line 141 of file FitObjective.cpp.
References composeArray(), and SimDataPair::experimental_array().
Referenced by evaluate_residuals().
SimulationResult FitObjective::experimentalData | ( | size_t | i_item = 0 | ) | const |
Returns experimental data in the form of SimulationResult.
Definition at line 114 of file FitObjective.cpp.
References dataPair(), and SimDataPair::experimentalData().
void FitObjective::finalize | ( | const mumufit::MinimizerResult & | result | ) |
Should be explicitely called on last iteration to notify all observers.
Definition at line 203 of file FitObjective.cpp.
References m_fit_status.
unsigned FitObjective::fitObjectCount | ( | ) | const |
Definition at line 208 of file FitObjective.cpp.
References m_fit_objects.
Referenced by allPairsHaveUncertainties().
void FitObjective::initPlot | ( | int | every_nth, |
fit_observer_t | observer | ||
) |
Definition at line 177 of file FitObjective.cpp.
References m_fit_status.
void FitObjective::initPlot | ( | int | every_nth, |
PyObserverCallback & | callback | ||
) |
Initializes observer callback to be called on every_nth fit iteration.
Definition at line 182 of file FitObjective.cpp.
References m_fit_status, and PyObserverCallback::update().
void FitObjective::initPrint | ( | int | every_nth | ) |
Initializes printing to standard output on every_nth fit iteration.
Definition at line 172 of file FitObjective.cpp.
References m_fit_status.
void FitObjective::interruptFitting | ( | ) |
Definition at line 213 of file FitObjective.cpp.
References m_fit_status.
bool FitObjective::isCompleted | ( | ) | const |
Definition at line 188 of file FitObjective.cpp.
References m_fit_status.
Referenced by GUIFitObserver::is_obligatory_iteration(), GUIFitObserver::is_suitable_iteration(), FitPrintService::print(), and GUIFitObserver::update().
bool FitObjective::isFirstIteration | ( | ) | const |
Definition at line 223 of file FitObjective.cpp.
References IterationInfo::iterationCount(), and iterationInfo().
Referenced by GUIFitObserver::is_suitable_iteration(), and FitPrintService::print().
bool FitObjective::isInterrupted | ( | ) | const |
Definition at line 218 of file FitObjective.cpp.
References m_fit_status.
Referenced by GUIFitObserver::is_suitable_iteration().
IterationInfo FitObjective::iterationInfo | ( | ) | const |
Definition at line 193 of file FitObjective.cpp.
References m_fit_status.
Referenced by GUIFitObserver::is_suitable_iteration(), isFirstIteration(), FitPrintService::iterationHeaderString(), FitPrintService::parameterString(), and GUIFitObserver::update().
mumufit::MinimizerResult FitObjective::minimizerResult | ( | ) | const |
Definition at line 198 of file FitObjective.cpp.
References m_fit_status.
Referenced by FitPrintService::fitResultString(), and GUIFitObserver::update().
size_t FitObjective::numberOfFitElements | ( | ) | const |
Definition at line 100 of file FitObjective.cpp.
References m_fit_objects.
Referenced by composeArray().
SimulationResult FitObjective::relativeDifference | ( | size_t | i_item = 0 | ) | const |
Returns relative difference between simulation and experimental data in the form of SimulationResult.
Definition at line 127 of file FitObjective.cpp.
References dataPair(), and SimDataPair::relativeDifference().
void FitObjective::run_simulations | ( | const mumufit::Parameters & | params | ) |
Definition at line 228 of file FitObjective.cpp.
References m_fit_objects, and m_fit_status.
Referenced by evaluate().
void FitObjective::setChiSquaredModule | ( | const IChiSquaredModule & | module | ) |
Definition at line 241 of file FitObjective.cpp.
References IChiSquaredModule::clone(), and m_metric_module.
void FitObjective::setObjectiveMetric | ( | const std::string & | metric | ) |
Definition at line 257 of file FitObjective.cpp.
References ObjectiveMetricUtils::createMetric(), ObjectiveMetricUtils::defaultNormName(), and m_metric_module.
void FitObjective::setObjectiveMetric | ( | const std::string & | metric, |
const std::string & | norm | ||
) |
Sets objective metric to the FitObjective.
metric | metric name |
norm | metric norm name (defaults to L2-norm) |
Definition at line 263 of file FitObjective.cpp.
References ObjectiveMetricUtils::createMetric(), and m_metric_module.
void FitObjective::setObjectiveMetric | ( | std::unique_ptr< ObjectiveMetric > | metric | ) |
Definition at line 252 of file FitObjective.cpp.
References m_metric_module.
std::vector< double > FitObjective::simulation_array | ( | ) | const |
Returns one dimensional array representing merged simulated intensities data.
The area outside of the region of interest is not included, masked data is nullified.
Definition at line 148 of file FitObjective.cpp.
References composeArray(), and SimDataPair::simulation_array().
Referenced by evaluate_residuals().
|
staticprivate |
Definition at line 49 of file FitObjective.cpp.
References PyBuilderCallback::build_simulation().
Referenced by addSimulationAndData().
SimulationResult FitObjective::simulationResult | ( | size_t | i_item = 0 | ) | const |
Returns simulation result in the form of SimulationResult.
Definition at line 108 of file FitObjective.cpp.
References dataPair(), and SimDataPair::simulationResult().
std::vector< double > FitObjective::uncertainties | ( | ) | const |
Returns one-dimensional array representing merged data uncertainties.
The area outside of the region of interest is not included, masked data is nullified.
Definition at line 155 of file FitObjective.cpp.
References composeArray(), and SimDataPair::uncertainties_array().
Referenced by addSimulationAndData().
SimulationResult FitObjective::uncertaintyData | ( | size_t | i_item = 0 | ) | const |
Returns experimental data uncertainties in the form of SimulationResult.
Definition at line 120 of file FitObjective.cpp.
References dataPair(), and SimDataPair::uncertainties().
std::vector< double > FitObjective::weights_array | ( | ) | const |
Returns one-dimensional array representing merged user weights.
The area outside of the region of interest is not included, masked data is nullified.
Definition at line 162 of file FitObjective.cpp.
References composeArray(), and SimDataPair::user_weights_array().
|
private |
Definition at line 139 of file FitObjective.h.
Referenced by addSimulationAndData(), check_index(), composeArray(), dataPair(), evaluate(), fitObjectCount(), numberOfFitElements(), and run_simulations().
|
private |
Definition at line 141 of file FitObjective.h.
Referenced by evaluate(), finalize(), initPlot(), initPrint(), interruptFitting(), isCompleted(), isInterrupted(), iterationInfo(), minimizerResult(), and run_simulations().
|
private |
Definition at line 140 of file FitObjective.h.
Referenced by evaluate(), setChiSquaredModule(), and setObjectiveMetric().