From 51529b7b041244a879e1b70800a15b8e08d1c175 Mon Sep 17 00:00:00 2001 From: Gennady Pospelov <g.pospelov@fz-juelich.de> Date: Tue, 29 Sep 2015 13:33:24 +0200 Subject: [PATCH] FitStrategyAdjustData is abandoned and removed --- App/src/TestFittingModule2.cpp | 65 ++++++++-------- Fit/FitKernel/inc/FitObject.h | 6 +- Fit/FitKernel/inc/FitStrategyAdjustData.h | 57 -------------- Fit/FitKernel/inc/FitSuiteObjects.h | 4 +- Fit/FitKernel/src/FitObject.cpp | 34 ++++----- Fit/FitKernel/src/FitStrategyAdjustData.cpp | 80 -------------------- Fit/PythonAPI/src/FitObject.pypp.cpp | 11 --- Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp | 11 --- Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp | 11 +++ 9 files changed, 65 insertions(+), 214 deletions(-) delete mode 100644 Fit/FitKernel/inc/FitStrategyAdjustData.h delete mode 100644 Fit/FitKernel/src/FitStrategyAdjustData.cpp diff --git a/App/src/TestFittingModule2.cpp b/App/src/TestFittingModule2.cpp index 396a22c9884..4735be9abad 100644 --- a/App/src/TestFittingModule2.cpp +++ b/App/src/TestFittingModule2.cpp @@ -19,7 +19,6 @@ #include "Exceptions.h" #include "FitSuite.h" #include "FitSuiteObserverFactory.h" -#include "FitStrategyAdjustData.h" #include "FitStrategyAdjustParameters.h" #include "FormFactors.h" #include "Simulation.h" @@ -170,37 +169,39 @@ void TestFittingModule2::fit_example_chimodule() void TestFittingModule2::fit_example_strategy_data() { - initializeSimulation(); - initializeRealData(); - - m_fitSuite->addFitParameter("*SampleBuilder/m_cylinder_height", - 12*Units::nanometer, 1*Units::nanometer, - AttLimits::lowerLimited(0.01) ); - m_fitSuite->addFitParameter("*SampleBuilder/m_cylinder_radius", - 2*Units::nanometer, 1*Units::nanometer, - AttLimits::lowerLimited(0.01) ); - m_fitSuite->addFitParameter("*SampleBuilder/m_prism3_length", - 24*Units::nanometer, 2*Units::nanometer, - AttLimits::lowerLimited(0.01) ); - m_fitSuite->addFitParameter("*SampleBuilder/m_prism3_height", - 2*Units::nanometer, 1*Units::nanometer, - AttLimits::lowerLimited(0.01) ); - m_fitSuite->addFitParameter("*SampleBuilder/m_cylinder_ratio", - 0.2, 0.1, - AttLimits::fixed()); - - // Applying fit strategy: resizing real data - m_fitSuite->addFitStrategy(new FitStrategyAdjustData(3)); - m_fitSuite->addFitStrategy(new FitStrategyAdjustData(2)); - m_fitSuite->addFitStrategy(new FitStrategyAdjustData(1)); - m_fitSuite->addFitStrategy(new FitStrategyDefault()); - - m_fitSuite->addSimulationAndRealData(*mp_simulation, *mp_real_data); - - m_fitSuite->setMinimizer( - MinimizerFactory::createMinimizer("Minuit2", "Migrad") ); - - m_fitSuite->runFit(); + throw NotImplementedException("TestFittingModule2::fit_example_strategy_data() -> Obsolete code."); + +// initializeSimulation(); +// initializeRealData(); + +// m_fitSuite->addFitParameter("*SampleBuilder/m_cylinder_height", +// 12*Units::nanometer, 1*Units::nanometer, +// AttLimits::lowerLimited(0.01) ); +// m_fitSuite->addFitParameter("*SampleBuilder/m_cylinder_radius", +// 2*Units::nanometer, 1*Units::nanometer, +// AttLimits::lowerLimited(0.01) ); +// m_fitSuite->addFitParameter("*SampleBuilder/m_prism3_length", +// 24*Units::nanometer, 2*Units::nanometer, +// AttLimits::lowerLimited(0.01) ); +// m_fitSuite->addFitParameter("*SampleBuilder/m_prism3_height", +// 2*Units::nanometer, 1*Units::nanometer, +// AttLimits::lowerLimited(0.01) ); +// m_fitSuite->addFitParameter("*SampleBuilder/m_cylinder_ratio", +// 0.2, 0.1, +// AttLimits::fixed()); + +// // Applying fit strategy: resizing real data +// m_fitSuite->addFitStrategy(new FitStrategyAdjustData(3)); +// m_fitSuite->addFitStrategy(new FitStrategyAdjustData(2)); +// m_fitSuite->addFitStrategy(new FitStrategyAdjustData(1)); +// m_fitSuite->addFitStrategy(new FitStrategyDefault()); + +// m_fitSuite->addSimulationAndRealData(*mp_simulation, *mp_real_data); + +// m_fitSuite->setMinimizer( +// MinimizerFactory::createMinimizer("Minuit2", "Migrad") ); + +// m_fitSuite->runFit(); } diff --git a/Fit/FitKernel/inc/FitObject.h b/Fit/FitKernel/inc/FitObject.h index c09aff7a0f6..29fd87be93d 100644 --- a/Fit/FitKernel/inc/FitObject.h +++ b/Fit/FitKernel/inc/FitObject.h @@ -46,12 +46,10 @@ class BA_CORE_API_ FitObject : public IParameterized //! Returns real data const OutputData<double> *getRealData() const { return m_real_data; } - //! Sets real data - void setRealData(const OutputData<double >& real_data); +// //! Sets real data +// void setRealData(const OutputData<double >& real_data); //! Returns simulated data -// const OutputData<double> *getSimulationData() const { -// return m_simulation->getOutputData(); } const OutputData<double> *getSimulationData() const { return m_chi2_module->getSimulationData(); } diff --git a/Fit/FitKernel/inc/FitStrategyAdjustData.h b/Fit/FitKernel/inc/FitStrategyAdjustData.h deleted file mode 100644 index 1ff4b00821a..00000000000 --- a/Fit/FitKernel/inc/FitStrategyAdjustData.h +++ /dev/null @@ -1,57 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file FitKernel/inc/FitStrategyAdjustData.h -//! @brief Defines class FitStrategyAdjustData -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2015 -//! @authors Scientific Computing Group at MLZ Garching -//! @authors C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke -// -// ************************************************************************** // - -#ifndef FITSTRATEGYADJUSTDATA_H -#define FITSTRATEGYADJUSTDATA_H - -#include "IFitStrategy.h" - -//! @class FitStrategyAdjustData -//! @ingroup fitting -//! @brief Strategy modifies data before running minimization round - -class BA_CORE_API_ FitStrategyAdjustData : public IFitStrategy -{ -public: - FitStrategyAdjustData(int power_of_two = 1, - bool preserve_original=true, bool call_minimize=true) - : IFitStrategy("FitStrategyAdjustData") - , m_power_of_two(power_of_two) - , m_preserve_original_data(preserve_original) - , m_call_minimize(call_minimize) { } - - virtual FitStrategyAdjustData *clone() const { return new FitStrategyAdjustData(*this); } - - void setPreserveOriginalData(bool preserve_original) { - m_preserve_original_data = preserve_original; - } - void setCallMinimize(bool call_minimize) { - m_call_minimize = call_minimize; - } - virtual void execute(); -protected: - FitStrategyAdjustData(const FitStrategyAdjustData &other); - - size_t m_power_of_two; - //! if it is true, strategy will restore original data in FitSuite - //! before exiting - bool m_preserve_original_data; - //! if it's true, modify data and then call FitSuite's minimizer, - //! if false - simply modify the data - bool m_call_minimize; -}; - -#endif // FITSTRATEGYADJUSTDATA_H - diff --git a/Fit/FitKernel/inc/FitSuiteObjects.h b/Fit/FitKernel/inc/FitSuiteObjects.h index 6aecc361b83..01207625086 100644 --- a/Fit/FitKernel/inc/FitSuiteObjects.h +++ b/Fit/FitKernel/inc/FitSuiteObjects.h @@ -76,8 +76,8 @@ class BA_CORE_API_ FitSuiteObjects : public IParameterized return m_fit_objects[check_index(i_item)]->getRealData(); } //! Sets real data - void setRealData(const OutputData<double >& real_data, size_t i_item = 0) { - m_fit_objects[check_index(i_item)]->setRealData(real_data);} +// void setRealData(const OutputData<double >& real_data, size_t i_item = 0) { +// m_fit_objects[check_index(i_item)]->setRealData(real_data);} //! Returns simulated data const OutputData<double> * getSimulationData(size_t i_item = 0) const { return m_fit_objects[check_index(i_item)]->getSimulationData(); } diff --git a/Fit/FitKernel/src/FitObject.cpp b/Fit/FitKernel/src/FitObject.cpp index 5da46fca264..3c68a2135c7 100644 --- a/Fit/FitKernel/src/FitObject.cpp +++ b/Fit/FitKernel/src/FitObject.cpp @@ -46,23 +46,23 @@ FitObject::~FitObject() } //! Sets real data -void FitObject::setRealData(const OutputData<double >& real_data) -{ - delete m_real_data; - m_real_data = real_data.clone(); - if( m_simulation) { - if( !m_real_data->hasSameShape(*m_simulation->getOutputData()) ) { - msglog(MSG::INFO) << "FitObject::setRealData() -> " - "Real data and the detector have different shape. " - "Adjusting detector..."; - } else { - msglog(MSG::INFO) << "FitObject::setRealData() -> " - "Real data and the detector have same shape. " - "No need to adjust detector."; - } - m_simulation->setDetectorParameters(*m_real_data); - } -} +//void FitObject::setRealData(const OutputData<double >& real_data) +//{ +// delete m_real_data; +// m_real_data = real_data.clone(); +// if( m_simulation) { +// if( !m_real_data->hasSameShape(*m_simulation->getOutputData()) ) { +// msglog(MSG::INFO) << "FitObject::setRealData() -> " +// "Real data and the detector have different shape. " +// "Adjusting detector..."; +// } else { +// msglog(MSG::INFO) << "FitObject::setRealData() -> " +// "Real data and the detector have same shape. " +// "No need to adjust detector."; +// } +// m_simulation->setDetectorParameters(*m_real_data); +// } +//} //! Updates m_chi2_module; returns chi squared value. diff --git a/Fit/FitKernel/src/FitStrategyAdjustData.cpp b/Fit/FitKernel/src/FitStrategyAdjustData.cpp deleted file mode 100644 index 0e89d80373c..00000000000 --- a/Fit/FitKernel/src/FitStrategyAdjustData.cpp +++ /dev/null @@ -1,80 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file FitKernel/src/FitStrategyAdjustData.cpp -//! @brief Implements class FitStrategyAdjustData. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2015 -//! @authors Scientific Computing Group at MLZ Garching -//! @authors C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke -// -// ************************************************************************** // - -#include "FitStrategyAdjustData.h" -#include "FitSuite.h" -#include "OutputDataFunctions.h" -#include "MessageService.h" - - - -FitStrategyAdjustData::FitStrategyAdjustData(const FitStrategyAdjustData &other) - : IFitStrategy(other) - , m_power_of_two(other.m_power_of_two) - , m_preserve_original_data(other.m_preserve_original_data) - , m_call_minimize(other.m_call_minimize) -{ - -} - - -//! adjust (rebin) data before running fit suite minimization round -void FitStrategyAdjustData::execute() -{ - if( !m_fit_suite ) throw NullPointerException("FitStrategyAdjustData::execute() -> FitSuite doesn't exists"); - - // if no data rediction was requested, just call FitSuite's minimization - if( m_power_of_two == 0 ) { - if(m_call_minimize) { - m_fit_suite->minimize(); - } - return; - } - - // adjusting real data for every simulation defined - std::vector<OutputData<double > *> original_data_collection; - for(size_t i_exp = 0; i_exp<m_fit_suite->getFitObjects()->size(); ++i_exp) { - // saving original data - OutputData<double > *orig_data = m_fit_suite->getFitObjects()->getRealData()->clone(); - original_data_collection.push_back(orig_data); - - // create adjusted data which will have doubled (2,4,8,...) bin size - OutputData<double> *adjusted_data = orig_data; - for(size_t i=0; i<m_power_of_two; ++i) { - OutputData<double> *new_data = OutputDataFunctions::doubleBinSize(*adjusted_data); - if(i!=0) { - delete adjusted_data; - } - adjusted_data = new_data; - } - m_fit_suite->getFitObjects()->setRealData(*adjusted_data, i_exp); - delete adjusted_data; - } - - // calling minimization - if(m_call_minimize) { - m_fit_suite->getMinimizer()->clear(); // clear minimizer's parameters and error matrixes - m_fit_suite->minimize(); - } - - // setting back original data - if(m_preserve_original_data) { - msglog(MSG::INFO) << "FitSuiteStrategyAdjustData::execute() -> Returning original data back "; - for(size_t i_exp = 0; i_exp<m_fit_suite->getFitObjects()->size(); ++i_exp) { - m_fit_suite->getFitObjects()->setRealData(*original_data_collection[i_exp], i_exp); - delete original_data_collection[i_exp]; - } - } -} diff --git a/Fit/PythonAPI/src/FitObject.pypp.cpp b/Fit/PythonAPI/src/FitObject.pypp.cpp index 7b5623fe5ab..1b3a7296104 100644 --- a/Fit/PythonAPI/src/FitObject.pypp.cpp +++ b/Fit/PythonAPI/src/FitObject.pypp.cpp @@ -220,17 +220,6 @@ void register_FitObject_class(){ , ( bp::arg("chi2_module") ) , "Sets chi2 module." ); - } - { //::FitObject::setRealData - - typedef void ( ::FitObject::*setRealData_function_type)( ::OutputData< double > const & ) ; - - FitObject_exposer.def( - "setRealData" - , setRealData_function_type( &::FitObject::setRealData ) - , ( bp::arg("real_data") ) - , "Returns real data." ); - } { //::FitObject::setSimulation diff --git a/Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp b/Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp index e56360d39e0..fc9a09ec0d6 100644 --- a/Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp +++ b/Fit/PythonAPI/src/FitSuiteObjects.pypp.cpp @@ -279,17 +279,6 @@ void register_FitSuiteObjects_class(){ , setNfreeParameters_function_type( &::FitSuiteObjects::setNfreeParameters ) , ( bp::arg("nfree_parameters") ) ); - } - { //::FitSuiteObjects::setRealData - - typedef void ( ::FitSuiteObjects::*setRealData_function_type)( ::OutputData< double > const &,::std::size_t ) ; - - FitSuiteObjects_exposer.def( - "setRealData" - , setRealData_function_type( &::FitSuiteObjects::setRealData ) - , ( bp::arg("real_data"), bp::arg("i_item")=(::std::size_t)(0) ) - , "Sets real data." ); - } { //::FitSuiteObjects::setSimulationNormalize diff --git a/Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp b/Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp index 3b89107440f..2b854b7e324 100644 --- a/Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp +++ b/Fit/PythonAPI/src/IChiSquaredModule.pypp.cpp @@ -327,6 +327,17 @@ void register_IChiSquaredModule_class(){ , default_setIntensityNormalizer_function_type(&IChiSquaredModule_wrapper::default_setIntensityNormalizer) , ( bp::arg("data_normalizer") ) ); + } + { //::IChiSquaredModule::setMasks + + typedef void ( ::IChiSquaredModule::*setMasks_function_type)( ::OutputData< bool > const & ) ; + + IChiSquaredModule_exposer.def( + "setMasks" + , setMasks_function_type( &::IChiSquaredModule::setMasks ) + , ( bp::arg("masks") ) + , "Sets detector masks." ); + } { //::IChiSquaredModule::setNdegreeOfFreedom -- GitLab