From a36c2ca99bae8c32b2954a5a6e403bfe5210ea7d Mon Sep 17 00:00:00 2001
From: Walter Van Herck <w.van.herck@fz-juelich.de>
Date: Thu, 20 Dec 2012 10:49:53 +0100
Subject: [PATCH] Fixed compile errors from Ali's branch

---
 App/src/StandardSamples.cpp                | 182 ++++++++++-----------
 Core/Core.pro                              |  28 ++--
 Core/FormFactors/inc/FormFactorBox.h       |   2 +-
 Core/FormFactors/inc/FormFactorEllipsoid.h |   2 +-
 Core/FormFactors/inc/FormFactorPrism6.h    |   2 +-
 Core/FormFactors/inc/FormFactorSphere.h    |   4 +-
 Core/FormFactors/inc/FormFactors.h         |   1 +
 Core/FormFactors/src/FormFactorSphere.cpp  | 130 +++++++--------
 8 files changed, 175 insertions(+), 176 deletions(-)

diff --git a/App/src/StandardSamples.cpp b/App/src/StandardSamples.cpp
index b27485bde8a..86e1e640049 100644
--- a/App/src/StandardSamples.cpp
+++ b/App/src/StandardSamples.cpp
@@ -238,56 +238,56 @@ ISample *StandardSamples::MultilayerOffspecTestcase2b()
 /* ************************************************************************* */
 // Functional test: Box
 /* *************************************************************************/
-ISample *StandardSamples::FormFactors_Box()
-{
-    MultiLayer *p_multi_layer = new MultiLayer();
-    complex_t n_air(1.0, 0.0);
-    complex_t n_substrate(1.0-4e-6, 2e-8);
-    complex_t n_particle(1.0-5e-4, 2e-8);
-    const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air);
-    const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate);
-    Layer air_layer;
-    air_layer.setMaterial(p_air_material);
-    Layer substrate_layer;
-    substrate_layer.setMaterial(p_substrate_material);
-    ParticleDecoration particle_decoration(
-                new Particle(n_particle, new FormFactorBox(5.0*Units::nanometer, 5.0*Units::nanometer, 5.0*Units::nanometer) ) );
-
-    particle_decoration.addInterferenceFunction(new InterferenceFunctionNone());
-    LayerDecorator air_layer_decorator(air_layer, particle_decoration);
-
-    p_multi_layer->addLayer(air_layer_decorator);
-    p_multi_layer->addLayer(substrate_layer);
-    return p_multi_layer;
-}
-
+//ISample *StandardSamples::FormFactors_Box()
+//{
+//    MultiLayer *p_multi_layer = new MultiLayer();
+//    complex_t n_air(1.0, 0.0);
+//    complex_t n_substrate(1.0-4e-6, 2e-8);
+//    complex_t n_particle(1.0-5e-4, 2e-8);
+//    const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air);
+//    const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate);
+//    Layer air_layer;
+//    air_layer.setMaterial(p_air_material);
+//    Layer substrate_layer;
+//    substrate_layer.setMaterial(p_substrate_material);
+//    ParticleDecoration particle_decoration(
+//                new Particle(n_particle, new FormFactorBox(5.0*Units::nanometer, 5.0*Units::nanometer, 5.0*Units::nanometer) ) );
+//
+//    particle_decoration.addInterferenceFunction(new InterferenceFunctionNone());
+//    LayerDecorator air_layer_decorator(air_layer, particle_decoration);
+//
+//    p_multi_layer->addLayer(air_layer_decorator);
+//    p_multi_layer->addLayer(substrate_layer);
+//    return p_multi_layer;
+//}
+//
 
 
 /* ************************************************************************* */
 // Functional test: Ellipsoid
 /* *************************************************************************/
