diff --git a/Core/FormFactors/inc/FormFactorLongBox.h b/Core/FormFactors/inc/FormFactorLongBoxGauss.h
similarity index 70%
rename from Core/FormFactors/inc/FormFactorLongBox.h
rename to Core/FormFactors/inc/FormFactorLongBoxGauss.h
index cd4846c1f0456c56e5a396bcf34f51fdb6e54200..3e7ec3dc3b6c548806a69a582a3f575009900490 100644
--- a/Core/FormFactors/inc/FormFactorLongBox.h
+++ b/Core/FormFactors/inc/FormFactorLongBoxGauss.h
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      FormFactors/inc/FormFactorLongBox.h
-//! @brief     Defines class FormFactorLongBox.
+//! @file      FormFactors/inc/FormFactorLongBoxGauss.h
+//! @brief     Defines class FormFactorLongBoxGauss.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -13,8 +13,8 @@
 //
 // ************************************************************************** //
 
-#ifndef FORMFACTORLONGBOX_H
-#define FORMFACTORLONGBOX_H
+#ifndef FORMFACTORLONGBOXGAUSS_H
+#define FORMFACTORLONGBOXGAUSS_H
 
 #include "IFormFactorBorn.h"
 
@@ -22,16 +22,16 @@
 //! @ingroup formfactors
 //! @brief The formfactor for a long rectangular box.
 
-class BA_CORE_API_ FormFactorLongBox : public IFormFactorBorn
+class BA_CORE_API_ FormFactorLongBoxGauss : public IFormFactorBorn
 {
 public:
     //! @brief Box constructor
     //! @param length of Box's base
     //! @param width of Box's base
     //! @param height of Box
-    FormFactorLongBox( double length, double width, double height);
+    FormFactorLongBoxGauss( double length, double width, double height);
 
-    FormFactorLongBox *clone() const;
+    FormFactorLongBoxGauss *clone() const;
 
     virtual void accept(ISampleVisitor *visitor) const;
 
@@ -59,26 +59,26 @@ private:
     double m_height;
 };
 
-inline double FormFactorLongBox::getLength() const
+inline double FormFactorLongBoxGauss::getLength() const
 {
     return m_length;
 }
 
-inline double FormFactorLongBox::getHeight() const
+inline double FormFactorLongBoxGauss::getHeight() const
 {
     return m_height;
 }
 
-inline double FormFactorLongBox::getRadius() const
+inline double FormFactorLongBoxGauss::getRadius() const
 {
     return m_length/2.0;
 }
 
-inline double FormFactorLongBox::getWidth() const
+inline double FormFactorLongBoxGauss::getWidth() const
 {
     return m_width;
 }
 
-#endif // FORMFACTORLONGBOX_H
+#endif // FORMFACTORLONGBOXGAUSS_H
 
 
diff --git a/Core/FormFactors/inc/FormFactorLongBoxLorentz.h b/Core/FormFactors/inc/FormFactorLongBoxLorentz.h
new file mode 100644
index 0000000000000000000000000000000000000000..d901c1a089d03a04d398cdacd7a020eb431c9c08
--- /dev/null
+++ b/Core/FormFactors/inc/FormFactorLongBoxLorentz.h
@@ -0,0 +1,84 @@
+// ************************************************************************** //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      FormFactors/inc/FormFactorLongBoxLorentz.h
+//! @brief     Defines class FormFactorLongBoxLorentz.
+//!
+//! @homepage  http://www.bornagainproject.org
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Jülich GmbH 2015
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke
+//
+// ************************************************************************** //
+
+#ifndef FORMFACTORLONGBOXLORENTZ_H
+#define FORMFACTORLONGBOXLORENTZ_H
+
+#include "IFormFactorBorn.h"
+
+//! @class FormFactorBox
+//! @ingroup formfactors
+//! @brief The formfactor for a long rectangular box.
+
+class BA_CORE_API_ FormFactorLongBoxLorentz : public IFormFactorBorn
+{
+public:
+    //! @brief Box constructor
+    //! @param length of Box's base
+    //! @param width of Box's base
+    //! @param height of Box
+    FormFactorLongBoxLorentz( double length, double width, double height);
+
+    FormFactorLongBoxLorentz *clone() const;
+
+    virtual void accept(ISampleVisitor *visitor) const;
+
+    //! Returns length of Box
+    double getLength() const;
+
+    //! Returns height of Box
+    double getHeight() const;
+
+    //! Returns radius of Box
+    virtual double getRadius() const;
+
+    //! Returns width of Box
+    double getWidth() const;
+
+    virtual complex_t evaluate_for_q(const cvector_t& q) const;
+
+protected:
+    virtual bool check_initialization() const;
+    virtual void init_parameters();
+
+private:
+    double m_length;
+    double m_width;
+    double m_height;
+};
+
+inline double FormFactorLongBoxLorentz::getLength() const
+{
+    return m_length;
+}
+
+inline double FormFactorLongBoxLorentz::getHeight() const
+{
+    return m_height;
+}
+
+inline double FormFactorLongBoxLorentz::getRadius() const
+{
+    return m_length/2.0;
+}
+
+inline double FormFactorLongBoxLorentz::getWidth() const
+{
+    return m_width;
+}
+
+#endif // FORMFACTORLONGBOXLORENTZ_H
+
+
diff --git a/Core/FormFactors/inc/FormFactors.h b/Core/FormFactors/inc/FormFactors.h
index 1e0ed6ff7d9fd0bf1fd7ffc0b5f217f468f4ca9a..f557af41537f56cb3aa217c26d02961e209e6e8f 100644
--- a/Core/FormFactors/inc/FormFactors.h
+++ b/Core/FormFactors/inc/FormFactors.h
@@ -36,7 +36,8 @@
 #include "FormFactorFullSpheroid.h"
 #include "FormFactorGauss.h"
 #include "FormFactorHemiEllipsoid.h"
-#include "FormFactorLongBox.h"
+#include "FormFactorLongBoxGauss.h"
+#include "FormFactorLongBoxLorentz.h"
 #include "FormFactorLorentz.h"
 #include "FormFactorPrism3.h"
 #include "FormFactorPrism6.h"
diff --git a/Core/FormFactors/src/FormFactorLongBox.cpp b/Core/FormFactors/src/FormFactorLongBoxGauss.cpp
similarity index 67%
rename from Core/FormFactors/src/FormFactorLongBox.cpp
rename to Core/FormFactors/src/FormFactorLongBoxGauss.cpp
index bdd1324a6313e38f3950de2a99303e9d73c7bb62..4433c4cbc039c8ce53c4fe121d67ab55ebb44180 100644
--- a/Core/FormFactors/src/FormFactorLongBox.cpp
+++ b/Core/FormFactors/src/FormFactorLongBoxGauss.cpp
@@ -2,8 +2,8 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      FormFactors/src/FormFactorLongBox.cpp
-//! @brief     Implements class FormFactorLongBox.
+//! @file      FormFactors/src/FormFactorLongBoxGauss.cpp
+//! @brief     Implements class FormFactorLongBoxGauss.
 //!
 //! @homepage  http://www.bornagainproject.org
 //! @license   GNU General Public License v3 or higher (see COPYING)
@@ -13,31 +13,31 @@
 //
 // ************************************************************************** //
 
