From 4df2c7b8eb4482fe782bfbbd945e94781d5a3508 Mon Sep 17 00:00:00 2001 From: Pawel Sznajder Date: Wed, 15 Nov 2017 13:04:38 +0100 Subject: [PATCH] Add ScaleError in ObservableResult Chenge counter-intuitive constructor of ErrorBar Remove totalError in ObservableResult Modify ObservableResultDao and DBScheme accordingly Read computationModel string from DB (was missing) --- .../sql_schema/mysql5_observable_layer.sql | 3 +- .../beans/observable/ObservableResult.h | 35 +++++------- .../observable/dao/ObservableResultDao.h | 5 +- include/partons/utils/math/ErrorBar.h | 29 +++++----- .../beans/observable/ObservableResult.cpp | 26 +++------ .../observable/dao/ObservableResultDao.cpp | 56 ++++++++++--------- .../service/ObservableResultDaoService.cpp | 4 +- src/partons/utils/math/ErrorBar.cpp | 7 +-- 8 files changed, 77 insertions(+), 88 deletions(-) diff --git a/data/database/sql_schema/mysql5_observable_layer.sql b/data/database/sql_schema/mysql5_observable_layer.sql index 44622879..477a547d 100644 --- a/data/database/sql_schema/mysql5_observable_layer.sql +++ b/data/database/sql_schema/mysql5_observable_layer.sql @@ -37,7 +37,8 @@ stat_error_lb DOUBLE, stat_error_ub DOUBLE, syst_error_lb DOUBLE, syst_error_ub DOUBLE, -total_error DOUBLE, +scale_error_lb DOUBLE, +scale_error_ub DOUBLE, computation_module_name VARCHAR(255) NOT NULL, observable_type_id INTEGER NOT NULL, observable_kinematic_id INTEGER NOT NULL, diff --git a/include/partons/beans/observable/ObservableResult.h b/include/partons/beans/observable/ObservableResult.h index 35bd337a..4795981e 100644 --- a/include/partons/beans/observable/ObservableResult.h +++ b/include/partons/beans/observable/ObservableResult.h @@ -75,11 +75,6 @@ public: */ static const std::string PARAMETER_NAME_OBSERVABLE_VALUE; - /** - * Parameter name to set total uncertainty via configuration methods. - */ - static const std::string PARAMETER_NAME_TOTAL_ERROR; - /** * Default constructor. */ @@ -142,16 +137,6 @@ public: */ void setValue(double value); - /** - * Get total uncertainty associated to this result. - */ - double getTotalError() const; - - /** - * Set total uncertainty associated to this result. - */ - void setTotalError(double totalError); - /** * Get reference to statistical uncertainty associated to this result. */ @@ -172,6 +157,16 @@ public: */ void setSystError(const ErrorBar& systError); + /** + * Get reference to scale uncertainty associated to this result. + */ + const ErrorBar& getScaleError() const; + + /** + * Set scale uncertainty associated to this result. + */ + void setScaleError(const ErrorBar& scaleError); + /** * Get reference to DVCS observable kinematics associated to this result. */ @@ -204,11 +199,6 @@ private: */ double m_value; - /** - * Total uncertainty associated to this result. - */ - double m_totalError; - /** * Statistical uncertainty associated to this result. */ @@ -219,6 +209,11 @@ private: */ ErrorBar m_systError; + /** + * Scale uncertainty associated to this result. + */ + ErrorBar m_scaleError; + //TODO add a proxy to retrieve it from database. /** * DVCS observable kinematics associated to this result. diff --git a/include/partons/database/observable/dao/ObservableResultDao.h b/include/partons/database/observable/dao/ObservableResultDao.h index ef7f81c8..5c7e160e 100644 --- a/include/partons/database/observable/dao/ObservableResultDao.h +++ b/include/partons/database/observable/dao/ObservableResultDao.h @@ -45,7 +45,8 @@ public: * @param statErrorUB Statistical error (upper bound). * @param systErrorLB Systematic error (lower bound). * @param systErrorUB Systematic error (upper bound). - * @param errorTotal Total error. + * @param scaleErrorLB Scale error (lower bound). + * @param scaleErrorUB Scale error (upper bound). * @param computationModuleName Name of module used to evaluate this result. * @param observableTypeId Observable typ, see ObservableType::Type. * @param kinematicId Unique id of row in the database containing observable kinematics associated to this result. @@ -54,7 +55,7 @@ public: */ int insert(const std::string &observableName, double observableValue, double statErrorLB, double statErrorUB, double systErrorLB, - double systErrorUB, double errorTotal, + double systErrorUB, double scaleErrorLB, double scaleErrorUB, const std::string &computationModuleName, int observableTypeId, int kinematicId, int computationId) const; diff --git a/include/partons/utils/math/ErrorBar.h b/include/partons/utils/math/ErrorBar.h index 0d3b7363..5c81374b 100644 --- a/include/partons/utils/math/ErrorBar.h +++ b/include/partons/utils/math/ErrorBar.h @@ -29,26 +29,16 @@ public: /** * Assignment constructor. * - * @param upperBound Upper bound of the uncertainty. * @param lowerBound Lower bound of the uncertainty. + * @param upperBound Upper bound of the uncertainty. */ - ErrorBar(double upperBound, double lowerBound); + ErrorBar(double lowerBound, double upperBound); /** * Destructor. */ virtual ~ErrorBar(); - /** - * Get upper bound of the uncertainty. - */ - double getUpperBound() const; - - /** - * Set upper bound of the uncertainty. - */ - void setUpperBound(double upperBound); - /** * Get lower bound of the uncertainty. */ @@ -59,18 +49,27 @@ public: */ void setLowerBound(double lowerBound); -protected: + /** + * Get upper bound of the uncertainty. + */ + double getUpperBound() const; /** - * Upper bound of the uncertainty. + * Set upper bound of the uncertainty. */ - double m_upperBound; + void setUpperBound(double upperBound); + +protected: /** * Lower bound of the uncertainty. */ double m_lowerBound; + /** + * Upper bound of the uncertainty. + */ + double m_upperBound; }; } /* namespace PARTONS */ diff --git a/src/partons/beans/observable/ObservableResult.cpp b/src/partons/beans/observable/ObservableResult.cpp index 80930514..a91344ff 100644 --- a/src/partons/beans/observable/ObservableResult.cpp +++ b/src/partons/beans/observable/ObservableResult.cpp @@ -8,22 +8,18 @@ namespace PARTONS { - const std::string ObservableResult::PARAMETER_NAME_OBSERVABLE_VALUE = "observable value"; -const std::string ObservableResult::PARAMETER_NAME_TOTAL_ERROR = "total error"; - ObservableResult::ObservableResult() : - Result("ObservableResult"), m_observableName("UNDEFINED"), m_value(0.), m_totalError( - 0.), m_observableType(ObservableType::UNDEFINED) { + Result("ObservableResult"), m_observableName("UNDEFINED"), m_value(0.), m_observableType( + ObservableType::UNDEFINED) { } ObservableResult::ObservableResult(const std::string &observableName, double value) : Result("ObservableResult"), m_observableName(observableName), m_value( - value), m_totalError(0.), m_observableType( - ObservableType::UNDEFINED) { + value), m_observableType(ObservableType::UNDEFINED) { } ObservableResult::~ObservableResult() { @@ -53,14 +49,6 @@ void ObservableResult::compare(ComparisonReport &rootComparisonReport, ElemUtils::Formatter() << parentObjectInfo << this->getObjectInfo()); rootComparisonReport.addComparisonData(xb_comparisonData); - - ComparisonData total_error_comparisonData = CompareUtils::compareDouble( - ObservableResult::PARAMETER_NAME_TOTAL_ERROR, getTotalError(), - referenceObject.getTotalError(), - rootComparisonReport.getTolerances(), - ElemUtils::Formatter() << parentObjectInfo - << this->getObjectInfo()); - rootComparisonReport.addComparisonData(total_error_comparisonData); } // ##### GETTERS & SETTERS ##### @@ -89,8 +77,8 @@ const ErrorBar& ObservableResult::getSystError() const { return m_systError; } -double ObservableResult::getTotalError() const { - return m_totalError; +const ErrorBar& ObservableResult::getScaleError() const { + return m_scaleError; } double ObservableResult::getValue() const { @@ -109,8 +97,8 @@ void ObservableResult::setSystError(const ErrorBar& systError) { m_systError = systError; } -void ObservableResult::setTotalError(double totalError) { - m_totalError = totalError; +void ObservableResult::setScaleError(const ErrorBar& scaleError) { + m_scaleError = scaleError; } void ObservableResult::setValue(double value) { diff --git a/src/partons/database/observable/dao/ObservableResultDao.cpp b/src/partons/database/observable/dao/ObservableResultDao.cpp index 4096362a..757f4307 100644 --- a/src/partons/database/observable/dao/ObservableResultDao.cpp +++ b/src/partons/database/observable/dao/ObservableResultDao.cpp @@ -16,7 +16,6 @@ namespace PARTONS { - ObservableResultDao::ObservableResultDao() : BaseObject("ObservableResultDao") { } @@ -26,9 +25,9 @@ ObservableResultDao::~ObservableResultDao() { int ObservableResultDao::insert(const std::string& observableName, double observableValue, double statErrorLB, double statErrorUB, - double systErrorLB, double systErrorUB, double errorTotal, - const std::string &computationModuleName, int observableTypeId, - int kinematicId, int computationId) const { + double systErrorLB, double systErrorUB, double scaleErrorLB, + double scaleErrorUB, const std::string &computationModuleName, + int observableTypeId, int kinematicId, int computationId) const { int result = -1; QSqlQuery query(DatabaseManager::getInstance()->getProductionDatabase()); @@ -41,7 +40,8 @@ int ObservableResultDao::insert(const std::string& observableName, names.push_back("stat_error_ub"); names.push_back("syst_error_lb"); names.push_back("syst_error_ub"); - names.push_back("total_error"); + names.push_back("scale_error_lb"); + names.push_back("scale_error_ub"); names.push_back(Database::COLUMN_NAME_COMPUTATION_MODULE_NAME); names.push_back("observable_type_id"); names.push_back(Database::COLUMN_NAME_OBSERVABLE_KINEMATIC_ID); @@ -53,7 +53,8 @@ int ObservableResultDao::insert(const std::string& observableName, values.push_back(":stat_error_ub"); values.push_back(":syst_error_lb"); values.push_back(":syst_error_ub"); - values.push_back(":total_error"); + values.push_back(":scale_error_lb"); + values.push_back(":scale_error_ub"); values.push_back(":computationModuleName"); values.push_back(":observableTypeId"); values.push_back(":observable_kinematic_id"); @@ -73,12 +74,13 @@ int ObservableResultDao::insert(const std::string& observableName, query.bindValue(QString(values[3].c_str()), statErrorUB); query.bindValue(QString(values[4].c_str()), systErrorLB); query.bindValue(QString(values[5].c_str()), systErrorUB); - query.bindValue(QString(values[6].c_str()), errorTotal); - query.bindValue(QString(values[7].c_str()), + query.bindValue(QString(values[6].c_str()), scaleErrorLB); + query.bindValue(QString(values[7].c_str()), scaleErrorUB); + query.bindValue(QString(values[8].c_str()), QString(computationModuleName.c_str())); - query.bindValue(QString(values[8].c_str()), observableTypeId); - query.bindValue(QString(values[9].c_str()), kinematicId); - query.bindValue(QString(values[10].c_str()), computationId); + query.bindValue(QString(values[9].c_str()), observableTypeId); + query.bindValue(QString(values[10].c_str()), kinematicId); + query.bindValue(QString(values[11].c_str()), computationId); names.clear(); values.clear(); @@ -153,7 +155,8 @@ void ObservableResultDao::fillObservableResultList( int field_stat_error_ub = query.record().indexOf("stat_error_ub"); int field_syst_error_lb = query.record().indexOf("syst_error_lb"); int field_syst_error_ub = query.record().indexOf("syst_error_ub"); - int field_total_error = query.record().indexOf("total_error"); + int field_scale_error_lb = query.record().indexOf("scale_error_lb"); + int field_scale_error_ub = query.record().indexOf("scale_error_ub"); int field_computation_module_name = query.record().indexOf( "computation_module_name"); int field_observable_type_id = query.record().indexOf("observable_type_id"); @@ -161,35 +164,38 @@ void ObservableResultDao::fillObservableResultList( QString(Database::COLUMN_NAME_OBSERVABLE_KINEMATIC_ID.c_str())); while (query.next()) { + int id = query.value(field_id).toInt(); std::string observable_name = query.value(field_observable_name).toString().toStdString(); double observable_value = query.value(field_observable_value).toDouble(); - int computation_module_name = - query.value(field_computation_module_name).toInt(); - - ErrorBar statError(query.value(field_stat_error_ub).toDouble(), - query.value(field_stat_error_lb).toDouble()); - ErrorBar systError(query.value(field_syst_error_ub).toDouble(), - query.value(field_syst_error_lb).toDouble()); + ErrorBar statError(query.value(field_stat_error_lb).toDouble(), + query.value(field_stat_error_ub).toDouble()); + ErrorBar systError(query.value(field_syst_error_lb).toDouble(), + query.value(field_syst_error_ub).toDouble()); + ErrorBar scaleError(query.value(field_scale_error_lb).toDouble(), + query.value(field_scale_error_ub).toDouble()); + std::string computation_module_name = query.value( + field_computation_module_name).toString().toStdString(); + ObservableType::Type observable_type = + static_cast(query.value( + field_observable_type_id).toInt()); //TODO create ResultInfo, Computation, ... ObservableResult observableResult; + observableResult.setIndexId(id); observableResult = ObservableResult(observable_name, observable_value); observableResult.setStatError(statError); observableResult.setSystError(systError); - observableResult.setTotalError( - query.value(field_total_error).toDouble()); - observableResult.setObservableType( - static_cast(query.value( - field_observable_type_id).toInt())); + observableResult.setScaleError(scaleError); + observableResult.setComputationModuleName(computation_module_name); observableResult.setKinematic( m_observableKinematicDao.getKinematicById( query.value(field_kinematic_id).toInt())); - observableResult.setIndexId(id); + observableResult.setObservableType(observable_type); observableResultList.add(observableResult); } diff --git a/src/partons/database/observable/service/ObservableResultDaoService.cpp b/src/partons/database/observable/service/ObservableResultDaoService.cpp index 9f4c8395..37ab526d 100644 --- a/src/partons/database/observable/service/ObservableResultDaoService.cpp +++ b/src/partons/database/observable/service/ObservableResultDaoService.cpp @@ -18,7 +18,6 @@ namespace PARTONS { - ObservableResultDaoService::ObservableResultDaoService() : ResultDaoService("ObservableResultDaoService"), m_lastObservableKinematicId( -1), m_lastObservableResultId(-1), m_observableKinematicTableFile( @@ -115,7 +114,8 @@ int ObservableResultDaoService::insert( << resultList[i].getStatError().getUpperBound() << "," << resultList[i].getSystError().getLowerBound() << "," << resultList[i].getSystError().getUpperBound() << "," - << resultList[i].getTotalError() << "," + << resultList[i].getScaleError().getLowerBound() << "," + << resultList[i].getScaleError().getUpperBound() << "," << resultList[i].getComputationModuleName() << "," << resultList[i].getObservableType() << "," << kinematicId << "," << m_previousComputationId.second << '\n'; diff --git a/src/partons/utils/math/ErrorBar.cpp b/src/partons/utils/math/ErrorBar.cpp index fca8d25e..5889e7aa 100644 --- a/src/partons/utils/math/ErrorBar.cpp +++ b/src/partons/utils/math/ErrorBar.cpp @@ -2,13 +2,12 @@ namespace PARTONS { - ErrorBar::ErrorBar() : - m_upperBound(0.), m_lowerBound(0.) { + m_lowerBound(0.), m_upperBound(0.) { } -ErrorBar::ErrorBar(double upperBound, double lowerBound) : - m_upperBound(upperBound), m_lowerBound(lowerBound) { +ErrorBar::ErrorBar(double lowerBound, double upperBound) : + m_lowerBound(lowerBound), m_upperBound(upperBound) { } ErrorBar::~ErrorBar() { -- GitLab