From af7980a196071495cf02e4db9b2482301ec4c4b8 Mon Sep 17 00:00:00 2001 From: Marina Ganeva <m.ganeva@fz-juelich.de> Date: Mon, 25 Nov 2013 14:59:50 +0100 Subject: [PATCH] alpha_f and phi_f are moved back into static constants --- .../src/DecoratedLayerDWBASimulation.cpp | 9 +++--- Core/Algorithms/src/Detector.cpp | 15 +++++----- Core/Algorithms/src/DiffuseDWBASimulation.cpp | 9 +++--- Core/Algorithms/src/Instrument.cpp | 6 ++-- .../src/MultiLayerDWBASimulation.cpp | 5 ++-- .../src/MultiLayerRoughnessDWBASimulation.cpp | 5 ++-- Core/Algorithms/src/Simulation.cpp | 9 +++--- Core/Tools/inc/BornAgainNamespace.h | 28 +++++++++++++++++++ Core/Tools/src/OutputDataReadStrategy.cpp | 9 +++--- .../UnitTests/TestCore/ChiSquaredModuleTest.h | 9 +++--- Tests/UnitTests/TestCore/InstrumentTest.h | 3 +- Tests/UnitTests/TestCore/SimulationTest.h | 3 +- 12 files changed, 75 insertions(+), 35 deletions(-) create mode 100644 Core/Tools/inc/BornAgainNamespace.h diff --git a/Core/Algorithms/src/DecoratedLayerDWBASimulation.cpp b/Core/Algorithms/src/DecoratedLayerDWBASimulation.cpp index f84dfee703e..c142c1c9329 100644 --- a/Core/Algorithms/src/DecoratedLayerDWBASimulation.cpp +++ b/Core/Algorithms/src/DecoratedLayerDWBASimulation.cpp @@ -17,6 +17,7 @@ #include "Layer.h" #include "FormFactors.h" #include "MessageService.h" +#include "BornAgainNamespace.h" #include <boost/scoped_ptr.hpp> @@ -78,9 +79,9 @@ void DecoratedLayerDWBASimulation::calculateCoherentIntensity( while ( it != mp_polarization_output->end(m_thread_info) ) { Bin1D phi_bin = mp_polarization_output->getBinOfAxis( - "phi_f", it.getIndex()); + BA::PHI_AXIS_NAME, it.getIndex()); Bin1D alpha_bin = mp_polarization_output->getBinOfAxis( - "alpha_f", it.getIndex()); + BA::ALPHA_AXIS_NAME, it.getIndex()); double alpha_f = alpha_bin.getMidPoint(); if (m_sim_params.me_framework==SimulationParameters::DWBA && alpha_f<0) { @@ -104,9 +105,9 @@ void DecoratedLayerDWBASimulation::calculateCoherentIntensity( while ( it_intensity != end() ) { Bin1D phi_bin = getDWBAIntensity().getBinOfAxis( - "phi_f", it_intensity.getIndex()); + BA::PHI_AXIS_NAME, it_intensity.getIndex()); Bin1D alpha_bin = getDWBAIntensity().getBinOfAxis( - "alpha_f", it_intensity.getIndex()); + BA::ALPHA_AXIS_NAME, it_intensity.getIndex()); double alpha_f = alpha_bin.getMidPoint(); if (std::abs(mp_specular_info->getOutCoefficients(alpha_f, 0.0) ->getScalarR())!=0.0 && alpha_f<0) { diff --git a/Core/Algorithms/src/Detector.cpp b/Core/Algorithms/src/Detector.cpp index 5efdf537c18..6e10666a106 100644 --- a/Core/Algorithms/src/Detector.cpp +++ b/Core/Algorithms/src/Detector.cpp @@ -18,6 +18,7 @@ #include "AxisBin.h" #include "AxisDouble.h" #include "MessageService.h" +#include "BornAgainNamespace.h" #include <iostream> @@ -140,8 +141,8 @@ void Detector::normalize(OutputData<double> *p_data, if (p_data->getRank()!=2) return; // if not a gisas detector, do nothing - const IAxis *p_alpha_axis = p_data->getAxis("alpha_f"); - const IAxis *p_phi_axis = p_data->getAxis("phi_f"); + const IAxis *p_alpha_axis = p_data->getAxis(BA::ALPHA_AXIS_NAME); + const IAxis *p_phi_axis = p_data->getAxis(BA::PHI_AXIS_NAME); if (!p_alpha_axis || !p_phi_axis) return; // GISAS normalization @@ -181,11 +182,11 @@ void Detector::initializeAnglesIsgisaxs( double Detector::getSolidAngle(OutputData<double>* p_data, size_t index) const { - const IAxis *p_alpha_axis = p_data->getAxis("alpha_f"); - const IAxis *p_phi_axis = p_data->getAxis("phi_f"); - size_t alpha_index = p_data->getIndexOfAxis("alpha_f", index); + const IAxis *p_alpha_axis = p_data->getAxis(BA::ALPHA_AXIS_NAME); + const IAxis *p_phi_axis = p_data->getAxis(BA::PHI_AXIS_NAME); + size_t alpha_index = p_data->getIndexOfAxis(BA::ALPHA_AXIS_NAME, index); size_t alpha_size = p_alpha_axis->getSize(); - size_t phi_index = p_data->getIndexOfAxis("phi_f", index); + size_t phi_index = p_data->getIndexOfAxis(BA::PHI_AXIS_NAME, index); size_t phi_size = p_phi_axis->getSize(); if (alpha_size<2 && phi_size<2) // Cannot determine detector cell size! @@ -194,7 +195,7 @@ double Detector::getSolidAngle(OutputData<double>* p_data, size_t index) const "Error! Can't determine size of detector cell."); double dalpha(0), dphi(0); - double alpha_f = p_data->getValueOfAxis("alpha_f", index); + double alpha_f = p_data->getValueOfAxis(BA::ALPHA_AXIS_NAME, index); double cos_alpha_f = std::cos(alpha_f); if(alpha_size>1) { diff --git a/Core/Algorithms/src/DiffuseDWBASimulation.cpp b/Core/Algorithms/src/DiffuseDWBASimulation.cpp index fc889b7998b..237cab65608 100644 --- a/Core/Algorithms/src/DiffuseDWBASimulation.cpp +++ b/Core/Algorithms/src/DiffuseDWBASimulation.cpp @@ -18,6 +18,7 @@ #include "MessageService.h" #include "FormFactorTools.h" #include "MathFunctions.h" +#include "BornAgainNamespace.h" //! Carry out one simulation thread. @@ -39,9 +40,9 @@ void DiffuseDWBASimulation::run() while ( it_intensity != mp_polarization_output->end(m_thread_info) ) { Bin1D phi_bin = mp_polarization_output->getBinOfAxis( - "phi_f", it_intensity.getIndex()); + BA::PHI_AXIS_NAME, it_intensity.getIndex()); Bin1D alpha_bin = mp_polarization_output->getBinOfAxis( - "alpha_f", it_intensity.getIndex()); + BA::ALPHA_AXIS_NAME, it_intensity.getIndex()); double alpha_f = alpha_bin.getMidPoint(); if (m_sim_params.me_framework==SimulationParameters::DWBA && alpha_f<0) { @@ -80,9 +81,9 @@ void DiffuseDWBASimulation::run() while ( it_intensity != end() ) { Bin1D phi_bin = getDWBAIntensity().getBinOfAxis( - "phi_f", it_intensity.getIndex()); + BA::PHI_AXIS_NAME, it_intensity.getIndex()); Bin1D alpha_bin = getDWBAIntensity().getBinOfAxis( - "alpha_f", it_intensity.getIndex()); + BA::ALPHA_AXIS_NAME, it_intensity.getIndex()); double alpha_f = alpha_bin.getMidPoint(); if (alpha_f<0) { ++it_intensity; diff --git a/Core/Algorithms/src/Instrument.cpp b/Core/Algorithms/src/Instrument.cpp index 3b7326f6006..8711dd10d17 100644 --- a/Core/Algorithms/src/Instrument.cpp +++ b/Core/Algorithms/src/Instrument.cpp @@ -17,6 +17,8 @@ #include "ConvolutionDetectorResolution.h" +#include "BornAgainNamespace.h" + Instrument::Instrument() : IParameterized("Instrument") { @@ -47,10 +49,10 @@ void Instrument::setDetectorParameters( bool isgisaxs_style) { AxisParameters phi_params; - phi_params.m_name = "phi_f"; + phi_params.m_name = BA::PHI_AXIS_NAME; phi_params.m_range = TSampledRange<double>(n_phi, phi_f_min, phi_f_max); AxisParameters alpha_params; - alpha_params.m_name = "alpha_f"; + alpha_params.m_name = BA::ALPHA_AXIS_NAME; alpha_params.m_range = TSampledRange<double>(n_alpha, alpha_f_min, alpha_f_max); if (isgisaxs_style) { diff --git a/Core/Algorithms/src/MultiLayerDWBASimulation.cpp b/Core/Algorithms/src/MultiLayerDWBASimulation.cpp index cf169ded429..7cfcedb1e8b 100644 --- a/Core/Algorithms/src/MultiLayerDWBASimulation.cpp +++ b/Core/Algorithms/src/MultiLayerDWBASimulation.cpp @@ -22,6 +22,7 @@ #include "MessageService.h" #include "ScalarSpecularInfoMap.h" #include "MatrixSpecularInfoMap.h" +#include "BornAgainNamespace.h" #include <boost/scoped_ptr.hpp> @@ -271,7 +272,7 @@ void MultiLayerDWBASimulation::collectRTCoefficientsMatrix() std::set<double> MultiLayerDWBASimulation::getAlphaList() const { std::set<double> result; - const IAxis *p_alpha_axis = m_dwba_intensity.getAxis("alpha_f"); + const IAxis *p_alpha_axis = m_dwba_intensity.getAxis(BA::ALPHA_AXIS_NAME); for (size_t i=0; i<p_alpha_axis->getSize(); ++i) { Bin1D alpha_bin = p_alpha_axis->getBin(i); result.insert(alpha_bin.m_lower); @@ -294,7 +295,7 @@ bool MultiLayerDWBASimulation::requiresMatrixRTCoefficients() const std::set<double> MultiLayerDWBASimulation::getPhiList() const { std::set<double> result; - const IAxis *p_phi_axis = m_dwba_intensity.getAxis("phi_f"); + const IAxis *p_phi_axis = m_dwba_intensity.getAxis(BA::PHI_AXIS_NAME); for (size_t i=0; i<p_phi_axis->getSize(); ++i) { Bin1D phi_bin = p_phi_axis->getBin(i); result.insert(phi_bin.m_lower); diff --git a/Core/Algorithms/src/MultiLayerRoughnessDWBASimulation.cpp b/Core/Algorithms/src/MultiLayerRoughnessDWBASimulation.cpp index 1a5c0b3214c..dbbe8758d4b 100644 --- a/Core/Algorithms/src/MultiLayerRoughnessDWBASimulation.cpp +++ b/Core/Algorithms/src/MultiLayerRoughnessDWBASimulation.cpp @@ -16,6 +16,7 @@ #include "MultiLayerRoughnessDWBASimulation.h" #include "MultiLayer.h" #include "DWBADiffuseReflection.h" +#include "BornAgainNamespace.h" MultiLayerRoughnessDWBASimulation::MultiLayerRoughnessDWBASimulation( const MultiLayer *p_multi_layer) @@ -41,9 +42,9 @@ void MultiLayerRoughnessDWBASimulation::run() while ( it_intensity != m_dwba_intensity.end() ) { double phi_f = getDWBAIntensity().getValueOfAxis( - "phi_f", it_intensity.getIndex()); + BA::PHI_AXIS_NAME, it_intensity.getIndex()); double alpha_f = getDWBAIntensity().getValueOfAxis( - "alpha_f", it_intensity.getIndex()); + BA::ALPHA_AXIS_NAME, it_intensity.getIndex()); cvector_t k_f; k_f.setLambdaAlphaPhi(lambda, alpha_f, phi_f); *it_intensity = evaluate(m_ki, k_f, -m_alpha_i, alpha_f); diff --git a/Core/Algorithms/src/Simulation.cpp b/Core/Algorithms/src/Simulation.cpp index 0283808b80e..7f6a435239c 100644 --- a/Core/Algorithms/src/Simulation.cpp +++ b/Core/Algorithms/src/Simulation.cpp @@ -20,6 +20,7 @@ #include "DWBASimulation.h" #include "MessageService.h" #include "OutputDataFunctions.h" +#include "BornAgainNamespace.h" #include "Macros.h" GCC_DIAG_OFF(strict-aliasing); @@ -315,9 +316,9 @@ void Simulation::smearIntensityFromZAxisTilting() OutputData<double>::const_iterator it_clone = p_clone->begin(); while (it_clone != p_clone->end()) { double old_phi = p_clone->getValueOfAxis( - "phi_f", it_clone.getIndex()); + BA::PHI_AXIS_NAME, it_clone.getIndex()); double old_alpha = p_clone->getValueOfAxis( - "alpha_f", it_clone.getIndex()); + BA::ALPHA_AXIS_NAME, it_clone.getIndex()); for (size_t zeta_index=0; zeta_index<zetas.size(); ++zeta_index) { double newphi = old_phi + deltaPhi(old_alpha, old_phi, zetas[zeta_index]); @@ -450,8 +451,8 @@ void Simulation::addToIntensityMaps(DWBASimulation* p_dwba_simulation) void Simulation::addToIntensityMap(double alpha, double phi, double value) { - const IAxis *p_alpha_axis = m_intensity_map.getAxis("alpha_f"); - const IAxis *p_phi_axis = m_intensity_map.getAxis("phi_f"); + const IAxis *p_alpha_axis = m_intensity_map.getAxis(BA::ALPHA_AXIS_NAME); + const IAxis *p_phi_axis = m_intensity_map.getAxis(BA::PHI_AXIS_NAME); std::vector<int> coordinates; coordinates.push_back((int)p_alpha_axis->findClosestIndex(alpha)); coordinates.push_back((int)p_phi_axis->findClosestIndex(phi)); diff --git a/Core/Tools/inc/BornAgainNamespace.h b/Core/Tools/inc/BornAgainNamespace.h new file mode 100644 index 00000000000..15ef7511b64 --- /dev/null +++ b/Core/Tools/inc/BornAgainNamespace.h @@ -0,0 +1,28 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Tools/inc/BornAgainNamespace.h +//! @brief Defines some complex and vector types. +//! +//! @homepage http://apps.jcns.fz-juelich.de/BornAgain +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2013 +//! @authors Scientific Computing Group at MLZ Garching +//! @authors C. Durniak, G. Pospelov, W. Van Herck, J. Wuttke +// +// ************************************************************************** // + +#ifndef BORNAGAINNAMESPACE_H +#define BORNAGAINNAMESPACE_H + + +namespace BA +{ + static const std::string PHI_AXIS_NAME = "phi_f"; + static const std::string ALPHA_AXIS_NAME = "alpha_f"; +} + +#endif // BORNAGAINNAMESPACE_H + + diff --git a/Core/Tools/src/OutputDataReadStrategy.cpp b/Core/Tools/src/OutputDataReadStrategy.cpp index 4b934cc3488..358b6d6a0a3 100644 --- a/Core/Tools/src/OutputDataReadStrategy.cpp +++ b/Core/Tools/src/OutputDataReadStrategy.cpp @@ -17,6 +17,7 @@ #include "Types.h" #include "Exceptions.h" #include "Utils.h" +#include "BornAgainNamespace.h" #include <iostream> #include <fstream> @@ -87,8 +88,8 @@ OutputData<double > *OutputDataReadStreamIMA::readOutputData(std::istream &input OutputData<double> *p_result = new OutputData<double>; // p_result->addAxis(NDetector2d::PHI_AXIS_NAME, x_size, 0.0, double(x_size)); // p_result->addAxis(NDetector2d::ALPHA_AXIS_NAME, y_size, 0.0, double(y_size)); - p_result->addAxis("phi_f", x_size, 0.0, double(x_size)); - p_result->addAxis("alpha_f", y_size, 0.0, double(y_size)); + p_result->addAxis(BA::PHI_AXIS_NAME, x_size, 0.0, double(x_size)); + p_result->addAxis(BA::ALPHA_AXIS_NAME, y_size, 0.0, double(y_size)); p_result->setAllTo(0.0); OutputData<double>::iterator it = p_result->begin(); @@ -147,10 +148,10 @@ OutputData<double > *OutputDataReadStreamV1::readOutputData(std::istream &input_ // creating output data // AxisDouble xaxis(NDetector2d::PHI_AXIS_NAME); - AxisDouble xaxis("phi_f"); + AxisDouble xaxis(BA::PHI_AXIS_NAME); for(size_t i=0; i<buff_xaxis.size(); ++i) xaxis.push_back(buff_xaxis[i]); // AxisDouble yaxis(NDetector2d::ALPHA_AXIS_NAME); - AxisDouble yaxis("alpha_f"); + AxisDouble yaxis(BA::ALPHA_AXIS_NAME); for(size_t i=0; i<buff_yaxis.size(); ++i) yaxis.push_back(buff_yaxis[i]); OutputData<double > *p_result = new OutputData<double>; diff --git a/Tests/UnitTests/TestCore/ChiSquaredModuleTest.h b/Tests/UnitTests/TestCore/ChiSquaredModuleTest.h index 5be0834c8df..219dff8fa7d 100644 --- a/Tests/UnitTests/TestCore/ChiSquaredModuleTest.h +++ b/Tests/UnitTests/TestCore/ChiSquaredModuleTest.h @@ -4,6 +4,7 @@ #include "ChiSquaredModule.h" #include "IFittingDataSelector.h" #include "ISquaredFunction.h" +#include "BornAgainNamespace.h" #include "gtest/gtest.h" @@ -23,8 +24,8 @@ class ChiSquaredModuleTest : public ::testing::Test ChiSquaredModuleTest::ChiSquaredModuleTest() { - m_real_data.addAxis("phi_f", 10, 0.0, 10.0); - m_real_data.addAxis("alpha_f", 10, 0.0, 10.0); + m_real_data.addAxis(BA::PHI_AXIS_NAME, 10, 0.0, 10.0); + m_real_data.addAxis(BA::ALPHA_AXIS_NAME, 10, 0.0, 10.0); m_real_data.setAllTo(1.0); m_simul_data.copyFrom(m_real_data); m_simul_data.setAllTo(1.1); @@ -86,8 +87,8 @@ TEST_F(ChiSquaredModuleTest, IsGISAXSLikeModule) OutputData<double> real_data; OutputData<double> simul_data; const size_t nbins(5); - real_data.addAxis("phi_f", nbins, 0.0, 1.0); - simul_data.addAxis("phi_f", nbins, 0.0, 1.0); + real_data.addAxis(BA::PHI_AXIS_NAME, nbins, 0.0, 1.0); + simul_data.addAxis(BA::PHI_AXIS_NAME, nbins, 0.0, 1.0); const double a_real_data[nbins] = {1., 10., 100., 10., 1. }; const double a_simul_data[nbins] = {10., 100., 1000., 100., 10. }; OutputData<double >::iterator it_real = real_data.begin(); diff --git a/Tests/UnitTests/TestCore/InstrumentTest.h b/Tests/UnitTests/TestCore/InstrumentTest.h index b5c9fc02bd1..322895ec162 100644 --- a/Tests/UnitTests/TestCore/InstrumentTest.h +++ b/Tests/UnitTests/TestCore/InstrumentTest.h @@ -2,6 +2,7 @@ #define INSTRUMENTTEST_H_ #include "Instrument.h" +#include "BornAgainNamespace.h" class InstrumentTest : public ::testing::Test { @@ -16,7 +17,7 @@ class InstrumentTest : public ::testing::Test InstrumentTest::InstrumentTest() { - m_data.addAxis("phi_f", 10, 0., 10.); + m_data.addAxis(BA::PHI_AXIS_NAME, 10, 0., 10.); m_data.addAxis("theta_f", 20, 0., 20.); } diff --git a/Tests/UnitTests/TestCore/SimulationTest.h b/Tests/UnitTests/TestCore/SimulationTest.h index 4505e0fadab..f749e22b09d 100644 --- a/Tests/UnitTests/TestCore/SimulationTest.h +++ b/Tests/UnitTests/TestCore/SimulationTest.h @@ -6,6 +6,7 @@ #include "Beam.h" #include "MultiLayer.h" #include "ISampleBuilder.h" +#include "BornAgainNamespace.h" #include <cmath> @@ -33,7 +34,7 @@ class SimulationTest : public ::testing::Test SimulationTest::SimulationTest() { - test_data.addAxis("phi_f", 10, 0., 10.); + test_data.addAxis(BA::PHI_AXIS_NAME, 10, 0., 10.); test_data.addAxis("theta_f", 20, 0., 20.); test_data.setAllTo(2.0); } -- GitLab