-#include "FormFactorLongBox.h"
+#include "FormFactorLongBoxGauss.h"
 #include "BornAgainNamespace.h"
 #include "MathFunctions.h"
 
 using namespace  BornAgain;
 
-FormFactorLongBox::FormFactorLongBox(double length, double width, double height)
+FormFactorLongBoxGauss::FormFactorLongBoxGauss(double length, double width, double height)
     : m_length(length), m_width(width), m_height(height) {
 
-    setName(FFLongBoxType);
+    setName(FFLongBoxGaussType);
     check_initialization();
     init_parameters();
 }
 
-FormFactorLongBox *FormFactorLongBox::clone() const
+FormFactorLongBoxGauss *FormFactorLongBoxGauss::clone() const
 {
-    return new FormFactorLongBox(m_length, m_width, m_height);
+    return new FormFactorLongBoxGauss(m_length, m_width, m_height);
 }
 
-void FormFactorLongBox::accept(ISampleVisitor *visitor) const
+void FormFactorLongBoxGauss::accept(ISampleVisitor *visitor) const
 {
     visitor->visit(this);
 }
 
-complex_t FormFactorLongBox::evaluate_for_q(const cvector_t &q) const
+complex_t FormFactorLongBoxGauss::evaluate_for_q(const cvector_t &q) const
 {
     complex_t qxL2 = std::pow(m_length * q.x(), 2) / 2.0;
     complex_t qyWdiv2 = m_width * q.y() / 2.0;
@@ -47,12 +47,12 @@ complex_t FormFactorLongBox::evaluate_for_q(const cvector_t &q) const
            * MathFunctions::sinc(qyWdiv2) * MathFunctions::sinc(qzHdiv2);
 }
 
-bool FormFactorLongBox::check_initialization() const
+bool FormFactorLongBoxGauss::check_initialization() const
 {
     return true;
 }
 