-ISample *StandardSamples::FormFactors_Ellipsoid()
-{
-    MultiLayer *p_multi_layer = new MultiLayer();
-    complex_t n_air(1.0, 0.0);
-    complex_t n_substrate(1.0-4e-6, 2e-8);
-    complex_t n_particle(1.0-5e-4, 2e-8);
-    const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air);
-    const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate);
-    Layer air_layer;
-    air_layer.setMaterial(p_air_material);
-    Layer substrate_layer;
-    substrate_layer.setMaterial(p_substrate_material);
-    ParticleDecoration particle_decoration(
-                new Particle(n_particle, new FormFactorEllipsoid(4.0*Units::nanometer, 5.0*Units::nanometer, 6.0*Units::nanometer) ) );
-
-    particle_decoration.addInterferenceFunction(new InterferenceFunctionNone());
-    LayerDecorator air_layer_decorator(air_layer, particle_decoration);
-
-    p_multi_layer->addLayer(air_layer_decorator);
-    p_multi_layer->addLayer(substrate_layer);
-    return p_multi_layer;
-}
+//ISample *StandardSamples::FormFactors_Ellipsoid()
+//{
+//    MultiLayer *p_multi_layer = new MultiLayer();
+//    complex_t n_air(1.0, 0.0);
+//    complex_t n_substrate(1.0-4e-6, 2e-8);
+//    complex_t n_particle(1.0-5e-4, 2e-8);
+//    const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air);
+//    const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate);
+//    Layer air_layer;
+//    air_layer.setMaterial(p_air_material);
+//    Layer substrate_layer;
+//    substrate_layer.setMaterial(p_substrate_material);
+//    ParticleDecoration particle_decoration(
+//                new Particle(n_particle, new FormFactorEllipsoid(4.0*Units::nanometer, 5.0*Units::nanometer, 6.0*Units::nanometer) ) );
+//
+//    particle_decoration.addInterferenceFunction(new InterferenceFunctionNone());
+//    LayerDecorator air_layer_decorator(air_layer, particle_decoration);
+//
+//    p_multi_layer->addLayer(air_layer_decorator);
+//    p_multi_layer->addLayer(substrate_layer);
+//    return p_multi_layer;
+//}
 
 
 
@@ -295,58 +295,58 @@ ISample *StandardSamples::FormFactors_Ellipsoid()
 // Functional test: Prism6
 /* *************************************************************************/
 
-ISample *StandardSamples::FormFactors_Prism6()
-{
-    MultiLayer *p_multi_layer = new MultiLayer();
-    complex_t n_air(1.0, 0.0);
-    complex_t n_substrate(1.0-5e-6, 2e-8);
-    complex_t n_particle(1.0-6e-4, 2e-8);
-    const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air);
-    const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate);
-    Layer air_layer;
-    air_layer.setMaterial(p_air_material);
-    Layer substrate_layer;
-    substrate_layer.setMaterial(p_substrate_material);
-    ParticleDecoration particle_decoration(
-                new Particle(n_particle, new FormFactorPrism6(4.0*Units::nanometer, 5.0*Units::nanometer) ) );
-
-    particle_decoration.addInterferenceFunction(new InterferenceFunctionNone());
-    LayerDecorator air_layer_decorator(air_layer, particle_decoration);
-
-    p_multi_layer->addLayer(air_layer_decorator);
-    p_multi_layer->addLayer(substrate_layer);
-    return p_multi_layer;
-}
+//ISample *StandardSamples::FormFactors_Prism6()
+//{
+//    MultiLayer *p_multi_layer = new MultiLayer();
+//    complex_t n_air(1.0, 0.0);
+//    complex_t n_substrate(1.0-5e-6, 2e-8);
+//    complex_t n_particle(1.0-6e-4, 2e-8);
+//    const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air);
+//    const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate);
+//    Layer air_layer;
+//    air_layer.setMaterial(p_air_material);
+//    Layer substrate_layer;
+//    substrate_layer.setMaterial(p_substrate_material);
+//    ParticleDecoration particle_decoration(
+//                new Particle(n_particle, new FormFactorPrism6(4.0*Units::nanometer, 5.0*Units::nanometer) ) );
+//
+//    particle_decoration.addInterferenceFunction(new InterferenceFunctionNone());
+//    LayerDecorator air_layer_decorator(air_layer, particle_decoration);
+//
+//    p_multi_layer->addLayer(air_layer_decorator);
+//    p_multi_layer->addLayer(substrate_layer);
+//    return p_multi_layer;
+//}
 
 
 /* ************************************************************************* */
 // Functional test: Full Sphere
 /* *************************************************************************/
 
