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