-void FormFactorLongBox::init_parameters()
+void FormFactorLongBoxGauss::init_parameters()
 {
     clearParameterPool();
     registerParameter(Length, &m_length, AttLimits::n_positive());
diff --git a/Core/FormFactors/src/FormFactorLongBoxLorentz.cpp b/Core/FormFactors/src/FormFactorLongBoxLorentz.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..129ee2f6c9a313377dffc25eeed5ed4aff15e1e4
--- /dev/null
+++ b/Core/FormFactors/src/FormFactorLongBoxLorentz.cpp
@@ -0,0 +1,61 @@
+// ************************************************************************** //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      FormFactors/src/FormFactorLongBoxLorentz.cpp
+//! @brief     Implements class FormFactorLongBoxLorentz.
+//!
+//! @homepage  http://www.bornagainproject.org
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Jülich GmbH 2015
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke
+//
+// ************************************************************************** //
+
+#include "FormFactorLongBoxLorentz.h"
+#include "BornAgainNamespace.h"
+#include "MathFunctions.h"
+
+using namespace  BornAgain;
+
+FormFactorLongBoxLorentz::FormFactorLongBoxLorentz(double length, double width, double height)
+    : m_length(length), m_width(width), m_height(height) {
+
+    setName(FFLongBoxLorentzType);
+    check_initialization();
+    init_parameters();
+}
+
+FormFactorLongBoxLorentz *FormFactorLongBoxLorentz::clone() const
+{
+    return new FormFactorLongBoxLorentz(m_length, m_width, m_height);
+}
+
+void FormFactorLongBoxLorentz::accept(ISampleVisitor *visitor) const
+{
+    visitor->visit(this);
+}
+
+complex_t FormFactorLongBoxLorentz::evaluate_for_q(const cvector_t &q) const
+{
+    complex_t qxL2 = 2.5*std::pow(m_length * q.x(), 2);
+    complex_t qyWdiv2 = m_width * q.y() / 2.0;
+    complex_t qzHdiv2 = m_height * q.z() / 2.0;
+
+    return m_height * m_length * m_width * std::exp(complex_t(0., 1.) * qzHdiv2) / (1.0 + qxL2)
+           * MathFunctions::sinc(qyWdiv2) * MathFunctions::sinc(qzHdiv2);
+}
+
+bool FormFactorLongBoxLorentz::check_initialization() const
+{
+    return true;
+}
+
+void FormFactorLongBoxLorentz::init_parameters()
+{
+    clearParameterPool();
+    registerParameter(Length, &m_length, AttLimits::n_positive());
+    registerParameter(Width, &m_width, AttLimits::n_positive());
+    registerParameter(Height, &m_height, AttLimits::n_positive());
+}
diff --git a/Core/PythonAPI/inc/FormFactorLongBox.pypp.h b/Core/PythonAPI/inc/FormFactorLongBoxGauss.pypp.h
similarity index 78%
rename from Core/PythonAPI/inc/FormFactorLongBox.pypp.h
rename to Core/PythonAPI/inc/FormFactorLongBoxGauss.pypp.h
index 2a318ed5ba669b4bb2ced9e1fb81421c3b762f15..0ebcca4fe0973e5d92b1dd482be89986008c1ddd 100644
--- a/Core/PythonAPI/inc/FormFactorLongBox.pypp.h
+++ b/Core/PythonAPI/inc/FormFactorLongBoxGauss.pypp.h
@@ -15,9 +15,9 @@
 //
 // ************************************************************************** //
 
-#ifndef FormFactorLongBox_hpp__pyplusplus_wrapper
-#define FormFactorLongBox_hpp__pyplusplus_wrapper
+#ifndef FormFactorLongBoxGauss_hpp__pyplusplus_wrapper
+#define FormFactorLongBoxGauss_hpp__pyplusplus_wrapper
 
-void register_FormFactorLongBox_class();
+void register_FormFactorLongBoxGauss_class();
 
-#endif//FormFactorLongBox_hpp__pyplusplus_wrapper
+#endif//FormFactorLongBoxGauss_hpp__pyplusplus_wrapper
diff --git a/Core/PythonAPI/inc/FormFactorLongBoxLorentz.pypp.h b/Core/PythonAPI/inc/FormFactorLongBoxLorentz.pypp.h
new file mode 100644
index 0000000000000000000000000000000000000000..b63366e1650c2c397dcacdd659da526edb42dffc
--- /dev/null
+++ b/Core/PythonAPI/inc/FormFactorLongBoxLorentz.pypp.h
@@ -0,0 +1,23 @@
+// This file has been generated by Py++.
+
+// ************************************************************************** //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      Automatically generated boost::python code for BornAgain Python bindings
+//! @brief     Automatically generated boost::python code for BornAgain Python bindings
+//!
+//! @homepage  http://bornagainproject.org
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Juelich GmbH 2015
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke
+//
+// ************************************************************************** //
+
+#ifndef FormFactorLongBoxLorentz_hpp__pyplusplus_wrapper
+#define FormFactorLongBoxLorentz_hpp__pyplusplus_wrapper
+
+void register_FormFactorLongBoxLorentz_class();
+
+#endif//FormFactorLongBoxLorentz_hpp__pyplusplus_wrapper
diff --git a/Core/PythonAPI/inc/PythonCoreList.h b/Core/PythonAPI/inc/PythonCoreList.h
index 570ac41b0f113f58debc608cf63d988c2b2d42d4..ac3332ae22f73c1dcda9fd5f8dac64bacb6a927c 100644
--- a/Core/PythonAPI/inc/PythonCoreList.h
+++ b/Core/PythonAPI/inc/PythonCoreList.h
@@ -26,7 +26,8 @@
 #include "FormFactorFullSpheroid.h"
 #include "FormFactorGauss.h"
 #include "FormFactorHemiEllipsoid.h"
-#include "FormFactorLongBox.h"
+#include "FormFactorLongBoxGauss.h"
+#include "FormFactorLongBoxLorentz.h"
 #include "FormFactorLorentz.h"
 #include "FormFactorPrism3.h"
 #include "FormFactorPrism6.h"
diff --git a/Core/PythonAPI/src/FormFactorLongBox.pypp.cpp b/Core/PythonAPI/src/FormFactorLongBoxGauss.pypp.cpp
similarity index 63%
rename from Core/PythonAPI/src/FormFactorLongBox.pypp.cpp
rename to Core/PythonAPI/src/FormFactorLongBoxGauss.pypp.cpp
index 20491e6c598e31e975da62e4c434a97350eb4cd2..b44708da68b90f1df3942a0203c403c91f0583d2 100644
--- a/Core/PythonAPI/src/FormFactorLongBox.pypp.cpp
+++ b/Core/PythonAPI/src/FormFactorLongBoxGauss.pypp.cpp
@@ -22,53 +22,53 @@ GCC_DIAG_OFF(missing-field-initializers)
 GCC_DIAG_ON(unused-parameter)
 GCC_DIAG_ON(missing-field-initializers)
 #include "PythonCoreList.h"
-#include "FormFactorLongBox.pypp.h"
+#include "FormFactorLongBoxGauss.pypp.h"
 
 namespace bp = boost::python;
 
-struct FormFactorLongBox_wrapper : FormFactorLongBox, bp::wrapper< FormFactorLongBox > {
+struct FormFactorLongBoxGauss_wrapper : FormFactorLongBoxGauss, bp::wrapper< FormFactorLongBoxGauss > {
 
-    FormFactorLongBox_wrapper(double length, double width, double height )
-    : FormFactorLongBox( length, width, height )
-      , bp::wrapper< FormFactorLongBox >(){
+    FormFactorLongBoxGauss_wrapper(double length, double width, double height )
+    : FormFactorLongBoxGauss( length, width, height )
+      , bp::wrapper< FormFactorLongBoxGauss >(){
         // constructor
     m_pyobj = 0;
     }
 
-    virtual ::FormFactorLongBox * clone(  ) const  {
+    virtual ::FormFactorLongBoxGauss * clone(  ) const  {
         if( bp::override func_clone = this->get_override( "clone" ) )
             return func_clone(  );
         else{
-            return this->FormFactorLongBox::clone(  );
+            return this->FormFactorLongBoxGauss::clone(  );
         }
     }
     
-    ::FormFactorLongBox * default_clone(  ) const  {
-        return FormFactorLongBox::clone( );
+    ::FormFactorLongBoxGauss * default_clone(  ) const  {
+        return FormFactorLongBoxGauss::clone( );
     }
 
     virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
         if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
             return func_evaluate_for_q( boost::ref(q) );
         else{
-            return this->FormFactorLongBox::evaluate_for_q( boost::ref(q) );
+            return this->FormFactorLongBoxGauss::evaluate_for_q( boost::ref(q) );
         }
     }
     
     ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
-        return FormFactorLongBox::evaluate_for_q( boost::ref(q) );
+        return FormFactorLongBoxGauss::evaluate_for_q( boost::ref(q) );
     }
 
     virtual double getRadius(  ) const  {
         if( bp::override func_getRadius = this->get_override( "getRadius" ) )
             return func_getRadius(  );
         else{
-            return this->FormFactorLongBox::getRadius(  );
+            return this->FormFactorLongBoxGauss::getRadius(  );
         }
     }
     
     double default_getRadius(  ) const  {
-        return FormFactorLongBox::getRadius( );
+        return FormFactorLongBoxGauss::getRadius( );
     }
 
     virtual ::ISample * cloneInvertB(  ) const  {
@@ -195,174 +195,174 @@ struct FormFactorLongBox_wrapper : FormFactorLongBox, bp::wrapper< FormFactorLon
 
 };
 
-void register_FormFactorLongBox_class(){
+void register_FormFactorLongBoxGauss_class(){
 
-    { //::FormFactorLongBox
-        typedef bp::class_< FormFactorLongBox_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorLongBox_wrapper >, boost::noncopyable > FormFactorLongBox_exposer_t;
-        FormFactorLongBox_exposer_t FormFactorLongBox_exposer = FormFactorLongBox_exposer_t( "FormFactorLongBox", "The formfactor for a long rectangular box.", bp::init< double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height") ), "Box constructor.\n\n:Parameters:\n  - 'length' - of Box's base\n  - 'width' - of Box's base\n  - 'height' - of Box\n") );
-        bp::scope FormFactorLongBox_scope( FormFactorLongBox_exposer );
-        { //::FormFactorLongBox::clone
-        
-            typedef ::FormFactorLongBox * ( ::FormFactorLongBox::*clone_function_type)(  ) const;
-            typedef ::FormFactorLongBox * ( FormFactorLongBox_wrapper::*default_clone_function_type)(  ) const;
+    { //::FormFactorLongBoxGauss
+        typedef bp::class_< FormFactorLongBoxGauss_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorLongBoxGauss_wrapper >, boost::noncopyable > FormFactorLongBoxGauss_exposer_t;
+        FormFactorLongBoxGauss_exposer_t FormFactorLongBoxGauss_exposer = FormFactorLongBoxGauss_exposer_t( "FormFactorLongBoxGauss", "The formfactor for a long rectangular box.", bp::init< double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height") ), "Box constructor.\n\n:Parameters:\n  - 'length' - of Box's base\n  - 'width' - of Box's base\n  - 'height' - of Box\n") );
+        bp::scope FormFactorLongBoxGauss_scope( FormFactorLongBoxGauss_exposer );
+        { //::FormFactorLongBoxGauss::clone
+        
+            typedef ::FormFactorLongBoxGauss * ( ::FormFactorLongBoxGauss::*clone_function_type)(  ) const;
+            typedef ::FormFactorLongBoxGauss * ( FormFactorLongBoxGauss_wrapper::*default_clone_function_type)(  ) const;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "clone"
-                , clone_function_type(&::FormFactorLongBox::clone)
-                , default_clone_function_type(&FormFactorLongBox_wrapper::default_clone)
+                , clone_function_type(&::FormFactorLongBoxGauss::clone)
+                , default_clone_function_type(&FormFactorLongBoxGauss_wrapper::default_clone)
                 , bp::return_value_policy< bp::manage_new_object >() );
         
         }
-        { //::FormFactorLongBox::evaluate_for_q
+        { //::FormFactorLongBoxGauss::evaluate_for_q
         
-            typedef ::complex_t ( ::FormFactorLongBox::*evaluate_for_q_function_type)( ::cvector_t const & ) const;
-            typedef ::complex_t ( FormFactorLongBox_wrapper::*default_evaluate_for_q_function_type)( ::cvector_t const & ) const;
+            typedef ::complex_t ( ::FormFactorLongBoxGauss::*evaluate_for_q_function_type)( ::cvector_t const & ) const;
+            typedef ::complex_t ( FormFactorLongBoxGauss_wrapper::*default_evaluate_for_q_function_type)( ::cvector_t const & ) const;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "evaluate_for_q"
-                , evaluate_for_q_function_type(&::FormFactorLongBox::evaluate_for_q)
-                , default_evaluate_for_q_function_type(&FormFactorLongBox_wrapper::default_evaluate_for_q)
+                , evaluate_for_q_function_type(&::FormFactorLongBoxGauss::evaluate_for_q)
+                , default_evaluate_for_q_function_type(&FormFactorLongBoxGauss_wrapper::default_evaluate_for_q)
                 , ( bp::arg("q") ) );
         
         }
-        { //::FormFactorLongBox::getHeight
+        { //::FormFactorLongBoxGauss::getHeight
         
-            typedef double ( ::FormFactorLongBox::*getHeight_function_type)(  ) const;
+            typedef double ( ::FormFactorLongBoxGauss::*getHeight_function_type)(  ) const;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "getHeight"
-                , getHeight_function_type( &::FormFactorLongBox::getHeight ) );
+                , getHeight_function_type( &::FormFactorLongBoxGauss::getHeight ) );
         
         }
-        { //::FormFactorLongBox::getLength
+        { //::FormFactorLongBoxGauss::getLength
         
-            typedef double ( ::FormFactorLongBox::*getLength_function_type)(  ) const;
+            typedef double ( ::FormFactorLongBoxGauss::*getLength_function_type)(  ) const;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "getLength"
-                , getLength_function_type( &::FormFactorLongBox::getLength ) );
+                , getLength_function_type( &::FormFactorLongBoxGauss::getLength ) );
         
         }
-        { //::FormFactorLongBox::getRadius
+        { //::FormFactorLongBoxGauss::getRadius
         
-            typedef double ( ::FormFactorLongBox::*getRadius_function_type)(  ) const;
-            typedef double ( FormFactorLongBox_wrapper::*default_getRadius_function_type)(  ) const;
+            typedef double ( ::FormFactorLongBoxGauss::*getRadius_function_type)(  ) const;
+            typedef double ( FormFactorLongBoxGauss_wrapper::*default_getRadius_function_type)(  ) const;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "getRadius"
-                , getRadius_function_type(&::FormFactorLongBox::getRadius)
-                , default_getRadius_function_type(&FormFactorLongBox_wrapper::default_getRadius) );
+                , getRadius_function_type(&::FormFactorLongBoxGauss::getRadius)
+                , default_getRadius_function_type(&FormFactorLongBoxGauss_wrapper::default_getRadius) );
         
         }
-        { //::FormFactorLongBox::getWidth
+        { //::FormFactorLongBoxGauss::getWidth
         
-            typedef double ( ::FormFactorLongBox::*getWidth_function_type)(  ) const;
+            typedef double ( ::FormFactorLongBoxGauss::*getWidth_function_type)(  ) const;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "getWidth"
-                , getWidth_function_type( &::FormFactorLongBox::getWidth ) );
+                , getWidth_function_type( &::FormFactorLongBoxGauss::getWidth ) );
         
         }
         { //::ISample::cloneInvertB
         
             typedef ::ISample * ( ::ISample::*cloneInvertB_function_type)(  ) const;
-            typedef ::ISample * ( FormFactorLongBox_wrapper::*default_cloneInvertB_function_type)(  ) const;
+            typedef ::ISample * ( FormFactorLongBoxGauss_wrapper::*default_cloneInvertB_function_type)(  ) const;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "cloneInvertB"
                 , cloneInvertB_function_type(&::ISample::cloneInvertB)
-                , default_cloneInvertB_function_type(&FormFactorLongBox_wrapper::default_cloneInvertB)
+                , default_cloneInvertB_function_type(&FormFactorLongBoxGauss_wrapper::default_cloneInvertB)
                 , bp::return_value_policy< bp::reference_existing_object >() );
         
         }
         { //::ISample::containsMagneticMaterial
         
             typedef bool ( ::ISample::*containsMagneticMaterial_function_type)(  ) const;
-            typedef bool ( FormFactorLongBox_wrapper::*default_containsMagneticMaterial_function_type)(  ) const;
+            typedef bool ( FormFactorLongBoxGauss_wrapper::*default_containsMagneticMaterial_function_type)(  ) const;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "containsMagneticMaterial"
                 , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
-                , default_containsMagneticMaterial_function_type(&FormFactorLongBox_wrapper::default_containsMagneticMaterial) );
+                , default_containsMagneticMaterial_function_type(&FormFactorLongBoxGauss_wrapper::default_containsMagneticMaterial) );
         
         }
         { //::IFormFactorBorn::evaluate
         
             typedef ::complex_t ( ::IFormFactorBorn::*evaluate_function_type)( ::WavevectorInfo const & ) const;
-            typedef ::complex_t ( FormFactorLongBox_wrapper::*default_evaluate_function_type)( ::WavevectorInfo const & ) const;
+            typedef ::complex_t ( FormFactorLongBoxGauss_wrapper::*default_evaluate_function_type)( ::WavevectorInfo const & ) const;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "evaluate"
                 , evaluate_function_type(&::IFormFactorBorn::evaluate)
-                , default_evaluate_function_type(&FormFactorLongBox_wrapper::default_evaluate)
+                , default_evaluate_function_type(&FormFactorLongBoxGauss_wrapper::default_evaluate)
                 , ( bp::arg("wavevectors") ) );
         
         }
         { //::ISample::getChildren
         
             typedef ::std::vector< const ISample* > ( ::ISample::*getChildren_function_type)(  ) const;
-            typedef ::std::vector< const ISample* > ( FormFactorLongBox_wrapper::*default_getChildren_function_type)(  ) const;
+            typedef ::std::vector< const ISample* > ( FormFactorLongBoxGauss_wrapper::*default_getChildren_function_type)(  ) const;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "getChildren"
                 , getChildren_function_type(&::ISample::getChildren)
-                , default_getChildren_function_type(&FormFactorLongBox_wrapper::default_getChildren) );
+                , default_getChildren_function_type(&FormFactorLongBoxGauss_wrapper::default_getChildren) );
         
         }
         { //::IFormFactor::getVolume
         
             typedef double ( ::IFormFactor::*getVolume_function_type)(  ) const;
-            typedef double ( FormFactorLongBox_wrapper::*default_getVolume_function_type)(  ) const;
+            typedef double ( FormFactorLongBoxGauss_wrapper::*default_getVolume_function_type)(  ) const;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "getVolume"
                 , getVolume_function_type(&::IFormFactor::getVolume)
-                , default_getVolume_function_type(&FormFactorLongBox_wrapper::default_getVolume) );
+                , default_getVolume_function_type(&FormFactorLongBoxGauss_wrapper::default_getVolume) );
         
         }
         { //::ISample::printSampleTree
         
             typedef void ( ::ISample::*printSampleTree_function_type)(  ) ;
-            typedef void ( FormFactorLongBox_wrapper::*default_printSampleTree_function_type)(  ) ;
+            typedef void ( FormFactorLongBoxGauss_wrapper::*default_printSampleTree_function_type)(  ) ;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "printSampleTree"
                 , printSampleTree_function_type(&::ISample::printSampleTree)
-                , default_printSampleTree_function_type(&FormFactorLongBox_wrapper::default_printSampleTree) );
+                , default_printSampleTree_function_type(&FormFactorLongBoxGauss_wrapper::default_printSampleTree) );
         
         }
         { //::IFormFactor::setAmbientMaterial
         
             typedef void ( ::IFormFactor::*setAmbientMaterial_function_type)( ::IMaterial const & ) ;
-            typedef void ( FormFactorLongBox_wrapper::*default_setAmbientMaterial_function_type)( ::IMaterial const & ) ;
+            typedef void ( FormFactorLongBoxGauss_wrapper::*default_setAmbientMaterial_function_type)( ::IMaterial const & ) ;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "setAmbientMaterial"
                 , setAmbientMaterial_function_type(&::IFormFactor::setAmbientMaterial)
-                , default_setAmbientMaterial_function_type(&FormFactorLongBox_wrapper::default_setAmbientMaterial)
+                , default_setAmbientMaterial_function_type(&FormFactorLongBoxGauss_wrapper::default_setAmbientMaterial)
                 , ( bp::arg("arg0") ) );
         
         }
         { //::ISample::size
         
             typedef ::std::size_t ( ::ISample::*size_function_type)(  ) const;
-            typedef ::std::size_t ( FormFactorLongBox_wrapper::*default_size_function_type)(  ) const;
+            typedef ::std::size_t ( FormFactorLongBoxGauss_wrapper::*default_size_function_type)(  ) const;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "size"
                 , size_function_type(&::ISample::size)
-                , default_size_function_type(&FormFactorLongBox_wrapper::default_size) );
+                , default_size_function_type(&FormFactorLongBoxGauss_wrapper::default_size) );
         
         }
         { //::ICloneable::transferToCPP
         
             typedef void ( ::ICloneable::*transferToCPP_function_type)(  ) ;
-            typedef void ( FormFactorLongBox_wrapper::*default_transferToCPP_function_type)(  ) ;
+            typedef void ( FormFactorLongBoxGauss_wrapper::*default_transferToCPP_function_type)(  ) ;
             
-            FormFactorLongBox_exposer.def( 
+            FormFactorLongBoxGauss_exposer.def( 
                 "transferToCPP"
                 , transferToCPP_function_type(&::ICloneable::transferToCPP)
-                , default_transferToCPP_function_type(&FormFactorLongBox_wrapper::default_transferToCPP) );
+                , default_transferToCPP_function_type(&FormFactorLongBoxGauss_wrapper::default_transferToCPP) );
         
         }
     }