-ISample *StandardSamples::FormFactors_FullSphere()
-{
-    MultiLayer *p_multi_layer = new MultiLayer();
-    complex_t n_air(1.0, 0.0);
-    complex_t n_substrate(1.0-3e-6, 2e-8);
-    complex_t n_particle(1.0-5e-4, 2e-8);
-    const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air);
-    const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate);
-    Layer air_layer;
-    air_layer.setMaterial(p_air_material);
-    Layer substrate_layer;
-    substrate_layer.setMaterial(p_substrate_material);
-    ParticleDecoration particle_decoration(
-                new Particle(n_particle, new FormFactorFullSphere(4.0*Units::nanometer) ) );
-
-    particle_decoration.addInterferenceFunction(new InterferenceFunctionNone());
-    LayerDecorator air_layer_decorator(air_layer, particle_decoration);
-
-    p_multi_layer->addLayer(air_layer_decorator);
-    p_multi_layer->addLayer(substrate_layer);
-    return p_multi_layer;
-}
-
-
+//ISample *StandardSamples::FormFactors_FullSphere()
+//{
+//    MultiLayer *p_multi_layer = new MultiLayer();
+//    complex_t n_air(1.0, 0.0);
+//    complex_t n_substrate(1.0-3e-6, 2e-8);
+//    complex_t n_particle(1.0-5e-4, 2e-8);
+//    const IMaterial *p_air_material = MaterialManager::instance().addHomogeneousMaterial("Air", n_air);
+//    const IMaterial *p_substrate_material = MaterialManager::instance().addHomogeneousMaterial("Substrate", n_substrate);
+//    Layer air_layer;
+//    air_layer.setMaterial(p_air_material);
+//    Layer substrate_layer;
+//    substrate_layer.setMaterial(p_substrate_material);
+//    ParticleDecoration particle_decoration(
+//                new Particle(n_particle, new FormFactorFullSphere(4.0*Units::nanometer) ) );
+//
+//    particle_decoration.addInterferenceFunction(new InterferenceFunctionNone());
+//    LayerDecorator air_layer_decorator(air_layer, particle_decoration);
+//
+//    p_multi_layer->addLayer(air_layer_decorator);
+//    p_multi_layer->addLayer(substrate_layer);
+//    return p_multi_layer;
+//}
+//
+//
 
 
 
diff --git a/Core/Core.pro b/Core/Core.pro
index 787ec2e0648..c1b63cee59a 100644
--- a/Core/Core.pro
+++ b/Core/Core.pro
@@ -5,7 +5,7 @@ TARGET   = ScattCore
 TEMPLATE = lib
 CONFIG  += plugin # to remove versions from file name
 QT      -= core gui
-CONFIG  += BUILD_PYTHON_BOOST_MODULE # to  generate python interface
+#CONFIG  += BUILD_PYTHON_BOOST_MODULE # to  generate python interface
 
 # including common project properties
 include($$PWD/../shared.pri)
@@ -42,18 +42,22 @@ SOURCES += \
     Algorithms/src/OpticalFresnel.cpp \
     Algorithms/src/ResolutionFunction2DSimple.cpp \
     \
+    FormFactors/src/FormFactorBox.cpp \
+    FormFactors/src/FormFactorCrystal.cpp \
+    FormFactors/src/FormFactorCylinder.cpp \
+    FormFactors/src/FormFactorDecoratorTransformation.cpp \
     FormFactors/src/FormFactorDWBA.cpp \
     FormFactors/src/FormFactorDWBAConstZ.cpp \
-    FormFactors/src/FormFactorDecoratorTransformation.cpp \
-    FormFactors/src/FormFactorCylinder.cpp \
+    FormFactors/src/FormFactorEllipsoid.cpp \
     FormFactors/src/FormFactorFullSphere.cpp \
     FormFactors/src/FormFactorGauss.cpp \
+    FormFactors/src/FormFactorLorentz.cpp \
     FormFactors/src/FormFactorParallelepiped.cpp \
     FormFactors/src/FormFactorPrism3.cpp \
+    FormFactors/src/FormFactorPrism6.cpp \
     FormFactors/src/FormFactorPyramid.cpp \
-    FormFactors/src/FormFactorLorentz.cpp \
+    FormFactors/src/FormFactorSphere.cpp \
     FormFactors/src/FormFactorWeighted.cpp \
-    FormFactors/src/FormFactorCrystal.cpp \
     FormFactors/src/IFormFactorBorn.cpp \
     \
     Geometry/src/BasicVector3D.cpp \
@@ -154,24 +158,28 @@ HEADERS += \
     Algorithms/inc/ResolutionFunction2DSimple.h \
     Algorithms/inc/ThreadInfo.h \
     \
-    FormFactors/inc/FormFactorDWBA.h \
-    FormFactors/inc/FormFactorDWBAConstZ.h \
+    FormFactors/inc/FormFactorBox.h \
+    FormFactors/inc/FormFactorCrystal.h \
+    FormFactors/inc/FormFactorCylinder.h \
     FormFactors/inc/FormFactorDecoratorDebyeWaller.h \
     FormFactors/inc/FormFactorDecoratorFactor.h \
     FormFactors/inc/FormFactorDecoratorMultiPositionFactor.h \
     FormFactors/inc/FormFactorDecoratorPositionFactor.h \
     FormFactors/inc/FormFactorDecoratorRefractiveIndex.h \
     FormFactors/inc/FormFactorDecoratorTransformation.h \
