diff --git a/GUI/Model/Sample/MesoCrystalItem.cpp b/GUI/Model/Sample/MesoCrystalItem.cpp
index 822bd2ee868b0640ce14b11a33b95ad0bc9afb2d..42644df778ad7aadfac01a9e8f7f9e1f8964f081 100644
--- a/GUI/Model/Sample/MesoCrystalItem.cpp
+++ b/GUI/Model/Sample/MesoCrystalItem.cpp
@@ -24,7 +24,7 @@
 #include "Sample/Particle/MesoCrystal.h"
 #include "Sample/Particle/Particle.h"
 #include "Sample/Particle/ParticleCoreShell.h"
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 namespace {
 
diff --git a/Resample/Particle/ReParticle.cpp b/Resample/Particle/ReParticle.cpp
index 2e58363b24d96f58b44ab0c2fe075363476987ab..9e206b75c33534fbe66d91f9a8a8055ae3dd87d1 100644
--- a/Resample/Particle/ReParticle.cpp
+++ b/Resample/Particle/ReParticle.cpp
@@ -17,7 +17,7 @@
 #include "Base/Vector/WavevectorInfo.h" // debug
 #include "Sample/Material/Material.h"
 #include "Sample/Material/MaterialFactoryFuncs.h"
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 #include "Sample/Scattering/Rotations.h"
 
 ReParticle::ReParticle(IBornFF* ff, const Material* material, const Material* ambient_material,
diff --git a/Sample/HardParticle/FormFactorCone.h b/Sample/HardParticle/FormFactorCone.h
index c274aec3f2225f84690f21cc8181ae960a3d16ad..db498cd7d1ba6e34507c66a0ce67b92147933a30 100644
--- a/Sample/HardParticle/FormFactorCone.h
+++ b/Sample/HardParticle/FormFactorCone.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORCONE_H
 #define BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORCONE_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 //! A conical frustum (cone truncated parallel to the base) with circular base.
 //! @ingroup hardParticle
diff --git a/Sample/HardParticle/FormFactorCylinder.h b/Sample/HardParticle/FormFactorCylinder.h
index bcbbbd2e4cfa63715ca6fc98039518311d097b5a..e2018dd75ac123569bdd683e2458613117dea7c4 100644
--- a/Sample/HardParticle/FormFactorCylinder.h
+++ b/Sample/HardParticle/FormFactorCylinder.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORCYLINDER_H
 #define BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORCYLINDER_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 //! A circular cylinder.
 //! @ingroup hardParticle
diff --git a/Sample/HardParticle/FormFactorEllipsoidalCylinder.h b/Sample/HardParticle/FormFactorEllipsoidalCylinder.h
index 07ed9afbdb9314a6035127784625a61d756c7a2c..a6053fddcbd72ee296f64579b69c1125b6f23c36 100644
--- a/Sample/HardParticle/FormFactorEllipsoidalCylinder.h
+++ b/Sample/HardParticle/FormFactorEllipsoidalCylinder.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORELLIPSOIDALCYLINDER_H
 #define BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORELLIPSOIDALCYLINDER_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 //! A cylinder with elliptical base.
 //! @ingroup hardParticle
diff --git a/Sample/HardParticle/FormFactorFullSphere.h b/Sample/HardParticle/FormFactorFullSphere.h
index dab4c87d962528900f3ac3ef10dcf2f06a0cd45f..896b20d26f0d8efeede2c482644d9b7c4508bddb 100644
--- a/Sample/HardParticle/FormFactorFullSphere.h
+++ b/Sample/HardParticle/FormFactorFullSphere.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORFULLSPHERE_H
 #define BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORFULLSPHERE_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 //! A full sphere.
 //! @ingroup hardParticle
diff --git a/Sample/HardParticle/FormFactorFullSpheroid.h b/Sample/HardParticle/FormFactorFullSpheroid.h
index b39ecdee12e69269782401d35ae7481872b254e6..d046917306719e86af5fcdce498e67742da25fa4 100644
--- a/Sample/HardParticle/FormFactorFullSpheroid.h
+++ b/Sample/HardParticle/FormFactorFullSpheroid.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORFULLSPHEROID_H
 #define BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORFULLSPHEROID_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 //! A full spheroid (an ellipsoid with two equal axes, hence with circular cross section)
 //! @ingroup hardParticle
diff --git a/Sample/HardParticle/FormFactorHemiEllipsoid.h b/Sample/HardParticle/FormFactorHemiEllipsoid.h
index c37a33f3891285defdddcb6890eba233adc40531..872b904b75daa3fba5d3450c49f1e31a18fc879b 100644
--- a/Sample/HardParticle/FormFactorHemiEllipsoid.h
+++ b/Sample/HardParticle/FormFactorHemiEllipsoid.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORHEMIELLIPSOID_H
 #define BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORHEMIELLIPSOID_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 //! An hemi ellipsoid,
 //!   obtained by truncating a full ellipsoid in the middle plane spanned by two principal axes.
diff --git a/Sample/HardParticle/FormFactorLongBoxGauss.h b/Sample/HardParticle/FormFactorLongBoxGauss.h
index 955a193068d6c8d111ed0bf99eccfb755698ce73..d9507244c64e8be390ac701427e388283094d4a1 100644
--- a/Sample/HardParticle/FormFactorLongBoxGauss.h
+++ b/Sample/HardParticle/FormFactorLongBoxGauss.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORLONGBOXGAUSS_H
 #define BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORLONGBOXGAUSS_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 //! The form factor for a long rectangular box.
 //! @ingroup legacyGrating
diff --git a/Sample/HardParticle/FormFactorLongBoxLorentz.h b/Sample/HardParticle/FormFactorLongBoxLorentz.h
index 37c82a172fbbd25cca68d4c88ba0301575e5d497..7e270b917cce22f4a568b6e2e83da92a1baf98dd 100644
--- a/Sample/HardParticle/FormFactorLongBoxLorentz.h
+++ b/Sample/HardParticle/FormFactorLongBoxLorentz.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORLONGBOXLORENTZ_H
 #define BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORLONGBOXLORENTZ_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 //! The form factor for a long rectangular box.
 //! @ingroup legacyGrating
diff --git a/Sample/HardParticle/FormFactorTruncatedSphere.h b/Sample/HardParticle/FormFactorTruncatedSphere.h
index 536cf76d375078c3dfeb5062c481778cf45ea84a..f0998a2091995edefb345c9cd8484db309f9c900 100644
--- a/Sample/HardParticle/FormFactorTruncatedSphere.h
+++ b/Sample/HardParticle/FormFactorTruncatedSphere.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORTRUNCATEDSPHERE_H
 #define BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORTRUNCATEDSPHERE_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 //! A truncated Sphere.
 //! @ingroup hardParticle
diff --git a/Sample/HardParticle/FormFactorTruncatedSpheroid.h b/Sample/HardParticle/FormFactorTruncatedSpheroid.h
index 23858012443aa9c0a7596c32cfc3389cd243ce16..7a19fb99b1eb9b6049b3fbd0dfdbabd5e28dcce5 100644
--- a/Sample/HardParticle/FormFactorTruncatedSpheroid.h
+++ b/Sample/HardParticle/FormFactorTruncatedSpheroid.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORTRUNCATEDSPHEROID_H
 #define BORNAGAIN_SAMPLE_HARDPARTICLE_FORMFACTORTRUNCATEDSPHEROID_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 //! A truncated spheroid.
 //! An ellipsoid with two equal axis, truncated by a plane perpendicular to the third axis.
diff --git a/Sample/HardParticle/IFormFactorPolyhedron.h b/Sample/HardParticle/IFormFactorPolyhedron.h
index 3ab3e01ef521a50a6a9d8b00887d499edfef4126..cb3cc4f6005df5b18400cb2922c522849abf6976 100644
--- a/Sample/HardParticle/IFormFactorPolyhedron.h
+++ b/Sample/HardParticle/IFormFactorPolyhedron.h
@@ -16,7 +16,7 @@
 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_IFORMFACTORPOLYHEDRON_H
 #define BORNAGAIN_SAMPLE_HARDPARTICLE_IFORMFACTORPOLYHEDRON_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 #include "Sample/ff/PolyhedralTopology.h"
 #include <memory>
 
diff --git a/Sample/HardParticle/IFormFactorPrism.h b/Sample/HardParticle/IFormFactorPrism.h
index 330fe2cc8a904a7fd0b01ff37a5e7196e537a20d..9e8cc7e872702e849660d2ebdbd9678b3b10c524 100644
--- a/Sample/HardParticle/IFormFactorPrism.h
+++ b/Sample/HardParticle/IFormFactorPrism.h
@@ -16,7 +16,7 @@
 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_IFORMFACTORPRISM_H
 #define BORNAGAIN_SAMPLE_HARDPARTICLE_IFORMFACTORPRISM_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 #include <memory>
 
 namespace ff {
diff --git a/Sample/HardParticle/IProfileRipple.h b/Sample/HardParticle/IProfileRipple.h
index f480ed09f0caffb515a371e32848787287cc94fb..429d2b4f52fa5fa824c78a66f13c1fd7982fa28c 100644
--- a/Sample/HardParticle/IProfileRipple.h
+++ b/Sample/HardParticle/IProfileRipple.h
@@ -16,7 +16,7 @@
 #ifndef BORNAGAIN_SAMPLE_HARDPARTICLE_IPROFILERIPPLE_H
 #define BORNAGAIN_SAMPLE_HARDPARTICLE_IPROFILERIPPLE_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 //! Base class for form factors with a cosine ripple profile in the yz plane.
 
diff --git a/Sample/Scattering/IBornFF.cpp b/Sample/Particle/IBornFF.cpp
similarity index 97%
rename from Sample/Scattering/IBornFF.cpp
rename to Sample/Particle/IBornFF.cpp
index 629d033cd2cf9348b262848f8d3aaacee6815f14..00f2b4470d90002e53f9fa4df3571344d44f7cbb 100644
--- a/Sample/Scattering/IBornFF.cpp
+++ b/Sample/Particle/IBornFF.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      Sample/Scattering/IBornFF.cpp
+//! @file      Sample/Particle/IBornFF.cpp
 //! @brief     Implements interface class IBornFF.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 //  ************************************************************************************************
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 #include "Base/Util/Algorithms.h"
 #include "Base/Util/PyFmt.h"
 #include "Base/Util/StringUtils.h"
diff --git a/Sample/Scattering/IBornFF.h b/Sample/Particle/IBornFF.h
similarity index 94%
rename from Sample/Scattering/IBornFF.h
rename to Sample/Particle/IBornFF.h
index dd06b6e04a82fc67754cacdac5d46cebcc274b81..29ce8cd5b03735b1dd0e3c61b4dc71497d8474b9 100644
--- a/Sample/Scattering/IBornFF.h
+++ b/Sample/Particle/IBornFF.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      Sample/Scattering/IBornFF.h
+//! @file      Sample/Particle/IBornFF.h
 //! @brief     Defines interface IDecoratableBorn.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -13,8 +13,8 @@
 //  ************************************************************************************************
 
 #ifndef USER_API
-#ifndef BORNAGAIN_SAMPLE_SCATTERING_IBORNFF_H
-#define BORNAGAIN_SAMPLE_SCATTERING_IBORNFF_H
+#ifndef BORNAGAIN_SAMPLE_PARTICLE_IBORNFF_H
+#define BORNAGAIN_SAMPLE_PARTICLE_IBORNFF_H
 
 #include "Sample/Scattering/ISampleNode.h"
 #include <Eigen/Core>
@@ -85,5 +85,5 @@ protected:
     NodeMeta m_nodeMeta; //!< stored for python code generation
 };
 
-#endif // BORNAGAIN_SAMPLE_SCATTERING_IBORNFF_H
+#endif // BORNAGAIN_SAMPLE_PARTICLE_IBORNFF_H
 #endif // USER_API
diff --git a/Sample/Particle/MesoCrystal.cpp b/Sample/Particle/MesoCrystal.cpp
index cf93321ceebc45bad82e251abd247e78730bb6bc..ff27ce9cd44815c67cc3ab3d412f512e62a01c10 100644
--- a/Sample/Particle/MesoCrystal.cpp
+++ b/Sample/Particle/MesoCrystal.cpp
@@ -15,7 +15,7 @@
 #include "Sample/Particle/MesoCrystal.h"
 #include "Base/Util/Assert.h"
 #include "Sample/Particle/Crystal.h"
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 #include "Sample/Scattering/Rotations.h"
 
 MesoCrystal::MesoCrystal(Crystal* crystal, IBornFF* formfactor)
diff --git a/Sample/Particle/Particle.h b/Sample/Particle/Particle.h
index d991f55a1017a7c70450378700324a5eb0bd211c..474ccd9775415257eddb1f0f9ec05df97f33a96d 100644
--- a/Sample/Particle/Particle.h
+++ b/Sample/Particle/Particle.h
@@ -17,7 +17,7 @@
 
 #include "Sample/Material/Material.h"
 #include "Sample/Particle/IParticle.h"
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 //! A particle with a form factor and refractive index.
 //! @ingroup samples
diff --git a/Sample/SoftParticle/FormFactorGauss.h b/Sample/SoftParticle/FormFactorGauss.h
index 186a0d7070a1f9387cd568ccde2db0a8debe0668..f544d39cb300031a6b978c41ae7d7913fc393728 100644
--- a/Sample/SoftParticle/FormFactorGauss.h
+++ b/Sample/SoftParticle/FormFactorGauss.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_SOFTPARTICLE_FORMFACTORGAUSS_H
 #define BORNAGAIN_SAMPLE_SOFTPARTICLE_FORMFACTORGAUSS_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 
 //! The form factor of a Gaussian sphere.
 //! @ingroup softParticle
diff --git a/Sample/SoftParticle/FormFactorSphereGaussianRadius.h b/Sample/SoftParticle/FormFactorSphereGaussianRadius.h
index 5c138df9ca358c506d1cb0c2111ae5f155463708..d8392fe706f2b1ab68fd06a94c6f92639cf2a306 100644
--- a/Sample/SoftParticle/FormFactorSphereGaussianRadius.h
+++ b/Sample/SoftParticle/FormFactorSphereGaussianRadius.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_SOFTPARTICLE_FORMFACTORSPHEREGAUSSIANRADIUS_H
 #define BORNAGAIN_SAMPLE_SOFTPARTICLE_FORMFACTORSPHEREGAUSSIANRADIUS_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 #include <memory>
 
 //! A sphere with gaussian radius distribution.
diff --git a/Sample/SoftParticle/FormFactorSphereLogNormalRadius.h b/Sample/SoftParticle/FormFactorSphereLogNormalRadius.h
index 318219cdbda342686334ad1483628bb406a79067..dac3bde432590319dcbbba1e88ff61571b06e9b2 100644
--- a/Sample/SoftParticle/FormFactorSphereLogNormalRadius.h
+++ b/Sample/SoftParticle/FormFactorSphereLogNormalRadius.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_SAMPLE_SOFTPARTICLE_FORMFACTORSPHERELOGNORMALRADIUS_H
 #define BORNAGAIN_SAMPLE_SOFTPARTICLE_FORMFACTORSPHERELOGNORMALRADIUS_H
 
-#include "Sample/Scattering/IBornFF.h"
+#include "Sample/Particle/IBornFF.h"
 #include <memory>
 
 //! A sphere with log normal radius distribution.
diff --git a/Wrap/Swig/libBornAgainSample.i b/Wrap/Swig/libBornAgainSample.i
index f14c80be9e7ad6448c555a6d2aadd8fcba0aa600..e5ec19200313d4e5019f97c352334b480a3a52b8 100644
--- a/Wrap/Swig/libBornAgainSample.i
+++ b/Wrap/Swig/libBornAgainSample.i
@@ -117,7 +117,7 @@
 %include "Sample/Material/MaterialFactoryFuncs.h"
 
 %include "Sample/Scattering/ISampleNode.h"
-%include "Sample/Scattering/IBornFF.h"
+%include "Sample/Particle/IBornFF.h"
 %include "Sample/Scattering/Rotations.h"
 
 %include "Sample/Particle/Crystal.h"
diff --git a/auto/Wrap/doxygenSample.i b/auto/Wrap/doxygenSample.i
index dbc80124e01e9155767931465034506f7310f897..129336f9c16d88684b31e10fe250ba8260902859 100644
--- a/auto/Wrap/doxygenSample.i
+++ b/auto/Wrap/doxygenSample.i
@@ -5675,6 +5675,12 @@ magnetization (in A/m)
 // File: Crystal_8h.xml
 
 
+// File: IBornFF_8cpp.xml
+
+
+// File: IBornFF_8h.xml
+
+
 // File: IParticle_8cpp.xml
 
 
@@ -5705,12 +5711,6 @@ magnetization (in A/m)
 // File: ParticleCoreShell_8h.xml
 
 
-// File: IBornFF_8cpp.xml
-
-
-// File: IBornFF_8h.xml
-
-
 // File: ISampleNode_8cpp.xml