diff --git a/Core/PythonAPI/src/FormFactorLongBoxLorentz.pypp.cpp b/Core/PythonAPI/src/FormFactorLongBoxLorentz.pypp.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1a09f638f52fe1a65c61b510d25c13b140d4c5ad
--- /dev/null
+++ b/Core/PythonAPI/src/FormFactorLongBoxLorentz.pypp.cpp
@@ -0,0 +1,370 @@
+// This file has been generated by Py++.
+
+// ************************************************************************** //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      Automatically generated boost::python code for BornAgain Python bindings
+//! @brief     Automatically generated boost::python code for BornAgain Python bindings
+//!
+//! @homepage  http://bornagainproject.org
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Juelich GmbH 2015
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke
+//
+// ************************************************************************** //
+
+#include "Macros.h"
+GCC_DIAG_OFF(unused-parameter)
+GCC_DIAG_OFF(missing-field-initializers)
+#include "boost/python.hpp"
+GCC_DIAG_ON(unused-parameter)
+GCC_DIAG_ON(missing-field-initializers)
+#include "PythonCoreList.h"
+#include "FormFactorLongBoxLorentz.pypp.h"
+
+namespace bp = boost::python;
+
+struct FormFactorLongBoxLorentz_wrapper : FormFactorLongBoxLorentz, bp::wrapper< FormFactorLongBoxLorentz > {
+
+    FormFactorLongBoxLorentz_wrapper(double length, double width, double height )
+    : FormFactorLongBoxLorentz( length, width, height )
+      , bp::wrapper< FormFactorLongBoxLorentz >(){
+        // constructor
+    m_pyobj = 0;
+    }
+
+    virtual ::FormFactorLongBoxLorentz * clone(  ) const  {
+        if( bp::override func_clone = this->get_override( "clone" ) )
+            return func_clone(  );
+        else{
+            return this->FormFactorLongBoxLorentz::clone(  );
+        }
+    }
+    
+    ::FormFactorLongBoxLorentz * default_clone(  ) const  {
+        return FormFactorLongBoxLorentz::clone( );
+    }
+
+    virtual ::complex_t evaluate_for_q( ::cvector_t const & q ) const  {
+        if( bp::override func_evaluate_for_q = this->get_override( "evaluate_for_q" ) )
+            return func_evaluate_for_q( boost::ref(q) );
+        else{
+            return this->FormFactorLongBoxLorentz::evaluate_for_q( boost::ref(q) );
+        }
+    }
+    
+    ::complex_t default_evaluate_for_q( ::cvector_t const & q ) const  {
+        return FormFactorLongBoxLorentz::evaluate_for_q( boost::ref(q) );
+    }
+
+    virtual double getRadius(  ) const  {
+        if( bp::override func_getRadius = this->get_override( "getRadius" ) )
+            return func_getRadius(  );
+        else{
+            return this->FormFactorLongBoxLorentz::getRadius(  );
+        }
+    }
+    
+    double default_getRadius(  ) const  {
+        return FormFactorLongBoxLorentz::getRadius( );
+    }
+
+    virtual ::ISample * cloneInvertB(  ) const  {
+        if( bp::override func_cloneInvertB = this->get_override( "cloneInvertB" ) )
+            return func_cloneInvertB(  );
+        else{
+            return this->ISample::cloneInvertB(  );
+        }
+    }
+    
+    ::ISample * default_cloneInvertB(  ) const  {
+        return ISample::cloneInvertB( );
+    }
+
+    virtual bool containsMagneticMaterial(  ) const  {
+        if( bp::override func_containsMagneticMaterial = this->get_override( "containsMagneticMaterial" ) )
+            return func_containsMagneticMaterial(  );
+        else{
+            return this->ISample::containsMagneticMaterial(  );
+        }
+    }
+    
+    bool default_containsMagneticMaterial(  ) const  {
+        return ISample::containsMagneticMaterial( );
+    }
+
+    virtual ::complex_t evaluate( ::WavevectorInfo const & wavevectors ) const  {
+        if( bp::override func_evaluate = this->get_override( "evaluate" ) )
+            return func_evaluate( boost::ref(wavevectors) );
+        else{
+            return this->IFormFactorBorn::evaluate( boost::ref(wavevectors) );
+        }
+    }
+    
+    ::complex_t default_evaluate( ::WavevectorInfo const & wavevectors ) const  {
+        return IFormFactorBorn::evaluate( boost::ref(wavevectors) );
+    }
+
+    virtual ::std::vector< const ISample* > getChildren(  ) const  {
+        if( bp::override func_getChildren = this->get_override( "getChildren" ) )
+            return func_getChildren(  );
+        else{
+            return this->ISample::getChildren(  );
+        }
+    }
+    
+    ::std::vector< const ISample* > default_getChildren(  ) const  {
+        return ISample::getChildren( );
+    }
+
+    virtual double getVolume(  ) const  {
+        if( bp::override func_getVolume = this->get_override( "getVolume" ) )
+            return func_getVolume(  );
+        else{
+            return this->IFormFactor::getVolume(  );
+        }
+    }
+    
+    double default_getVolume(  ) const  {
+        return IFormFactor::getVolume( );
+    }
+
+    virtual void printSampleTree(  ) {
+        if( bp::override func_printSampleTree = this->get_override( "printSampleTree" ) )
+            func_printSampleTree(  );
+        else{
+            this->ISample::printSampleTree(  );
+        }
+    }
+    
+    void default_printSampleTree(  ) {
+        ISample::printSampleTree( );
+    }
+
+    virtual void setAmbientMaterial( ::IMaterial const & arg0 ) {
+        if( bp::override func_setAmbientMaterial = this->get_override( "setAmbientMaterial" ) )
+            func_setAmbientMaterial( boost::ref(arg0) );
+        else{
+            this->IFormFactor::setAmbientMaterial( boost::ref(arg0) );
+        }
+    }
+    
+    void default_setAmbientMaterial( ::IMaterial const & arg0 ) {
+        IFormFactor::setAmbientMaterial( boost::ref(arg0) );
+    }
+
+    virtual ::std::size_t size(  ) const  {
+        if( bp::override func_size = this->get_override( "size" ) )
+            return func_size(  );
+        else{
+            return this->ISample::size(  );
+        }
+    }
+    
+    ::std::size_t default_size(  ) const  {
+        return ISample::size( );
+    }
+
+    virtual void transferToCPP(  ) {
+        
+        if( !this->m_pyobj) {
+            this->m_pyobj = boost::python::detail::wrapper_base_::get_owner(*this);
+            Py_INCREF(this->m_pyobj);
+        }
+        
+        if( bp::override func_transferToCPP = this->get_override( "transferToCPP" ) )
+            func_transferToCPP(  );
+        else{
+            this->ICloneable::transferToCPP(  );
+        }
+    }
+    
+    void default_transferToCPP(  ) {
+        
+        if( !this->m_pyobj) {
+            this->m_pyobj = boost::python::detail::wrapper_base_::get_owner(*this);
+            Py_INCREF(this->m_pyobj);
+        }
+        
+        ICloneable::transferToCPP( );
+    }
+
+    PyObject* m_pyobj;
+
+};
+
+void register_FormFactorLongBoxLorentz_class(){
+
+    { //::FormFactorLongBoxLorentz
+        typedef bp::class_< FormFactorLongBoxLorentz_wrapper, bp::bases< IFormFactorBorn >, std::auto_ptr< FormFactorLongBoxLorentz_wrapper >, boost::noncopyable > FormFactorLongBoxLorentz_exposer_t;
+        FormFactorLongBoxLorentz_exposer_t FormFactorLongBoxLorentz_exposer = FormFactorLongBoxLorentz_exposer_t( "FormFactorLongBoxLorentz", "The formfactor for a long rectangular box.", bp::init< double, double, double >(( bp::arg("length"), bp::arg("width"), bp::arg("height") ), "Box constructor.\n\n:Parameters:\n  - 'length' - of Box's base\n  - 'width' - of Box's base\n  - 'height' - of Box\n") );
+        bp::scope FormFactorLongBoxLorentz_scope( FormFactorLongBoxLorentz_exposer );
+        { //::FormFactorLongBoxLorentz::clone
+        
+            typedef ::FormFactorLongBoxLorentz * ( ::FormFactorLongBoxLorentz::*clone_function_type)(  ) const;
+            typedef ::FormFactorLongBoxLorentz * ( FormFactorLongBoxLorentz_wrapper::*default_clone_function_type)(  ) const;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "clone"
+                , clone_function_type(&::FormFactorLongBoxLorentz::clone)
+                , default_clone_function_type(&FormFactorLongBoxLorentz_wrapper::default_clone)
+                , bp::return_value_policy< bp::manage_new_object >() );
+        
+        }
+        { //::FormFactorLongBoxLorentz::evaluate_for_q
+        
+            typedef ::complex_t ( ::FormFactorLongBoxLorentz::*evaluate_for_q_function_type)( ::cvector_t const & ) const;
+            typedef ::complex_t ( FormFactorLongBoxLorentz_wrapper::*default_evaluate_for_q_function_type)( ::cvector_t const & ) const;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "evaluate_for_q"
+                , evaluate_for_q_function_type(&::FormFactorLongBoxLorentz::evaluate_for_q)
+                , default_evaluate_for_q_function_type(&FormFactorLongBoxLorentz_wrapper::default_evaluate_for_q)
+                , ( bp::arg("q") ) );
+        
+        }
+        { //::FormFactorLongBoxLorentz::getHeight
+        
+            typedef double ( ::FormFactorLongBoxLorentz::*getHeight_function_type)(  ) const;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "getHeight"
+                , getHeight_function_type( &::FormFactorLongBoxLorentz::getHeight ) );
+        
+        }
+        { //::FormFactorLongBoxLorentz::getLength
+        
+            typedef double ( ::FormFactorLongBoxLorentz::*getLength_function_type)(  ) const;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "getLength"
+                , getLength_function_type( &::FormFactorLongBoxLorentz::getLength ) );
+        
+        }
+        { //::FormFactorLongBoxLorentz::getRadius
+        
+            typedef double ( ::FormFactorLongBoxLorentz::*getRadius_function_type)(  ) const;
+            typedef double ( FormFactorLongBoxLorentz_wrapper::*default_getRadius_function_type)(  ) const;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "getRadius"
+                , getRadius_function_type(&::FormFactorLongBoxLorentz::getRadius)
+                , default_getRadius_function_type(&FormFactorLongBoxLorentz_wrapper::default_getRadius) );
+        
+        }
+        { //::FormFactorLongBoxLorentz::getWidth
+        
+            typedef double ( ::FormFactorLongBoxLorentz::*getWidth_function_type)(  ) const;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "getWidth"
+                , getWidth_function_type( &::FormFactorLongBoxLorentz::getWidth ) );
+        
+        }
+        { //::ISample::cloneInvertB
+        
+            typedef ::ISample * ( ::ISample::*cloneInvertB_function_type)(  ) const;
+            typedef ::ISample * ( FormFactorLongBoxLorentz_wrapper::*default_cloneInvertB_function_type)(  ) const;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "cloneInvertB"
+                , cloneInvertB_function_type(&::ISample::cloneInvertB)
+                , default_cloneInvertB_function_type(&FormFactorLongBoxLorentz_wrapper::default_cloneInvertB)
+                , bp::return_value_policy< bp::reference_existing_object >() );
+        
+        }
+        { //::ISample::containsMagneticMaterial
+        
+            typedef bool ( ::ISample::*containsMagneticMaterial_function_type)(  ) const;
+            typedef bool ( FormFactorLongBoxLorentz_wrapper::*default_containsMagneticMaterial_function_type)(  ) const;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "containsMagneticMaterial"
+                , containsMagneticMaterial_function_type(&::ISample::containsMagneticMaterial)
+                , default_containsMagneticMaterial_function_type(&FormFactorLongBoxLorentz_wrapper::default_containsMagneticMaterial) );
+        
+        }
+        { //::IFormFactorBorn::evaluate
+        
+            typedef ::complex_t ( ::IFormFactorBorn::*evaluate_function_type)( ::WavevectorInfo const & ) const;
+            typedef ::complex_t ( FormFactorLongBoxLorentz_wrapper::*default_evaluate_function_type)( ::WavevectorInfo const & ) const;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "evaluate"
+                , evaluate_function_type(&::IFormFactorBorn::evaluate)
+                , default_evaluate_function_type(&FormFactorLongBoxLorentz_wrapper::default_evaluate)
+                , ( bp::arg("wavevectors") ) );
+        
+        }
+        { //::ISample::getChildren
+        
+            typedef ::std::vector< const ISample* > ( ::ISample::*getChildren_function_type)(  ) const;
+            typedef ::std::vector< const ISample* > ( FormFactorLongBoxLorentz_wrapper::*default_getChildren_function_type)(  ) const;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "getChildren"
+                , getChildren_function_type(&::ISample::getChildren)
+                , default_getChildren_function_type(&FormFactorLongBoxLorentz_wrapper::default_getChildren) );
+        
+        }
+        { //::IFormFactor::getVolume
+        
+            typedef double ( ::IFormFactor::*getVolume_function_type)(  ) const;
+            typedef double ( FormFactorLongBoxLorentz_wrapper::*default_getVolume_function_type)(  ) const;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "getVolume"
+                , getVolume_function_type(&::IFormFactor::getVolume)
+                , default_getVolume_function_type(&FormFactorLongBoxLorentz_wrapper::default_getVolume) );
+        
+        }
+        { //::ISample::printSampleTree
+        
+            typedef void ( ::ISample::*printSampleTree_function_type)(  ) ;
+            typedef void ( FormFactorLongBoxLorentz_wrapper::*default_printSampleTree_function_type)(  ) ;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "printSampleTree"
+                , printSampleTree_function_type(&::ISample::printSampleTree)
+                , default_printSampleTree_function_type(&FormFactorLongBoxLorentz_wrapper::default_printSampleTree) );
+        
+        }
+        { //::IFormFactor::setAmbientMaterial
+        
+            typedef void ( ::IFormFactor::*setAmbientMaterial_function_type)( ::IMaterial const & ) ;
+            typedef void ( FormFactorLongBoxLorentz_wrapper::*default_setAmbientMaterial_function_type)( ::IMaterial const & ) ;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "setAmbientMaterial"
+                , setAmbientMaterial_function_type(&::IFormFactor::setAmbientMaterial)
+                , default_setAmbientMaterial_function_type(&FormFactorLongBoxLorentz_wrapper::default_setAmbientMaterial)
+                , ( bp::arg("arg0") ) );
+        
+        }
+        { //::ISample::size
+        
+            typedef ::std::size_t ( ::ISample::*size_function_type)(  ) const;
+            typedef ::std::size_t ( FormFactorLongBoxLorentz_wrapper::*default_size_function_type)(  ) const;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "size"
+                , size_function_type(&::ISample::size)
+                , default_size_function_type(&FormFactorLongBoxLorentz_wrapper::default_size) );
+        
+        }
+        { //::ICloneable::transferToCPP
+        
+            typedef void ( ::ICloneable::*transferToCPP_function_type)(  ) ;
+            typedef void ( FormFactorLongBoxLorentz_wrapper::*default_transferToCPP_function_type)(  ) ;
+            
+            FormFactorLongBoxLorentz_exposer.def( 
+                "transferToCPP"
+                , transferToCPP_function_type(&::ICloneable::transferToCPP)
+                , default_transferToCPP_function_type(&FormFactorLongBoxLorentz_wrapper::default_transferToCPP) );
+        
+        }
+    }
+
+}
diff --git a/Core/PythonAPI/src/PythonModule.cpp b/Core/PythonAPI/src/PythonModule.cpp
index 5647c567f6b13a7cb9e0c27ffe0a6a05adfa3ac3..0de06ca3b195525ea356fffed359bccc7fc19b80 100644
--- a/Core/PythonAPI/src/PythonModule.cpp
+++ b/Core/PythonAPI/src/PythonModule.cpp
@@ -21,6 +21,7 @@ GCC_DIAG_ON(missing-field-initializers)
 #include "InterferenceFunction2DLattice.pypp.h"
 #include "LayerInterface.pypp.h"
 #include "ILayout.pypp.h"