-    FormFactors/inc/FormFactorCylinder.h \
+    FormFactors/inc/FormFactorDWBA.h \
+    FormFactors/inc/FormFactorDWBAConstZ.h \
+    FormFactors/inc/FormFactorEllipsoid.h \
     FormFactors/inc/FormFactorFullSphere.h \
     FormFactors/inc/FormFactorGauss.h \
+    FormFactors/inc/FormFactorLorentz.h \
     FormFactors/inc/FormFactorParallelepiped.h \
     FormFactors/inc/FormFactorPrism3.h \
+    FormFactors/inc/FormFactorPrism6.h \
     FormFactors/inc/FormFactorPyramid.h \
-    FormFactors/inc/FormFactorLorentz.h \
     FormFactors/inc/FormFactors.h \
+    FormFactors/inc/FormFactorSphere.h \
     FormFactors/inc/FormFactorSphereGaussianRadius.h \
-    FormFactors/inc/FormFactorCrystal.h \
     FormFactors/inc/FormFactorWeighted.h \
     FormFactors/inc/IFormFactor.h \
     FormFactors/inc/IFormFactorBorn.h \
diff --git a/Core/FormFactors/inc/FormFactorBox.h b/Core/FormFactors/inc/FormFactorBox.h
index 4a374c771f4..6d219ba47bc 100644
--- a/Core/FormFactors/inc/FormFactorBox.h
+++ b/Core/FormFactors/inc/FormFactorBox.h
@@ -15,7 +15,7 @@
 //! @author Scientific Computing Group at FRM II
 //! @date   Oct 1, 2012
 
-#include "IFormFactor.h"
+#include "IFormFactorBorn.h"
 #include "IStochasticParameter.h"
 
 class FormFactorBox : public IFormFactorBorn
diff --git a/Core/FormFactors/inc/FormFactorEllipsoid.h b/Core/FormFactors/inc/FormFactorEllipsoid.h
index 8c00a00655a..08bf274814f 100644
--- a/Core/FormFactors/inc/FormFactorEllipsoid.h
+++ b/Core/FormFactors/inc/FormFactorEllipsoid.h
@@ -14,7 +14,7 @@
 //! @author Scientific Computing Group at FRM II
 //! @date   Oct 1, 2012
 
-#include "IFormFactor.h"
+#include "IFormFactorBorn.h"
 #include "IStochasticParameter.h"
 
 class FormFactorEllipsoid : public IFormFactorBorn
diff --git a/Core/FormFactors/inc/FormFactorPrism6.h b/Core/FormFactors/inc/FormFactorPrism6.h
index a6d454bb39d..3c6afa11bec 100644
--- a/Core/FormFactors/inc/FormFactorPrism6.h
+++ b/Core/FormFactors/inc/FormFactorPrism6.h
@@ -13,7 +13,7 @@
 //! @author Scientific Computing Group at FRM II
 //! @date   Jun 27, 2012
 
-#include "IFormFactor.h"
+#include "IFormFactorBorn.h"
 #include "IStochasticParameter.h"
 
 
diff --git a/Core/FormFactors/inc/FormFactorSphere.h b/Core/FormFactors/inc/FormFactorSphere.h
index eabf94893e9..c834460e8da 100644
--- a/Core/FormFactors/inc/FormFactorSphere.h
+++ b/Core/FormFactors/inc/FormFactorSphere.h
@@ -14,7 +14,7 @@
 //! @author Scientific Computing Group at FRM II
 //! @date   03.07.2012
 
-#include "IFormFactor.h"
+#include "IFormFactorBorn.h"
 #include "IStochasticParameter.h"
 
 
@@ -36,7 +36,7 @@ public:
 
     virtual int getNumberOfStochasticParameters() const { return 3; }
 
-    virtual double getHeight() const { return m_radius, m_height; }
+    virtual double getHeight() const { return m_height; }
 
 protected:
     virtual complex_t evaluate_for_q(const cvector_t &q) const;
diff --git a/Core/FormFactors/inc/FormFactors.h b/Core/FormFactors/inc/FormFactors.h
index b58e7431798..5d4754d0142 100644
--- a/Core/FormFactors/inc/FormFactors.h
+++ b/Core/FormFactors/inc/FormFactors.h
@@ -14,6 +14,7 @@
 //! @author Scientific Computing Group at FRM II
 //! @date   Jun 27, 2012
 
+#include "FormFactorBox.h"
 #include "FormFactorPyramid.h"
 #include "FormFactorCylinder.h"
 #include "FormFactorPrism3.h"
