diff --git a/App/inc/TestDWBAFormFactor.h b/App/inc/TestDWBAFormFactor.h
index cdd187307bbc73894abec2f7f7b7fdc73cd8522e..b50c98cab89ebf142e54a31de369ae17baa594ce 100644
--- a/App/inc/TestDWBAFormFactor.h
+++ b/App/inc/TestDWBAFormFactor.h
@@ -36,6 +36,7 @@ private:
 
 complex_t reflection_fresnel(double alpha_i);
 complex_t transmission_fresnel(double alpha_i);
+void initialize_angles_sine(NamedVector<double> *p_axis, double start, double end, size_t size);
 
 
 #endif /* TESTDWBAFORMFACTOR_H_ */
diff --git a/App/src/TestDWBAFormFactor.cpp b/App/src/TestDWBAFormFactor.cpp
index babba7f699be27375da98a36d0edd1f97174e2a3..14a46ed8e1831e2e778396d393af1917e24d575e 100644
--- a/App/src/TestDWBAFormFactor.cpp
+++ b/App/src/TestDWBAFormFactor.cpp
@@ -7,6 +7,7 @@
 
 #include "TestDWBAFormFactor.h"
 #include "Types.h"
+#include "Units.h"
 
 #include "TCanvas.h"
 #include "TH2.h"
@@ -19,13 +20,15 @@
 
 
 TestDWBAFormFactor::TestDWBAFormFactor()
-    : m_dwba_ff(new FormFactorCylinder(50.0, 50.0))
+    : m_dwba_ff(new FormFactorCylinder(5*Units::nanometer, 5*Units::nanometer))
 {
     m_dwba_ff.setReflectionFunction(new DoubleToComplexFunctionWrapper(reflection_fresnel));
     m_dwba_ff.setTransmissionFunction(new DoubleToComplexFunctionWrapper(transmission_fresnel));
     mp_intensity_output = new OutputData<double>();
-    NamedVectorBase *p_y_axis = new NamedVector<double>(std::string("detector y-axis"), 0.0, 2.0, 100);
-    NamedVectorBase *p_z_axis = new NamedVector<double>(std::string("detector z-axis"), 0.0, 2.0, 100);
+    NamedVector<double> *p_y_axis = new NamedVector<double>(std::string("detector y-axis"));
+    initialize_angles_sine(p_y_axis, 0.0, 2.0, 100);
+    NamedVector<double> *p_z_axis = new NamedVector<double>(std::string("detector z-axis"));
+    initialize_angles_sine(p_z_axis, 0.0, 2.0, 100);
     mp_intensity_output->addAxis(p_y_axis);
     mp_intensity_output->addAxis(p_z_axis);
 }
@@ -40,8 +43,10 @@ void TestDWBAFormFactor::execute()
     MultiIndex& index = mp_intensity_output->getIndex();
     NamedVector<double> *p_y_axis = dynamic_cast<NamedVector<double>*>(mp_intensity_output->getAxis("detector y-axis"));
     NamedVector<double> *p_z_axis = dynamic_cast<NamedVector<double>*>(mp_intensity_output->getAxis("detector z-axis"));
-    double lambda = 1.0;
+    double lambda = 1*Units::angstrom;
     double alpha_i = 0.2*M_PI/180.0;
+    complex_t n_island(1.0-6e-4, +2e-8);
+    double normalizing_factor = std::norm((complex_t(1.0,0.0) - n_island*n_island)*M_PI/lambda/lambda);
     kvector_t k_i;
     k_i.setLambdaAlphaPhi(lambda, -alpha_i, 0.0);
     while (!index.endPassed())
@@ -52,7 +57,7 @@ void TestDWBAFormFactor::execute()
         double alpha_f = M_PI*(*p_z_axis)[index_z]/180.0;
         kvector_t k_f;
         k_f.setLambdaAlphaPhi(lambda, alpha_f, phi_f);
-        mp_intensity_output->currentValue() = std::pow(std::abs(m_dwba_ff.evaluate(k_i, k_f)),2);
+        mp_intensity_output->currentValue() = normalizing_factor*std::pow(std::abs(m_dwba_ff.evaluate(k_i, k_f)),2);
         ++index;
     }
     draw();
@@ -94,8 +99,9 @@ void TestDWBAFormFactor::draw()
     gStyle->SetPalette(1);
     gStyle->SetOptStat(0);
     gPad->SetLogz();
-    p_hist2D->SetMinimum(1e5);
-    p_hist2D->Draw("CONT4");
+    gPad->SetRightMargin(0.12);
+    p_hist2D->SetMinimum(1.0);
+    p_hist2D->Draw("CONT4 Z");
 }
 
 void TestDWBAFormFactor::write()
@@ -117,7 +123,7 @@ void TestDWBAFormFactor::write()
 
 complex_t reflection_fresnel(double alpha_i)
 {
-    complex_t refraction_index(1.0-6e-6, +2e-8);
+    complex_t refraction_index(1.0-6e-6, 2e-8);
     complex_t cos_alpha_0_squared = std::cos(alpha_i)*std::cos(alpha_i);
     complex_t f0 = std::sqrt(complex_t(1.0, 0.0) - cos_alpha_0_squared);
     complex_t f1 = std::sqrt(refraction_index*refraction_index - cos_alpha_0_squared);
@@ -129,3 +135,14 @@ complex_t transmission_fresnel(double alpha_i)
     (void)alpha_i;
     return complex_t(1.0, 0.0);
 }
+
+// For IsGISAXS comparison:
+void initialize_angles_sine(NamedVector<double> *p_axis, double start, double end, size_t size) {
+	double start_sin = std::sin(start*M_PI/180);
+	double end_sin = std::sin(end*M_PI/180);
+	double step = (end_sin-start_sin)/(size-1);
+	for(size_t i=0; i<size; ++i) {
+		p_axis->push_back(std::asin(start_sin + step*i)*180/M_PI);
+	}
+	return;
+}
diff --git a/Core/inc/IFormFactor.h b/Core/inc/IFormFactor.h
index d666527ce24a28bbdfb3b10898bacbc4d637b059..7c5e22447a05cb2beb37f28cec0b858519143af9 100644
--- a/Core/inc/IFormFactor.h
+++ b/Core/inc/IFormFactor.h
@@ -33,7 +33,7 @@ public:
 
     virtual complex_t evaluate(kvector_t k_i, kvector_t k_f) const
     {
-    	return evaluate_for_q(k_f - k_i);
+    	return evaluate_for_q(k_i - k_f);
     }
 protected:
     virtual complex_t evaluate_for_q(kvector_t q) const=0;