+#include "FormFactorLongBoxLorentz.pypp.h"
 #include "FormFactorCone6.pypp.h"
 #include "FormFactorTetrahedron.pypp.h"
 #include "FTDistribution1DCosine.pypp.h"
@@ -109,7 +110,6 @@ GCC_DIAG_ON(missing-field-initializers)
 #include "FTDecayFunction1DCauchy.pypp.h"
 #include "Lattice2DParameters.pypp.h"
 #include "vdouble2d_t.pypp.h"
-#include "FormFactorLongBox.pypp.h"
 #include "Line.pypp.h"
 #include "HomogeneousMagneticMaterial.pypp.h"
 #include "vector_realparameter_t.pypp.h"
@@ -126,6 +126,7 @@ GCC_DIAG_ON(missing-field-initializers)
 #include "ParticleLayout.pypp.h"
 #include "FormFactorBox.pypp.h"
 #include "IParameterized.pypp.h"
+#include "FormFactorLongBoxGauss.pypp.h"
 #include "IFormFactorDecorator.pypp.h"
 #include "InterferenceFunction1DLattice.pypp.h"
 #include "RotationEuler.pypp.h"
@@ -242,7 +243,8 @@ BOOST_PYTHON_MODULE(libBornAgainCore){
     register_FormFactorFullSpheroid_class();
     register_FormFactorGauss_class();
     register_FormFactorHemiEllipsoid_class();
-    register_FormFactorLongBox_class();
+    register_FormFactorLongBoxGauss_class();
+    register_FormFactorLongBoxLorentz_class();
     register_FormFactorLorentz_class();
     register_FormFactorPrism3_class();
     register_FormFactorPrism6_class();
diff --git a/Core/Samples/inc/ISampleVisitor.h b/Core/Samples/inc/ISampleVisitor.h
index 3197e27e8f0157d16ac628a949b301758c501e5d..6121239bfe3065d6a7ba98e5cd55c7e5b9750706 100644
--- a/Core/Samples/inc/ISampleVisitor.h
+++ b/Core/Samples/inc/ISampleVisitor.h
@@ -62,7 +62,8 @@ class FormFactorFullSphere;
 class FormFactorFullSpheroid;
 class FormFactorGauss;
 class FormFactorHemiEllipsoid;
-class FormFactorLongBox;
+class FormFactorLongBoxGauss;
+class FormFactorLongBoxLorentz;
 class FormFactorLorentz;
 class FormFactorPrism3;
 class FormFactorPrism6;
@@ -157,7 +158,8 @@ public:
     virtual void visit(const FormFactorFullSpheroid *);
     virtual void visit(const FormFactorGauss *);
     virtual void visit(const FormFactorHemiEllipsoid *);
-    virtual void visit(const FormFactorLongBox *);
+    virtual void visit(const FormFactorLongBoxGauss *);
+    virtual void visit(const FormFactorLongBoxLorentz *);
     virtual void visit(const FormFactorLorentz *);
     virtual void visit(const FormFactorPrism3 *);
     virtual void visit(const FormFactorPrism6 *);
diff --git a/Core/Samples/src/ISampleVisitor.cpp b/Core/Samples/src/ISampleVisitor.cpp
index 1f935adfcb247f96a868d206f1f10d20f62d77f3..7306917d8826b3fd73757ec3e403fca3e522ff30 100644
--- a/Core/Samples/src/ISampleVisitor.cpp
+++ b/Core/Samples/src/ISampleVisitor.cpp
@@ -235,10 +235,16 @@ void ISampleVisitor::visit(const FormFactorHemiEllipsoid *)
                 "ISampleVisitor::visit const FormFactorHemiEllipsoid *) -> Error. Not implemented.");
 }
 