diff --git a/Core/FormFactors/src/FormFactorSphere.cpp b/Core/FormFactors/src/FormFactorSphere.cpp
index 3242a92c790..d00e985023b 100644
--- a/Core/FormFactors/src/FormFactorSphere.cpp
+++ b/Core/FormFactors/src/FormFactorSphere.cpp
@@ -45,73 +45,63 @@ FormFactorSphere* FormFactorSphere::clone() const
 
 complex_t FormFactorSphere::evaluate_for_q(const cvector_t &q) const
 {
-//    double R = mp_radius->getCurrent();
-    complex_t qx = q.x();
-    complex_t qy = q.y();
-    complex_t qz = q.z();
-    double R = m_radius;
-    double H = m_height;
-    double Z = .4;
+////    double R = mp_radius->getCurrent();
+//    complex_t qx = q.x();
+//    complex_t qy = q.y();
+//    complex_t qz = q.z();
+//    double R = m_radius;
+//    double H = m_height;
+//    double Z = .4;
+//
+//    complex_t iqzZ  = complex_t(0.0, 1.0)*qz*Z;
+//    complex_t z_part= std::exp(iqzZ);
+////  complex_t iqz(H-R) = complex_t(0.0, 1.0)*qz*(H-R);
+//    complex_t a_part = std::exp(iqz(H -R));
+//
+//
+//
+//    complex_t Rz     = pow((R*R-z*z), 1/2);
+//    complex_t q_parallel = pow((qx*qx - qy*qy), 1/2);
+
+//    complex_t qR = std::sqrt( std::norm(q.x()) + std::norm(q.y()) + std::norm(qz) )*R;
+//    complex_t radial;
+//    if (std::abs(qR) < Numeric::double_epsilon) {
+//        radial = volume;
+//    }
+//    else {
+//
+//     /*
+//     double zl = R-H;
+//       double zu = R;
+//       double rzl = pow((r*r - z*z), 1/2)
+//
+//               fzl= rzl;
+//               fzu = rzu;
+//
+//            double fz = -H*(fzl+fzu)/2;
+//
+//         radial = exp abc _part 2.pi.x) J1(q_parallel * Rz)
+//
+//         // way1 (standard)
+//         //radial = 3*volume*(std::sin(qR) - qR*std::cos(qR))/(qR*qR*qR);
+//
+//         // way2 (fast)
+//
+//
+//        // way3 (experimental)
+//        // complex_t xsin, xcos;
+//        // MathFunctions::FastSinCos(qR, xsin, xcos);
+//        // radial = 3*volume*(xsin - qR*xcos)/(qR*qR*qR);
+//
+//
+//        */
+//    }
+//
+//    return radial*z_part;
+
+    (void)q;
+    return complex_t(0.0, 0.0);
 
-    complex_t iqzZ  = complex_t(0.0, 1.0)*qz*Z;
-    complex_t z_part= std::exp(iqzZ);
-//  complex_t iqz(H-R) = complex_t(0.0, 1.0)*qz*(H-R);
-    complex_t a_part = std::exp(iqz(H -R));
-
-
-
-    complex_t Rz     = pow((R*R-z*z), 1/2);
-    complex_t q_parallel = pow((qx*qx - qy*qy), 1/2);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    complex_t qR = std::sqrt( std::norm(q.x()) + std::norm(q.y()) + std::norm(qz) )*R;
-    complex_t radial;
-    if (std::abs(qR) < Numeric::double_epsilon) {
-        radial = volume;
-    }
-    else {
-
-     /*
-     double zl = R-H;
-       double zu = R;
-       double rzl = pow((r*r - z*z), 1/2)
-
-               fzl= rzl;
-               fzu = rzu;
-
-            double fz = -H*(fzl+fzu)/2;
-
-         radial = exp abc _part 2.pi.x) J1(q_parallel * Rz)
-
-         // way1 (standard)
-         //radial = 3*volume*(std::sin(qR) - qR*std::cos(qR))/(qR*qR*qR);
-
-         // way2 (fast)
-
-
-        // way3 (experimental)
-        // complex_t xsin, xcos;
-        // MathFunctions::FastSinCos(qR, xsin, xcos);
-        // radial = 3*volume*(xsin - qR*xcos)/(qR*qR*qR);
-
-
-        */
-    }
-
-    return radial*z_part;
 }
 
 
@@ -125,7 +115,7 @@ void FormFactorSphere::print(std::ostream &ostr) const
 }
 
 
-for (zk=0;zk<=2;zk+0.01) {
-
-    k[zk]=zk
-}
+//for (zk=0;zk<=2;zk+0.01) {
+//
+//    k[zk]=zk
+//}
-- 
GitLab