From ee06e568c5292087c977fdd252a90ebea9febadf Mon Sep 17 00:00:00 2001 From: Gennady Pospelov <g.pospelov@fz-juelich.de> Date: Tue, 28 Jan 2014 10:53:12 +0100 Subject: [PATCH] Additional check in ChiSquaredModule for mask consistency --- Core/Algorithms/inc/ChiSquaredModule.h | 1 + Core/Algorithms/src/ChiSquaredModule.cpp | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/Core/Algorithms/inc/ChiSquaredModule.h b/Core/Algorithms/inc/ChiSquaredModule.h index 65fa517fdbe..abca447da7e 100644 --- a/Core/Algorithms/inc/ChiSquaredModule.h +++ b/Core/Algorithms/inc/ChiSquaredModule.h @@ -41,6 +41,7 @@ public: //! Returns residual between data and simulation for single element. virtual double getResidualValue(size_t index ) const; + }; #endif /* CHISQUAREDMODULE_H_ */ diff --git a/Core/Algorithms/src/ChiSquaredModule.cpp b/Core/Algorithms/src/ChiSquaredModule.cpp index 10255cbdee1..38e05c600e3 100644 --- a/Core/Algorithms/src/ChiSquaredModule.cpp +++ b/Core/Algorithms/src/ChiSquaredModule.cpp @@ -46,6 +46,7 @@ double ChiSquaredModule::calculateChiSquared() OutputData<double> *p_difference = createChi2DifferenceMap(); OutputData<double>::const_iterator it_weights = mp_weights->begin(); OutputData<double>::const_iterator it_diff = p_difference->begin(); + double sum = 0; while(it_diff != p_difference->end()) sum += (*it_diff++)*(*it_weights++); @@ -92,6 +93,9 @@ OutputData<double>* ChiSquaredModule::createChi2DifferenceMap() const OutputData<double>::const_iterator it_real = mp_real_data->begin(); while (it_diff != p_difference->end()) { + if( (it_sim.getIndex() != it_real.getIndex()) || (it_sim.getIndex() != it_diff.getIndex()) ) { + throw DomainErrorException("ChiSquaredModule::calculateChiSquared() -> Iterator inconsistency"); + } double value_simu = *it_sim++; double value_real = *it_real++; double squared_difference = @@ -105,3 +109,4 @@ OutputData<double>* ChiSquaredModule::createChi2DifferenceMap() const } + -- GitLab