-void ISampleVisitor::visit(const FormFactorLongBox *)
+void ISampleVisitor::visit(const FormFactorLongBoxGauss *)
 {
     throw NotImplementedException(
-        "ISampleVisitor::visit(const FormFactorLongBox *) -> Error. Not implemented.");
+        "ISampleVisitor::visit(const FormFactorLongBoxGauss *) -> Error. Not implemented.");
+}
+
+void ISampleVisitor::visit(const FormFactorLongBoxLorentz *)
+{
+    throw NotImplementedException(
+        "ISampleVisitor::visit(const FormFactorLongBoxLorentz *) -> Error. Not implemented.");
 }
 
 void ISampleVisitor::visit(const FormFactorLorentz *)
diff --git a/Core/Tools/inc/BornAgainNamespace.h b/Core/Tools/inc/BornAgainNamespace.h
index fb319f21226b2f019a910fff1755079a2bf42c78..2187ef0f2fe8496a131e2a7093498b2ce07d15b6 100644
--- a/Core/Tools/inc/BornAgainNamespace.h
+++ b/Core/Tools/inc/BornAgainNamespace.h
@@ -75,7 +75,8 @@ const std::string FFFullSphereType = "FullSphere";
 const std::string FFFullSpheroidType = "FullSpheroid";
 const std::string FFGaussType = "FormFactorGauss";
 const std::string FFHemiEllipsoidType = "HemiEllipsoid";
-const std::string FFLongBoxType = "FormFactorLongBox";
+const std::string FFLongBoxGaussType = "FormFactorLongBoxGauss";
+const std::string FFLongBoxLorentzType = "FormFactorLongBoxLorentz";
 const std::string FFLorentzType = "FormFactorLorentz";
 const std::string FFPrism3Type = "Prism3";
 const std::string FFPrism6Type = "Prism6";
diff --git a/Core/Tools/inc/SampleMaterialVisitor.h b/Core/Tools/inc/SampleMaterialVisitor.h
index 6c565aeeb7e1a5aa14a88ff5241ec99de29a6fc7..cf84d692d3edf688a1354c4effbc7f62e61e4d25 100644
--- a/Core/Tools/inc/SampleMaterialVisitor.h
+++ b/Core/Tools/inc/SampleMaterialVisitor.h
@@ -75,7 +75,8 @@ public:
     void visit(const FormFactorFullSpheroid *sample);
     void visit(const FormFactorGauss *sample);
     void visit(const FormFactorHemiEllipsoid *sample);
-    void visit(const FormFactorLongBox *sample);
+    void visit(const FormFactorLongBoxGauss *sample);
+    void visit(const FormFactorLongBoxLorentz *sample);
     void visit(const FormFactorLorentz *sample);
     void visit(const FormFactorPrism3 *sample);
     void visit(const FormFactorPrism6 *sample);
diff --git a/Core/Tools/inc/SamplePrintVisitor.h b/Core/Tools/inc/SamplePrintVisitor.h
index 2dea3288709ac6eca776ea0e1397d8b7a8959686..fa6616cf4437bf01c3b094e5c6d09c28d5a1943e 100644
--- a/Core/Tools/inc/SamplePrintVisitor.h
+++ b/Core/Tools/inc/SamplePrintVisitor.h
@@ -72,7 +72,8 @@ public:
     void visit(const FormFactorFullSpheroid *sample);
     void visit(const FormFactorGauss *sample);
     void visit(const FormFactorHemiEllipsoid *sample);
-    void visit(const FormFactorLongBox *sample);
+    void visit(const FormFactorLongBoxGauss *sample);
+    void visit(const FormFactorLongBoxLorentz *sample);
     void visit(const FormFactorLorentz *sample);
     void visit(const FormFactorPrism3 *sample);
     void visit(const FormFactorPrism6 *sample);
diff --git a/Core/Tools/src/SampleMaterialVisitor.cpp b/Core/Tools/src/SampleMaterialVisitor.cpp
index d30656b8f0abcb78a8a46f1d649c144fa442fa04..43498e07bf55569c2a7144cdc7d0ee26d2188b7c 100644
--- a/Core/Tools/src/SampleMaterialVisitor.cpp
+++ b/Core/Tools/src/SampleMaterialVisitor.cpp
@@ -176,7 +176,11 @@ void SampleMaterialVisitor::visit(const FormFactorHemiEllipsoid *)
 {
 }
 
-void SampleMaterialVisitor::visit(const FormFactorLongBox *)
+void SampleMaterialVisitor::visit(const FormFactorLongBoxGauss *)
+{
+}
+
+void SampleMaterialVisitor::visit(const FormFactorLongBoxLorentz *)
 {
 }
 
diff --git a/Core/Tools/src/SamplePrintVisitor.cpp b/Core/Tools/src/SamplePrintVisitor.cpp
index 937bb058da67c4cc07901c9e450152b809a4fe74..f1b82c1a27e690c3ce1339c416735ab6c463c699 100644
--- a/Core/Tools/src/SamplePrintVisitor.cpp
+++ b/Core/Tools/src/SamplePrintVisitor.cpp
@@ -194,7 +194,12 @@ void SamplePrintVisitor::visit(const FormFactorHemiEllipsoid *sample)
     print_default(sample);
 }
 
-void SamplePrintVisitor::visit(const FormFactorLongBox *sample)
+void SamplePrintVisitor::visit(const FormFactorLongBoxGauss *sample)
+{
+    print_default(sample);
+}
+
+void SamplePrintVisitor::visit(const FormFactorLongBoxLorentz *sample)
 {
     print_default(sample);
 }
diff --git a/dev-tools/python-bindings/settings_core.py b/dev-tools/python-bindings/settings_core.py
index 0c50856a78d491b1aff2ce2b42cc32fc0310df83..4a1e54ba018a193860db77a0015f15f35ce34684 100644
--- a/dev-tools/python-bindings/settings_core.py
+++ b/dev-tools/python-bindings/settings_core.py
@@ -98,7 +98,8 @@ include_classes = [
     "FormFactorFullSpheroid",
     "FormFactorGauss",
     "FormFactorHemiEllipsoid",
-    "FormFactorLongBox",
+    "FormFactorLongBoxGauss",
+    "FormFactorLongBoxLorentz",
     "FormFactorLorentz",
     "FormFactorPrism3",
     "FormFactorPrism6",