From ccb7201e6c0a22f4183d56347e8955b462e4ee84 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Fri, 9 Oct 2020 01:02:50 +0200
Subject: [PATCH] done with directory decoupling

---
 .../DetectorContext.cpp                       |   6 +-
 .../DetectorContext.h                         |   2 +-
 .../DetectorFunctions.cpp                     |   8 +-
 .../DetectorFunctions.h                       |   4 +-
 .../DetectorMask.cpp                          |   6 +-
 .../{TrueDetector => Detector}/DetectorMask.h |   2 +-
 Core/{TrueDetector => Detector}/IDetector.cpp |  12 +-
 Core/{TrueDetector => Detector}/IDetector.h   |   4 +-
 .../IDetector2D.cpp                           |  12 +-
 Core/{TrueDetector => Detector}/IDetector2D.h |   6 +-
 .../IsGISAXSDetector.cpp                      |   4 +-
 .../IsGISAXSDetector.h                        |   4 +-
 .../RectangularDetector.cpp                   |   8 +-
 .../RectangularDetector.h                     |   4 +-
 .../RectangularPixel.cpp                      |   6 +-
 .../RectangularPixel.h                        |   2 +-
 .../RegionOfInterest.cpp                      |   6 +-
 .../RegionOfInterest.h                        |   2 +-
 .../SimpleUnitConverters.cpp                  |  12 +-
 .../SimpleUnitConverters.h                    |   2 +-
 .../SimulationArea.cpp                        |  10 +-
 .../SimulationArea.h                          |   4 +-
 .../SimulationAreaIterator.cpp                |   8 +-
 .../SimulationAreaIterator.h                  |   2 +-
 .../SpecularDetector1D.cpp                    |   4 +-
 .../SpecularDetector1D.h                      |   4 +-
 .../SphericalDetector.cpp                     |   4 +-
 .../SphericalDetector.h                       |   4 +-
 Core/Export/SimulationToPython.cpp            |   8 +-
 Core/Fitting/SimDataPair.cpp                  |   2 +-
 Core/Instrument/Instrument.cpp                |   4 +-
 Core/Instrument/Instrument.h                  |   2 +-
 .../IntensityDataFunctions.cpp                |   8 +-
 .../IntensityDataFunctions.h                  |   2 +-
 .../ConvolutionDetectorResolution.cpp         |   6 +-
 .../ConvolutionDetectorResolution.h           |   2 +-
 Core/{Detector => Resolution}/Convolve.cpp    |   4 +-
 Core/{Detector => Resolution}/Convolve.h      |   2 +-
 Core/Simulation/DepthProbeSimulation.cpp      |   4 +-
 Core/Simulation/OffSpecSimulation.cpp         |   2 +-
 Core/Simulation/Simulation.cpp                |   2 +-
 Core/Simulation/Simulation.h                  |   2 +-
 Core/Simulation/Simulation2D.cpp              |   4 +-
 Core/Simulation/SpecularSimulation.cpp        |   2 +-
 Core/Simulation/StandardSimulations.cpp       |   4 +-
 Core/Simulation/UnitConverterUtils.cpp        |   6 +-
 .../Models/DepthProbeInstrumentItem.cpp       |   2 +-
 GUI/coregui/Models/DetectorItems.cpp          |   2 +-
 GUI/coregui/Models/DomainObjectBuilder.cpp    |   4 +-
 GUI/coregui/Models/InstrumentItems.cpp        |   2 +-
 GUI/coregui/Models/JobItemUtils.h             |   2 +-
 GUI/coregui/Models/JobModelFunctions.cpp      |   4 +-
 .../Models/RectangularDetectorItem.cpp        |   2 +-
 GUI/coregui/Models/SphericalDetectorItem.cpp  |   2 +-
 GUI/coregui/Models/TransformFromDomain.cpp    |   8 +-
 .../FitWidgets/FitComparisonController.cpp    |   2 +-
 .../FitComparisonViewController.cpp           |   2 +-
 .../RealDataSelectorActions.cpp               |   2 +-
 .../IntensityDataFFTPresenter.cpp             |   2 +-
 .../MaskWidgets/MaskResultsPresenter.cpp      |   4 +-
 .../Views/MaskWidgets/MaskUnitsConverter.cpp  |   2 +-
 .../Core/Consistence/CompareTwoReferences.cpp |   2 +-
 .../Core/CoreSpecial/BatchSimulation.cpp      |   2 +-
 .../Core/CoreSpecial/CoreIOPathTest.cpp       |   2 +-
 .../CoreSpecial/FourierTransformationTest.cpp |   2 +-
 Tests/Functional/Core/Fitting/PlanCases.cpp   |   2 +-
 Tests/Functional/Core/MPI/mpitest.cpp         |   2 +-
 Tests/Functional/Core/Std/Check.cpp           |   2 +-
 Tests/Functional/GUI/Std/Check.cpp            |   2 +-
 Tests/Functional/Python/Std/Check.cpp         |   2 +-
 Tests/Performance/Core/Mesocrystal.cpp        |   2 +-
 .../Performance/Core/ThreadingComponents.cpp  |   2 +-
 .../Core/Axes/DepthProbeConverterTest.cpp     |   2 +-
 .../IntensityDataFunctionsTest.cpp            |   2 +-
 .../Core/DataStructure/OutputDataTest.cpp     |   2 +-
 .../Core/Detector/DetectorMaskTest.cpp        |   4 +-
 .../Detector/OffSpecularConverterTest.cpp     |   4 +-
 .../Detector/RectangularConverterTest.cpp     |   4 +-
 .../Core/Detector/RectangularDetectorTest.cpp |   2 +-
 .../Core/Detector/RegionOfInterestTest.cpp    |   4 +-
 .../Core/Detector/SimulationAreaTest.cpp      |   6 +-
 .../Core/Detector/SpecularDetector1DTest.cpp  |   4 +-
 .../Core/Detector/SphericalConverterTest.cpp  |   4 +-
 .../Core/Detector/SphericalDetectorTest.cpp   |  10 +-
 Tests/UnitTests/GUI/TestDetectorItems.cpp     |   4 +-
 Tests/UnitTests/GUI/Utils.cpp                 |   2 +-
 Wrap/swig/libBornAgainCore.i                  |  26 +-
 auto/Wrap/doxygenCore.i                       | 343 +++++++++---------
 auto/Wrap/libBornAgainCore_wrap.cpp           |  22 +-
 89 files changed, 371 insertions(+), 356 deletions(-)
 rename Core/{TrueDetector => Detector}/DetectorContext.cpp (91%)
 rename Core/{TrueDetector => Detector}/DetectorContext.h (96%)
 rename Core/{TrueDetector => Detector}/DetectorFunctions.cpp (89%)
 rename Core/{TrueDetector => Detector}/DetectorFunctions.h (94%)
 rename Core/{TrueDetector => Detector}/DetectorMask.cpp (96%)
 rename Core/{TrueDetector => Detector}/DetectorMask.h (97%)
 rename Core/{TrueDetector => Detector}/IDetector.cpp (95%)
 rename Core/{TrueDetector => Detector}/IDetector.h (97%)
 rename Core/{TrueDetector => Detector}/IDetector2D.cpp (90%)
 rename Core/{TrueDetector => Detector}/IDetector2D.h (95%)
 rename Core/{TrueDetector => Detector}/IsGISAXSDetector.cpp (94%)
 rename Core/{TrueDetector => Detector}/IsGISAXSDetector.h (94%)
 rename Core/{TrueDetector => Detector}/RectangularDetector.cpp (97%)
 rename Core/{TrueDetector => Detector}/RectangularDetector.h (97%)
 rename Core/{TrueDetector => Detector}/RectangularPixel.cpp (94%)
 rename Core/{TrueDetector => Detector}/RectangularPixel.h (96%)
 rename Core/{TrueDetector => Detector}/RegionOfInterest.cpp (96%)
 rename Core/{TrueDetector => Detector}/RegionOfInterest.h (98%)
 rename Core/{TrueDetector => Detector}/SimpleUnitConverters.cpp (98%)
 rename Core/{TrueDetector => Detector}/SimpleUnitConverters.h (99%)
 rename Core/{TrueDetector => Detector}/SimulationArea.cpp (90%)
 rename Core/{TrueDetector => Detector}/SimulationArea.h (94%)
 rename Core/{TrueDetector => Detector}/SimulationAreaIterator.cpp (90%)
 rename Core/{TrueDetector => Detector}/SimulationAreaIterator.h (97%)
 rename Core/{TrueDetector => Detector}/SpecularDetector1D.cpp (92%)
 rename Core/{TrueDetector => Detector}/SpecularDetector1D.h (94%)
 rename Core/{TrueDetector => Detector}/SphericalDetector.cpp (96%)
 rename Core/{TrueDetector => Detector}/SphericalDetector.h (95%)
 rename Core/{TrueDetector => Instrument}/IntensityDataFunctions.cpp (98%)
 rename Core/{TrueDetector => Instrument}/IntensityDataFunctions.h (98%)
 rename Core/{Detector => Resolution}/ConvolutionDetectorResolution.cpp (98%)
 rename Core/{Detector => Resolution}/ConvolutionDetectorResolution.h (97%)
 rename Core/{Detector => Resolution}/Convolve.cpp (99%)
 rename Core/{Detector => Resolution}/Convolve.h (99%)

diff --git a/Core/TrueDetector/DetectorContext.cpp b/Core/Detector/DetectorContext.cpp
similarity index 91%
rename from Core/TrueDetector/DetectorContext.cpp
rename to Core/Detector/DetectorContext.cpp
index 83b7551a210..452e94d54ce 100644
--- a/Core/TrueDetector/DetectorContext.cpp
+++ b/Core/Detector/DetectorContext.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/DetectorContext.cpp
+//! @file      Core/Detector/DetectorContext.cpp
 //! @brief     Implements DetectorContext class.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/DetectorContext.h"
-#include "Core/TrueDetector/IDetector2D.h"
+#include "Core/Detector/DetectorContext.h"
+#include "Core/Detector/IDetector2D.h"
 
 DetectorContext::DetectorContext(const IDetector2D* detector)
 {
diff --git a/Core/TrueDetector/DetectorContext.h b/Core/Detector/DetectorContext.h
similarity index 96%
rename from Core/TrueDetector/DetectorContext.h
rename to Core/Detector/DetectorContext.h
index 7b0f19283ee..9e30da90697 100644
--- a/Core/TrueDetector/DetectorContext.h
+++ b/Core/Detector/DetectorContext.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/DetectorContext.h
+//! @file      Core/Detector/DetectorContext.h
 //! @brief     Define DetectorContext class.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Core/TrueDetector/DetectorFunctions.cpp b/Core/Detector/DetectorFunctions.cpp
similarity index 89%
rename from Core/TrueDetector/DetectorFunctions.cpp
rename to Core/Detector/DetectorFunctions.cpp
index f8258cff18a..56c2542b7c9 100644
--- a/Core/TrueDetector/DetectorFunctions.cpp
+++ b/Core/Detector/DetectorFunctions.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/DetectorFunctions.cpp
+//! @file      Core/Detector/DetectorFunctions.cpp
 //! @brief     Implements namespace DetectorFunctions.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/DetectorFunctions.h"
-#include "Core/TrueDetector/SimulationArea.h"
-#include "Core/TrueDetector/SimulationAreaIterator.h"
+#include "Core/Detector/DetectorFunctions.h"
+#include "Core/Detector/SimulationArea.h"
+#include "Core/Detector/SimulationAreaIterator.h"
 #include "Core/Data/OutputData.h"
 #include "Fit/Tools/StringUtils.h"
 #include <algorithm>
diff --git a/Core/TrueDetector/DetectorFunctions.h b/Core/Detector/DetectorFunctions.h
similarity index 94%
rename from Core/TrueDetector/DetectorFunctions.h
rename to Core/Detector/DetectorFunctions.h
index 10234a5d9b3..cb031dfcd16 100644
--- a/Core/TrueDetector/DetectorFunctions.h
+++ b/Core/Detector/DetectorFunctions.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/DetectorFunctions.h
+//! @file      Core/Detector/DetectorFunctions.h
 //! @brief     Defines namespace DetectorFunctions.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_DETECTOR_DETECTORFUNCTIONS_H
 #define BORNAGAIN_CORE_DETECTOR_DETECTORFUNCTIONS_H
 
-#include "Core/TrueDetector/IDetector.h"
+#include "Core/Detector/IDetector.h"
 #include <functional>
 #include <memory>
 #include <string>
diff --git a/Core/TrueDetector/DetectorMask.cpp b/Core/Detector/DetectorMask.cpp
similarity index 96%
rename from Core/TrueDetector/DetectorMask.cpp
rename to Core/Detector/DetectorMask.cpp
index bb5f4608d03..084efd22047 100644
--- a/Core/TrueDetector/DetectorMask.cpp
+++ b/Core/Detector/DetectorMask.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/DetectorMask.cpp
+//! @file      Core/Detector/DetectorMask.cpp
 //! @brief     Implements class DetectorMask.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/IDetector2D.h"
-#include "Core/TrueDetector/RegionOfInterest.h"
+#include "Core/Detector/IDetector2D.h"
+#include "Core/Detector/RegionOfInterest.h"
 #include "Core/Histo/Histogram2D.h"
 
 DetectorMask::DetectorMask() : m_number_of_masked_channels(0) {}
diff --git a/Core/TrueDetector/DetectorMask.h b/Core/Detector/DetectorMask.h
similarity index 97%
rename from Core/TrueDetector/DetectorMask.h
rename to Core/Detector/DetectorMask.h
index e7450c68245..6fda21a0d74 100644
--- a/Core/TrueDetector/DetectorMask.h
+++ b/Core/Detector/DetectorMask.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/DetectorMask.h
+//! @file      Core/Detector/DetectorMask.h
 //! @brief     Defines class DetectorMask.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Core/TrueDetector/IDetector.cpp b/Core/Detector/IDetector.cpp
similarity index 95%
rename from Core/TrueDetector/IDetector.cpp
rename to Core/Detector/IDetector.cpp
index c0f1c0c49f9..eebc8bac5e1 100644
--- a/Core/TrueDetector/IDetector.cpp
+++ b/Core/Detector/IDetector.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/IDetector.cpp
+//! @file      Core/Detector/IDetector.cpp
 //! @brief     Implements common detector interface.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/IDetector.h"
+#include "Core/Detector/IDetector.h"
 #include "Core/Axis/IAxis.h"
-#include "Core/Detector/ConvolutionDetectorResolution.h"
-#include "Core/TrueDetector/DetectorMask.h"
+#include "Core/Resolution/ConvolutionDetectorResolution.h"
+#include "Core/Detector/DetectorMask.h"
 #include "Core/Resolution/IDetectorResolution.h"
-#include "Core/TrueDetector/RegionOfInterest.h"
-#include "Core/TrueDetector/SimulationArea.h"
+#include "Core/Detector/RegionOfInterest.h"
+#include "Core/Detector/SimulationArea.h"
 #include "Core/Data/OutputData.h"
 #include "Core/Pixel/SimulationElement.h"
 
diff --git a/Core/TrueDetector/IDetector.h b/Core/Detector/IDetector.h
similarity index 97%
rename from Core/TrueDetector/IDetector.h
rename to Core/Detector/IDetector.h
index f86c58631f1..4fa1ef1430f 100644
--- a/Core/TrueDetector/IDetector.h
+++ b/Core/Detector/IDetector.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/IDetector.h
+//! @file      Core/Detector/IDetector.h
 //! @brief     Defines common detector interface.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -18,7 +18,7 @@
 #include "Base/Types/CloneableVector.h"
 #include "Base/Types/ICloneable.h"
 #include "Core/Detector/DetectionProperties.h"
-#include "Core/TrueDetector/SimulationAreaIterator.h"
+#include "Core/Detector/SimulationAreaIterator.h"
 #include "Core/Unit/IUnitConverter.h"
 #include "Core/Parametrization/INode.h"
 
diff --git a/Core/TrueDetector/IDetector2D.cpp b/Core/Detector/IDetector2D.cpp
similarity index 90%
rename from Core/TrueDetector/IDetector2D.cpp
rename to Core/Detector/IDetector2D.cpp
index 8759fa220c3..107cbaf6ed8 100644
--- a/Core/TrueDetector/IDetector2D.cpp
+++ b/Core/Detector/IDetector2D.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/IDetector2D.cpp
+//! @file      Core/Detector/IDetector2D.cpp
 //! @brief     Implements shared functionality of interface IDetector2D.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/IDetector2D.h"
+#include "Core/Detector/IDetector2D.h"
 #include "Base/Const/Units.h"
 #include "Core/Beam/Beam.h"
-#include "Core/TrueDetector/DetectorContext.h"
-#include "Core/TrueDetector/DetectorFunctions.h"
-#include "Core/TrueDetector/RegionOfInterest.h"
-#include "Core/TrueDetector/SimulationArea.h"
+#include "Core/Detector/DetectorContext.h"
+#include "Core/Detector/DetectorFunctions.h"
+#include "Core/Detector/RegionOfInterest.h"
+#include "Core/Detector/SimulationArea.h"
 #include "Core/Mask/InfinitePlane.h"
 #include "Core/Pixel/SimulationElement.h"
 
diff --git a/Core/TrueDetector/IDetector2D.h b/Core/Detector/IDetector2D.h
similarity index 95%
rename from Core/TrueDetector/IDetector2D.h
rename to Core/Detector/IDetector2D.h
index 441c3ace9ae..822e472a9eb 100644
--- a/Core/TrueDetector/IDetector2D.h
+++ b/Core/Detector/IDetector2D.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/IDetector2D.h
+//! @file      Core/Detector/IDetector2D.h
 //! @brief     Defines interface IDetector2D.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,8 +15,8 @@
 #ifndef BORNAGAIN_CORE_DETECTOR_IDETECTOR2D_H
 #define BORNAGAIN_CORE_DETECTOR_IDETECTOR2D_H
 
-#include "Core/TrueDetector/DetectorMask.h"
-#include "Core/TrueDetector/IDetector.h"
+#include "Core/Detector/DetectorMask.h"
+#include "Core/Detector/IDetector.h"
 #include <memory>
 
 class Beam;
diff --git a/Core/TrueDetector/IsGISAXSDetector.cpp b/Core/Detector/IsGISAXSDetector.cpp
similarity index 94%
rename from Core/TrueDetector/IsGISAXSDetector.cpp
rename to Core/Detector/IsGISAXSDetector.cpp
index 5ffef6308ff..e2a7f8f4a53 100644
--- a/Core/TrueDetector/IsGISAXSDetector.cpp
+++ b/Core/Detector/IsGISAXSDetector.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/IsGISAXSDetector.cpp
+//! @file      Core/Detector/IsGISAXSDetector.cpp
 //! @brief     Implements class IsGISAXSDetector.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/IsGISAXSDetector.h"
+#include "Core/Detector/IsGISAXSDetector.h"
 #include "Core/Axis/CustomBinAxis.h"
 
 IsGISAXSDetector::IsGISAXSDetector()
diff --git a/Core/TrueDetector/IsGISAXSDetector.h b/Core/Detector/IsGISAXSDetector.h
similarity index 94%
rename from Core/TrueDetector/IsGISAXSDetector.h
rename to Core/Detector/IsGISAXSDetector.h
index 6ed28008b2f..0bfdc109ed1 100644
--- a/Core/TrueDetector/IsGISAXSDetector.h
+++ b/Core/Detector/IsGISAXSDetector.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/IsGISAXSDetector.h
+//! @file      Core/Detector/IsGISAXSDetector.h
 //! @brief     Defines class IsGISAXSDetector.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_DETECTOR_ISGISAXSDETECTOR_H
 #define BORNAGAIN_CORE_DETECTOR_ISGISAXSDETECTOR_H
 
-#include "Core/TrueDetector/SphericalDetector.h"
+#include "Core/Detector/SphericalDetector.h"
 
 //! A spherical detector used for validation with IsGISAXS results.
 //! @ingroup detector
diff --git a/Core/TrueDetector/RectangularDetector.cpp b/Core/Detector/RectangularDetector.cpp
similarity index 97%
rename from Core/TrueDetector/RectangularDetector.cpp
rename to Core/Detector/RectangularDetector.cpp
index 066ee4a457a..257e1c2609b 100644
--- a/Core/TrueDetector/RectangularDetector.cpp
+++ b/Core/Detector/RectangularDetector.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/RectangularDetector.cpp
+//! @file      Core/Detector/RectangularDetector.cpp
 //! @brief     Implements class RectangularDetector.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,13 +12,13 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/RectangularDetector.h"
+#include "Core/Detector/RectangularDetector.h"
 #include "Base/Const/MathConstants.h"
 #include "Base/Const/Units.h"
 #include "Core/Beam/Beam.h"
 #include "Core/Resolution/IDetectorResolution.h"
-#include "Core/TrueDetector/RectangularPixel.h"
-#include "Core/TrueDetector/RegionOfInterest.h"
+#include "Core/Detector/RectangularPixel.h"
+#include "Core/Detector/RegionOfInterest.h"
 #include "Core/Pixel/SimulationElement.h"
 
 RectangularDetector::RectangularDetector(size_t nxbins, double width, size_t nybins, double height)
diff --git a/Core/TrueDetector/RectangularDetector.h b/Core/Detector/RectangularDetector.h
similarity index 97%
rename from Core/TrueDetector/RectangularDetector.h
rename to Core/Detector/RectangularDetector.h
index f67e58ab945..5455a011b67 100644
--- a/Core/TrueDetector/RectangularDetector.h
+++ b/Core/Detector/RectangularDetector.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/RectangularDetector.h
+//! @file      Core/Detector/RectangularDetector.h
 //! @brief     Defines class RectangularDetector.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_DETECTOR_RECTANGULARDETECTOR_H
 #define BORNAGAIN_CORE_DETECTOR_RECTANGULARDETECTOR_H
 
-#include "Core/TrueDetector/IDetector2D.h"
+#include "Core/Detector/IDetector2D.h"
 
 class IPixel;
 class RectangularPixel;
diff --git a/Core/TrueDetector/RectangularPixel.cpp b/Core/Detector/RectangularPixel.cpp
similarity index 94%
rename from Core/TrueDetector/RectangularPixel.cpp
rename to Core/Detector/RectangularPixel.cpp
index 8e4c5e18e99..0729da62d35 100644
--- a/Core/TrueDetector/RectangularPixel.cpp
+++ b/Core/Detector/RectangularPixel.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/RectangularPixel.cpp
+//! @file      Core/Detector/RectangularPixel.cpp
 //! @brief     Implements class RectangularPixel.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,12 +12,12 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/RectangularPixel.h"
+#include "Core/Detector/RectangularPixel.h"
 #include "Base/Const/MathConstants.h"
 #include "Base/Const/Units.h"
 #include "Core/Beam/Beam.h"
 #include "Core/Resolution/IDetectorResolution.h"
-#include "Core/TrueDetector/RegionOfInterest.h"
+#include "Core/Detector/RegionOfInterest.h"
 #include "Core/Pixel/SimulationElement.h"
 
 RectangularPixel::RectangularPixel(kvector_t corner_pos, kvector_t width, kvector_t height)
diff --git a/Core/TrueDetector/RectangularPixel.h b/Core/Detector/RectangularPixel.h
similarity index 96%
rename from Core/TrueDetector/RectangularPixel.h
rename to Core/Detector/RectangularPixel.h
index d3765728aed..a979747d16a 100644
--- a/Core/TrueDetector/RectangularPixel.h
+++ b/Core/Detector/RectangularPixel.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/RectangularPixel.h
+//! @file      Core/Detector/RectangularPixel.h
 //! @brief     Defines class RectangularPixel.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Core/TrueDetector/RegionOfInterest.cpp b/Core/Detector/RegionOfInterest.cpp
similarity index 96%
rename from Core/TrueDetector/RegionOfInterest.cpp
rename to Core/Detector/RegionOfInterest.cpp
index ab37f3b0bfd..427c5afec37 100644
--- a/Core/TrueDetector/RegionOfInterest.cpp
+++ b/Core/Detector/RegionOfInterest.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/RegionOfInterest.cpp
+//! @file      Core/Detector/RegionOfInterest.cpp
 //! @brief     Implements class RegionOfInterest.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/RegionOfInterest.h"
+#include "Core/Detector/RegionOfInterest.h"
 #include "Base/Types/Exceptions.h"
-#include "Core/TrueDetector/IDetector2D.h"
+#include "Core/Detector/IDetector2D.h"
 #include "Core/Mask/Rectangle.h"
 
 RegionOfInterest::RegionOfInterest(const IDetector2D& detector, double xlow, double ylow,
diff --git a/Core/TrueDetector/RegionOfInterest.h b/Core/Detector/RegionOfInterest.h
similarity index 98%
rename from Core/TrueDetector/RegionOfInterest.h
rename to Core/Detector/RegionOfInterest.h
index 956d561d785..676e82b1ee5 100644
--- a/Core/TrueDetector/RegionOfInterest.h
+++ b/Core/Detector/RegionOfInterest.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/RegionOfInterest.h
+//! @file      Core/Detector/RegionOfInterest.h
 //! @brief     Defines class RegionOfInterest.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Core/TrueDetector/SimpleUnitConverters.cpp b/Core/Detector/SimpleUnitConverters.cpp
similarity index 98%
rename from Core/TrueDetector/SimpleUnitConverters.cpp
rename to Core/Detector/SimpleUnitConverters.cpp
index dcf6538d42a..f8696689554 100644
--- a/Core/TrueDetector/SimpleUnitConverters.cpp
+++ b/Core/Detector/SimpleUnitConverters.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/SimpleUnitConverters.cpp
+//! @file      Core/Detector/SimpleUnitConverters.cpp
 //! @brief     Implements IUnitConverter classes.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,14 +12,14 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/SimpleUnitConverters.h"
+#include "Core/Detector/SimpleUnitConverters.h"
 #include "Base/Const/MathConstants.h"
 #include "Base/Const/Units.h"
 #include "Core/Beam/Beam.h"
-#include "Core/TrueDetector/RectangularDetector.h"
-#include "Core/TrueDetector/RectangularPixel.h"
-#include "Core/TrueDetector/RegionOfInterest.h"
-#include "Core/TrueDetector/SphericalDetector.h"
+#include "Core/Detector/RectangularDetector.h"
+#include "Core/Detector/RectangularPixel.h"
+#include "Core/Detector/RegionOfInterest.h"
+#include "Core/Detector/SphericalDetector.h"
 #include "Core/Unit/AxisNames.h"
 #include <algorithm>
 #include <cmath>
diff --git a/Core/TrueDetector/SimpleUnitConverters.h b/Core/Detector/SimpleUnitConverters.h
similarity index 99%
rename from Core/TrueDetector/SimpleUnitConverters.h
rename to Core/Detector/SimpleUnitConverters.h
index b66f30c0381..d9ad58867b8 100644
--- a/Core/TrueDetector/SimpleUnitConverters.h
+++ b/Core/Detector/SimpleUnitConverters.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/SimpleUnitConverters.h
+//! @file      Core/Detector/SimpleUnitConverters.h
 //! @brief     Defines interface UnitConverterSimple and its subclasses.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Core/TrueDetector/SimulationArea.cpp b/Core/Detector/SimulationArea.cpp
similarity index 90%
rename from Core/TrueDetector/SimulationArea.cpp
rename to Core/Detector/SimulationArea.cpp
index 56464e4bb9b..602bdfa7c13 100644
--- a/Core/TrueDetector/SimulationArea.cpp
+++ b/Core/Detector/SimulationArea.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/SimulationArea.cpp
+//! @file      Core/Detector/SimulationArea.cpp
 //! @brief     Implements class SimulationArea.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,11 +12,11 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/SimulationArea.h"
+#include "Core/Detector/SimulationArea.h"
 #include "Base/Types/Exceptions.h"
-#include "Core/TrueDetector/DetectorMask.h"
-#include "Core/TrueDetector/IDetector.h"
-#include "Core/TrueDetector/RegionOfInterest.h"
+#include "Core/Detector/DetectorMask.h"
+#include "Core/Detector/IDetector.h"
+#include "Core/Detector/RegionOfInterest.h"
 #include "Core/Mask/Rectangle.h"
 #include <sstream>
 
diff --git a/Core/TrueDetector/SimulationArea.h b/Core/Detector/SimulationArea.h
similarity index 94%
rename from Core/TrueDetector/SimulationArea.h
rename to Core/Detector/SimulationArea.h
index 37d11f6cbc7..156e0aa96bd 100644
--- a/Core/TrueDetector/SimulationArea.h
+++ b/Core/Detector/SimulationArea.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/SimulationArea.h
+//! @file      Core/Detector/SimulationArea.h
 //! @brief     Defines class SimulationArea.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_DETECTOR_SIMULATIONAREA_H
 #define BORNAGAIN_CORE_DETECTOR_SIMULATIONAREA_H
 
-#include "Core/TrueDetector/SimulationAreaIterator.h"
+#include "Core/Detector/SimulationAreaIterator.h"
 
 class IDetector;
 
diff --git a/Core/TrueDetector/SimulationAreaIterator.cpp b/Core/Detector/SimulationAreaIterator.cpp
similarity index 90%
rename from Core/TrueDetector/SimulationAreaIterator.cpp
rename to Core/Detector/SimulationAreaIterator.cpp
index 4c479d1f2d7..262de5c0254 100644
--- a/Core/TrueDetector/SimulationAreaIterator.cpp
+++ b/Core/Detector/SimulationAreaIterator.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/SimulationAreaIterator.cpp
+//! @file      Core/Detector/SimulationAreaIterator.cpp
 //! @brief     Implements class SimulationAreaIterator.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/SimulationAreaIterator.h"
-#include "Core/TrueDetector/IDetector2D.h"
-#include "Core/TrueDetector/SimulationArea.h"
+#include "Core/Detector/SimulationAreaIterator.h"
+#include "Core/Detector/IDetector2D.h"
+#include "Core/Detector/SimulationArea.h"
 
 SimulationAreaIterator::SimulationAreaIterator(const SimulationArea* area, size_t start_at_index)
     : m_area(area), m_index(start_at_index), m_element_index(0)
diff --git a/Core/TrueDetector/SimulationAreaIterator.h b/Core/Detector/SimulationAreaIterator.h
similarity index 97%
rename from Core/TrueDetector/SimulationAreaIterator.h
rename to Core/Detector/SimulationAreaIterator.h
index a3ba0a8b481..04ba8389ed9 100644
--- a/Core/TrueDetector/SimulationAreaIterator.h
+++ b/Core/Detector/SimulationAreaIterator.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/SimulationAreaIterator.h
+//! @file      Core/Detector/SimulationAreaIterator.h
 //! @brief     Defines class SimulationAreaIterator.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Core/TrueDetector/SpecularDetector1D.cpp b/Core/Detector/SpecularDetector1D.cpp
similarity index 92%
rename from Core/TrueDetector/SpecularDetector1D.cpp
rename to Core/Detector/SpecularDetector1D.cpp
index a7bcafd9550..7f8063a86e5 100644
--- a/Core/TrueDetector/SpecularDetector1D.cpp
+++ b/Core/Detector/SpecularDetector1D.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/SpecularDetector1D.cpp
+//! @file      Core/Detector/SpecularDetector1D.cpp
 //! @brief     Implements a detector for specular simulations.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/SpecularDetector1D.h"
+#include "Core/Detector/SpecularDetector1D.h"
 
 SpecularDetector1D::SpecularDetector1D(const IAxis& axis)
 {
diff --git a/Core/TrueDetector/SpecularDetector1D.h b/Core/Detector/SpecularDetector1D.h
similarity index 94%
rename from Core/TrueDetector/SpecularDetector1D.h
rename to Core/Detector/SpecularDetector1D.h
index 1dbb5c1d18f..8054bdc9291 100644
--- a/Core/TrueDetector/SpecularDetector1D.h
+++ b/Core/Detector/SpecularDetector1D.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/SpecularDetector1D.h
+//! @file      Core/Detector/SpecularDetector1D.h
 //! @brief     Defines a detector for specular simulations.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_DETECTOR_SPECULARDETECTOR1D_H
 #define BORNAGAIN_CORE_DETECTOR_SPECULARDETECTOR1D_H
 
-#include "Core/TrueDetector/IDetector.h"
+#include "Core/Detector/IDetector.h"
 
 class SpecularSimulationElement;
 
diff --git a/Core/TrueDetector/SphericalDetector.cpp b/Core/Detector/SphericalDetector.cpp
similarity index 96%
rename from Core/TrueDetector/SphericalDetector.cpp
rename to Core/Detector/SphericalDetector.cpp
index 788d03a3835..28fcee7bc99 100644
--- a/Core/TrueDetector/SphericalDetector.cpp
+++ b/Core/Detector/SphericalDetector.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/SphericalDetector.cpp
+//! @file      Core/Detector/SphericalDetector.cpp
 //! @brief     Implements class SphericalDetector.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/SphericalDetector.h"
+#include "Core/Detector/SphericalDetector.h"
 #include "Base/Const/MathConstants.h"
 #include "Base/Const/Units.h"
 #include "Core/Beam/Beam.h"
diff --git a/Core/TrueDetector/SphericalDetector.h b/Core/Detector/SphericalDetector.h
similarity index 95%
rename from Core/TrueDetector/SphericalDetector.h
rename to Core/Detector/SphericalDetector.h
index 81bee18ae6d..757249b860a 100644
--- a/Core/TrueDetector/SphericalDetector.h
+++ b/Core/Detector/SphericalDetector.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/SphericalDetector.h
+//! @file      Core/Detector/SphericalDetector.h
 //! @brief     Defines class SphericalDetector.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_CORE_DETECTOR_SPHERICALDETECTOR_H
 #define BORNAGAIN_CORE_DETECTOR_SPHERICALDETECTOR_H
 
-#include "Core/TrueDetector/IDetector2D.h"
+#include "Core/Detector/IDetector2D.h"
 
 class IPixel;
 class SphericalPixel;
diff --git a/Core/Export/SimulationToPython.cpp b/Core/Export/SimulationToPython.cpp
index 2f02b7b8dce..a57b45ab077 100644
--- a/Core/Export/SimulationToPython.cpp
+++ b/Core/Export/SimulationToPython.cpp
@@ -18,11 +18,11 @@
 #include "Core/Beam/FootprintSquare.h"
 #include "Core/Computation/ConstantBackground.h"
 #include "Core/Computation/PoissonNoiseBackground.h"
-#include "Core/Detector/ConvolutionDetectorResolution.h"
-#include "Core/TrueDetector/RectangularDetector.h"
-#include "Core/TrueDetector/RegionOfInterest.h"
+#include "Core/Resolution/ConvolutionDetectorResolution.h"
+#include "Core/Detector/RectangularDetector.h"
+#include "Core/Detector/RegionOfInterest.h"
 #include "Core/Resolution/ResolutionFunction2DGaussian.h"
-#include "Core/TrueDetector/SphericalDetector.h"
+#include "Core/Detector/SphericalDetector.h"
 #include "Core/Export/INodeUtils.h"
 #include "Core/Export/SampleToPython.h"
 #include "Core/Scan/ISpecularScan.h"
diff --git a/Core/Fitting/SimDataPair.cpp b/Core/Fitting/SimDataPair.cpp
index cee1092f2ec..829106a3ac6 100644
--- a/Core/Fitting/SimDataPair.cpp
+++ b/Core/Fitting/SimDataPair.cpp
@@ -13,7 +13,7 @@
 // ************************************************************************** //
 
 #include "Core/Fitting/SimDataPair.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Data/OutputData.h"
 #include "Core/Simulation/Simulation.h"
 #include "Core/Simulation/UnitConverterUtils.h"
diff --git a/Core/Instrument/Instrument.cpp b/Core/Instrument/Instrument.cpp
index 1e460676ac4..d2e2fe2035d 100644
--- a/Core/Instrument/Instrument.cpp
+++ b/Core/Instrument/Instrument.cpp
@@ -14,9 +14,9 @@
 
 #include "Core/Instrument/Instrument.h"
 #include "Core/Beam/Beam.h"
-#include "Core/TrueDetector/DetectorFunctions.h"
+#include "Core/Detector/DetectorFunctions.h"
 #include "Core/Resolution/IResolutionFunction2D.h"
-#include "Core/TrueDetector/SphericalDetector.h"
+#include "Core/Detector/SphericalDetector.h"
 #include "Core/Histo/Histogram2D.h"
 #include "Core/Pixel/SimulationElement.h"
 
diff --git a/Core/Instrument/Instrument.h b/Core/Instrument/Instrument.h
index fb8a18d7a04..cfe761f2c48 100644
--- a/Core/Instrument/Instrument.h
+++ b/Core/Instrument/Instrument.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_CORE_INSTRUMENT_INSTRUMENT_H
 
 #include "Core/Beam/Beam.h"
-#include "Core/TrueDetector/IDetector.h"
+#include "Core/Detector/IDetector.h"
 #include "Core/Parametrization/INode.h"
 #include <memory>
 
diff --git a/Core/TrueDetector/IntensityDataFunctions.cpp b/Core/Instrument/IntensityDataFunctions.cpp
similarity index 98%
rename from Core/TrueDetector/IntensityDataFunctions.cpp
rename to Core/Instrument/IntensityDataFunctions.cpp
index 3c47be76d11..be13aec1407 100644
--- a/Core/TrueDetector/IntensityDataFunctions.cpp
+++ b/Core/Instrument/IntensityDataFunctions.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/IntensityDataFunctions.cpp
+//! @file      Core/Instrument/IntensityDataFunctions.cpp
 //! @brief     Implement class IntensityDataFunctions.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,9 +12,9 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/IntensityDataFunctions.h"
-#include "Core/Detector/ConvolutionDetectorResolution.h"
-#include "Core/TrueDetector/IDetector.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "Core/Resolution/ConvolutionDetectorResolution.h"
+#include "Core/Detector/IDetector.h"
 #include "Core/Instrument/FourierTransform.h"
 #include "Core/Instrument/Instrument.h"
 #include "Core/Instrument/SimulationResult.h"
diff --git a/Core/TrueDetector/IntensityDataFunctions.h b/Core/Instrument/IntensityDataFunctions.h
similarity index 98%
rename from Core/TrueDetector/IntensityDataFunctions.h
rename to Core/Instrument/IntensityDataFunctions.h
index a1fd1453735..8cf881a2ce9 100644
--- a/Core/TrueDetector/IntensityDataFunctions.h
+++ b/Core/Instrument/IntensityDataFunctions.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/TrueDetector/IntensityDataFunctions.h
+//! @file      Core/Instrument/IntensityDataFunctions.h
 //! @brief     Defines class IntensityDataFunctions.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Core/Detector/ConvolutionDetectorResolution.cpp b/Core/Resolution/ConvolutionDetectorResolution.cpp
similarity index 98%
rename from Core/Detector/ConvolutionDetectorResolution.cpp
rename to Core/Resolution/ConvolutionDetectorResolution.cpp
index ba092d6ef38..288cfdee248 100644
--- a/Core/Detector/ConvolutionDetectorResolution.cpp
+++ b/Core/Resolution/ConvolutionDetectorResolution.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/Detector/ConvolutionDetectorResolution.cpp
+//! @file      Core/Resolution/ConvolutionDetectorResolution.cpp
 //! @brief     Implements class ConvolutionDetectorResolution.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,8 +12,8 @@
 //
 // ************************************************************************** //
 
-#include "Core/Detector/ConvolutionDetectorResolution.h"
-#include "Core/Detector/Convolve.h"
+#include "Core/Resolution/ConvolutionDetectorResolution.h"
+#include "Core/Resolution/Convolve.h"
 
 ConvolutionDetectorResolution::ConvolutionDetectorResolution(cumulative_DF_1d res_function_1d)
     : m_dimension(1), m_res_function_1d(res_function_1d)
diff --git a/Core/Detector/ConvolutionDetectorResolution.h b/Core/Resolution/ConvolutionDetectorResolution.h
similarity index 97%
rename from Core/Detector/ConvolutionDetectorResolution.h
rename to Core/Resolution/ConvolutionDetectorResolution.h
index 77c45a7819f..a0b2e981ab0 100644
--- a/Core/Detector/ConvolutionDetectorResolution.h
+++ b/Core/Resolution/ConvolutionDetectorResolution.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/Detector/ConvolutionDetectorResolution.h
+//! @file      Core/Resolution/ConvolutionDetectorResolution.h
 //! @brief     Defines class ConvolutionDetectorResolution.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Core/Detector/Convolve.cpp b/Core/Resolution/Convolve.cpp
similarity index 99%
rename from Core/Detector/Convolve.cpp
rename to Core/Resolution/Convolve.cpp
index 248bedada29..d1e3adfc38e 100644
--- a/Core/Detector/Convolve.cpp
+++ b/Core/Resolution/Convolve.cpp
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/Detector/Convolve.cpp
+//! @file      Core/Resolution/Convolve.cpp
 //! @brief     Implements class Convolve.
 //!
 //! @homepage  http://www.bornagainproject.org
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Core/Detector/Convolve.h"
+#include "Core/Resolution/Convolve.h"
 #include "Base/Types/Exceptions.h"
 #include <iostream>
 #include <sstream>
diff --git a/Core/Detector/Convolve.h b/Core/Resolution/Convolve.h
similarity index 99%
rename from Core/Detector/Convolve.h
rename to Core/Resolution/Convolve.h
index eca94494a27..8ef045061f8 100644
--- a/Core/Detector/Convolve.h
+++ b/Core/Resolution/Convolve.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit scattering at grazing incidence
 //
-//! @file      Core/Detector/Convolve.h
+//! @file      Core/Resolution/Convolve.h
 //! @brief     Defines class MathFunctions::Convolve.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/Core/Simulation/DepthProbeSimulation.cpp b/Core/Simulation/DepthProbeSimulation.cpp
index 86e2c530af2..c351994af8e 100644
--- a/Core/Simulation/DepthProbeSimulation.cpp
+++ b/Core/Simulation/DepthProbeSimulation.cpp
@@ -18,9 +18,9 @@
 #include "Core/Beam/IFootprintFactor.h"
 #include "Core/Computation/DepthProbeComputation.h"
 #include "Core/Computation/IBackground.h"
-#include "Core/TrueDetector/SpecularDetector1D.h"
+#include "Core/Detector/SpecularDetector1D.h"
 #include "Core/Histo/Histogram1D.h"
-#include "Core/TrueDetector/SimpleUnitConverters.h"
+#include "Core/Detector/SimpleUnitConverters.h"
 #include "Core/Material/MaterialUtils.h"
 #include "Core/Multilayer/MultiLayer.h"
 #include "Core/Parametrization/Distributions.h"
diff --git a/Core/Simulation/OffSpecSimulation.cpp b/Core/Simulation/OffSpecSimulation.cpp
index 40fc389fffe..2fe0f0c65c0 100644
--- a/Core/Simulation/OffSpecSimulation.cpp
+++ b/Core/Simulation/OffSpecSimulation.cpp
@@ -15,7 +15,7 @@
 #include "Core/Simulation/OffSpecSimulation.h"
 #include "Core/Computation/DWBAComputation.h"
 #include "Core/Histo/Histogram2D.h"
-#include "Core/TrueDetector/SimpleUnitConverters.h"
+#include "Core/Detector/SimpleUnitConverters.h"
 #include "Core/Multilayer/MultiLayer.h"
 #include "Core/Parametrization/Distributions.h"
 #include "Core/Parametrization/ParameterPool.h"
diff --git a/Core/Simulation/Simulation.cpp b/Core/Simulation/Simulation.cpp
index e6bcc3e679d..1e7dcbe5305 100644
--- a/Core/Simulation/Simulation.cpp
+++ b/Core/Simulation/Simulation.cpp
@@ -15,7 +15,7 @@
 #include "Core/Simulation/Simulation.h"
 #include "Core/Computation/IBackground.h"
 #include "Core/Computation/IComputation.h"
-#include "Core/TrueDetector/DetectorFunctions.h"
+#include "Core/Detector/DetectorFunctions.h"
 #include "Core/Multilayer/MultiLayer.h"
 #include "Core/Multilayer/MultiLayerUtils.h"
 #include "Core/Parametrization/ParameterPool.h"
diff --git a/Core/Simulation/Simulation.h b/Core/Simulation/Simulation.h
index 51916d57019..a81e66c757d 100644
--- a/Core/Simulation/Simulation.h
+++ b/Core/Simulation/Simulation.h
@@ -16,7 +16,7 @@
 #define BORNAGAIN_CORE_SIMULATION_SIMULATION_H
 
 #include "Core/Computation/ProgressHandler.h"
-#include "Core/TrueDetector/IDetector2D.h"
+#include "Core/Detector/IDetector2D.h"
 #include "Core/Instrument/Instrument.h"
 #include "Core/Instrument/SimulationResult.h"
 #include "Core/Parametrization/DistributionHandler.h"
diff --git a/Core/Simulation/Simulation2D.cpp b/Core/Simulation/Simulation2D.cpp
index 9ecaadfe6c7..bd1b59919c2 100644
--- a/Core/Simulation/Simulation2D.cpp
+++ b/Core/Simulation/Simulation2D.cpp
@@ -15,8 +15,8 @@
 #include "Core/Simulation/Simulation2D.h"
 #include "Core/Computation/DWBAComputation.h"
 #include "Core/Computation/IBackground.h"
-#include "Core/TrueDetector/DetectorContext.h"
-#include "Core/TrueDetector/DetectorFunctions.h"
+#include "Core/Detector/DetectorContext.h"
+#include "Core/Detector/DetectorFunctions.h"
 #include "Core/Histo/Histogram2D.h"
 #include "Core/Pixel/SimulationElement.h"
 
diff --git a/Core/Simulation/SpecularSimulation.cpp b/Core/Simulation/SpecularSimulation.cpp
index 397cc635e18..fc86aba74d7 100644
--- a/Core/Simulation/SpecularSimulation.cpp
+++ b/Core/Simulation/SpecularSimulation.cpp
@@ -18,7 +18,7 @@
 #include "Core/Beam/IFootprintFactor.h"
 #include "Core/Computation/IBackground.h"
 #include "Core/Computation/SpecularComputation.h"
-#include "Core/TrueDetector/SpecularDetector1D.h"
+#include "Core/Detector/SpecularDetector1D.h"
 #include "Core/Scan/AngularSpecScan.h"
 #include "Core/Scan/ISpecularScan.h"
 #include "Core/Histo/Histogram1D.h"
diff --git a/Core/Simulation/StandardSimulations.cpp b/Core/Simulation/StandardSimulations.cpp
index bb6afbd0571..2d9097bf569 100644
--- a/Core/Simulation/StandardSimulations.cpp
+++ b/Core/Simulation/StandardSimulations.cpp
@@ -18,8 +18,8 @@
 #include "Core/Beam/FootprintGauss.h"
 #include "Core/Beam/FootprintSquare.h"
 #include "Core/Computation/ConstantBackground.h"
-#include "Core/TrueDetector/IsGISAXSDetector.h"
-#include "Core/TrueDetector/RectangularDetector.h"
+#include "Core/Detector/IsGISAXSDetector.h"
+#include "Core/Detector/RectangularDetector.h"
 #include "Core/Resolution/ResolutionFunction2DGaussian.h"
 #include "Core/Resolution/ScanResolution.h"
 #include "Core/Scan/AngularSpecScan.h"
diff --git a/Core/Simulation/UnitConverterUtils.cpp b/Core/Simulation/UnitConverterUtils.cpp
index f5488076eef..729191da7dc 100644
--- a/Core/Simulation/UnitConverterUtils.cpp
+++ b/Core/Simulation/UnitConverterUtils.cpp
@@ -13,11 +13,11 @@
 // ************************************************************************** //
 
 #include "Core/Simulation/UnitConverterUtils.h"
-#include "Core/TrueDetector/RectangularDetector.h"
-#include "Core/TrueDetector/SphericalDetector.h"
+#include "Core/Detector/RectangularDetector.h"
+#include "Core/Detector/SphericalDetector.h"
 #include "Core/Instrument/Instrument.h"
 #include "Core/Data/OutputData.h"
-#include "Core/TrueDetector/SimpleUnitConverters.h"
+#include "Core/Detector/SimpleUnitConverters.h"
 #include "Core/Unit/UnitConverter1D.h"
 #include "Core/Simulation/DepthProbeSimulation.h"
 #include "Core/Simulation/GISASSimulation.h"
diff --git a/GUI/coregui/Models/DepthProbeInstrumentItem.cpp b/GUI/coregui/Models/DepthProbeInstrumentItem.cpp
index ead0d13ddf6..ea016ac0331 100644
--- a/GUI/coregui/Models/DepthProbeInstrumentItem.cpp
+++ b/GUI/coregui/Models/DepthProbeInstrumentItem.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/coregui/Models/DepthProbeInstrumentItem.h"
 #include "Base/Const/Units.h"
-#include "Core/TrueDetector/SimpleUnitConverters.h"
+#include "Core/Detector/SimpleUnitConverters.h"
 #include "Core/Simulation/DepthProbeSimulation.h"
 #include "GUI/coregui/Models/AxesItems.h"
 #include "GUI/coregui/Models/BeamDistributionItem.h"
diff --git a/GUI/coregui/Models/DetectorItems.cpp b/GUI/coregui/Models/DetectorItems.cpp
index 0dc7efeaaea..2ca81d065f1 100644
--- a/GUI/coregui/Models/DetectorItems.cpp
+++ b/GUI/coregui/Models/DetectorItems.cpp
@@ -13,7 +13,7 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/DetectorItems.h"
-#include "Core/TrueDetector/IDetector2D.h"
+#include "Core/Detector/IDetector2D.h"
 #include "Core/Resolution/ResolutionFunction2DGaussian.h"
 #include "GUI/coregui/Models/MaskItems.h"
 #include "GUI/coregui/Models/ParameterTranslators.h"
diff --git a/GUI/coregui/Models/DomainObjectBuilder.cpp b/GUI/coregui/Models/DomainObjectBuilder.cpp
index 49a0a5ba6f4..e25a6068ba4 100644
--- a/GUI/coregui/Models/DomainObjectBuilder.cpp
+++ b/GUI/coregui/Models/DomainObjectBuilder.cpp
@@ -14,8 +14,8 @@
 
 #include "GUI/coregui/Models/DomainObjectBuilder.h"
 #include "Base/Const/Units.h"
-#include "Core/TrueDetector/IDetector2D.h"
-#include "Core/TrueDetector/SimpleUnitConverters.h"
+#include "Core/Detector/IDetector2D.h"
+#include "Core/Detector/SimpleUnitConverters.h"
 #include "Core/Unit/UnitConverter1D.h"
 #include "Core/Simulation/UnitConverterUtils.h"
 #include "GUI/coregui/Models/AxesItems.h"
diff --git a/GUI/coregui/Models/InstrumentItems.cpp b/GUI/coregui/Models/InstrumentItems.cpp
index 2cbd8266d3c..16f5dc11afe 100644
--- a/GUI/coregui/Models/InstrumentItems.cpp
+++ b/GUI/coregui/Models/InstrumentItems.cpp
@@ -13,7 +13,7 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/InstrumentItems.h"
-#include "Core/TrueDetector/IDetector2D.h"
+#include "Core/Detector/IDetector2D.h"
 #include "Core/Instrument/Instrument.h"
 #include "Core/Unit/UnitConverter1D.h"
 #include "GUI/coregui/Models/AxesItems.h"
diff --git a/GUI/coregui/Models/JobItemUtils.h b/GUI/coregui/Models/JobItemUtils.h
index 61f3ce4b8f9..a68f94abbd9 100644
--- a/GUI/coregui/Models/JobItemUtils.h
+++ b/GUI/coregui/Models/JobItemUtils.h
@@ -15,7 +15,7 @@
 #ifndef BORNAGAIN_GUI_COREGUI_MODELS_JOBITEMUTILS_H
 #define BORNAGAIN_GUI_COREGUI_MODELS_JOBITEMUTILS_H
 
-#include "Core/TrueDetector/IDetector.h"
+#include "Core/Detector/IDetector.h"
 #include "GUI/coregui/Models/ComboProperty.h"
 #include <QMap>
 
diff --git a/GUI/coregui/Models/JobModelFunctions.cpp b/GUI/coregui/Models/JobModelFunctions.cpp
index c1b2c86308c..7dcb6d054af 100644
--- a/GUI/coregui/Models/JobModelFunctions.cpp
+++ b/GUI/coregui/Models/JobModelFunctions.cpp
@@ -13,8 +13,8 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/JobModelFunctions.h"
-#include "Core/TrueDetector/DetectorFunctions.h"
-#include "Core/TrueDetector/IDetector2D.h"
+#include "Core/Detector/DetectorFunctions.h"
+#include "Core/Detector/IDetector2D.h"
 #include "Core/Instrument/Instrument.h"
 #include "GUI/coregui/Models/Data1DViewItem.h"
 #include "GUI/coregui/Models/DataPropertyContainer.h"
diff --git a/GUI/coregui/Models/RectangularDetectorItem.cpp b/GUI/coregui/Models/RectangularDetectorItem.cpp
index a0499ec3b5d..b03f409e83b 100644
--- a/GUI/coregui/Models/RectangularDetectorItem.cpp
+++ b/GUI/coregui/Models/RectangularDetectorItem.cpp
@@ -13,7 +13,7 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Models/RectangularDetectorItem.h"
-#include "Core/TrueDetector/RectangularDetector.h"
+#include "Core/Detector/RectangularDetector.h"
 #include "GUI/coregui/Models/AxesItems.h"
 #include "GUI/coregui/Models/ComboProperty.h"
 #include "GUI/coregui/Models/ResolutionFunctionItems.h"
diff --git a/GUI/coregui/Models/SphericalDetectorItem.cpp b/GUI/coregui/Models/SphericalDetectorItem.cpp
index b0f0010c35b..5af3ae8c82d 100644
--- a/GUI/coregui/Models/SphericalDetectorItem.cpp
+++ b/GUI/coregui/Models/SphericalDetectorItem.cpp
@@ -14,7 +14,7 @@
 
 #include "GUI/coregui/Models/SphericalDetectorItem.h"
 #include "Base/Const/Units.h"
-#include "Core/TrueDetector/SphericalDetector.h"
+#include "Core/Detector/SphericalDetector.h"
 #include "GUI/coregui/Models/AxesItems.h"
 
 const QString SphericalDetectorItem::P_PHI_AXIS = "Phi axis";
diff --git a/GUI/coregui/Models/TransformFromDomain.cpp b/GUI/coregui/Models/TransformFromDomain.cpp
index 6233672cc9a..3337eba4ae5 100644
--- a/GUI/coregui/Models/TransformFromDomain.cpp
+++ b/GUI/coregui/Models/TransformFromDomain.cpp
@@ -23,12 +23,12 @@
 #include "Core/Computation/PoissonNoiseBackground.h"
 #include "Core/Correlations/FTDistributions1D.h"
 #include "Core/Correlations/FTDistributions2D.h"
-#include "Core/Detector/ConvolutionDetectorResolution.h"
-#include "Core/TrueDetector/RectangularDetector.h"
-#include "Core/TrueDetector/RegionOfInterest.h"
+#include "Core/Resolution/ConvolutionDetectorResolution.h"
+#include "Core/Detector/RectangularDetector.h"
+#include "Core/Detector/RegionOfInterest.h"
 #include "Core/Resolution/ResolutionFunction2DGaussian.h"
 #include "Core/Resolution/ScanResolution.h"
-#include "Core/TrueDetector/SphericalDetector.h"
+#include "Core/Detector/SphericalDetector.h"
 #include "Core/Export/INodeUtils.h"
 #include "Core/Scan/AngularSpecScan.h"
 #include "Core/Mask/Ellipse.h"
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp
index e7c44db6fde..5b957aa44e8 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp
@@ -13,7 +13,7 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Views/FitWidgets/FitComparisonController.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "GUI/coregui/Models/AxesItems.h"
 #include "GUI/coregui/Models/IntensityDataItem.h"
 #include "GUI/coregui/Models/JobItem.h"
diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonViewController.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonViewController.cpp
index 9b05af0997c..708cbafb234 100644
--- a/GUI/coregui/Views/FitWidgets/FitComparisonViewController.cpp
+++ b/GUI/coregui/Views/FitWidgets/FitComparisonViewController.cpp
@@ -13,7 +13,7 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Views/FitWidgets/FitComparisonViewController.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "GUI/coregui/Models/AxesItems.h"
 #include "GUI/coregui/Models/Data1DViewItem.h"
 #include "GUI/coregui/Models/DataItem.h"
diff --git a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.cpp b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.cpp
index 6efc7257f56..223789e158e 100644
--- a/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.cpp
+++ b/GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.cpp
@@ -13,7 +13,7 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Views/ImportDataWidgets/RealDataSelectorActions.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Data/OutputData.h"
 #include "GUI/coregui/Models/IntensityDataItem.h"
 #include "GUI/coregui/Models/MaskItems.h"
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.cpp b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.cpp
index b45a1410f12..6513c238c5c 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.cpp
@@ -13,7 +13,7 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Views/IntensityDataWidgets/IntensityDataFFTPresenter.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "GUI/coregui/Models/IntensityDataItem.h"
 #include "GUI/coregui/Models/SessionModel.h"
 #include "GUI/coregui/utils/GUIHelpers.h"
diff --git a/GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.cpp b/GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.cpp
index d7332da887e..be0ef79b45b 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.cpp
@@ -13,8 +13,8 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Views/MaskWidgets/MaskResultsPresenter.h"
-#include "Core/TrueDetector/DetectorMask.h"
-#include "Core/TrueDetector/RegionOfInterest.h"
+#include "Core/Detector/DetectorMask.h"
+#include "Core/Detector/RegionOfInterest.h"
 #include "Core/Data/OutputData.h"
 #include "Core/Mask/IShape2D.h"
 #include "GUI/coregui/Models/IntensityDataItem.h"
diff --git a/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp b/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp
index 31d4ded83b7..5fa6b5675ca 100644
--- a/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp
+++ b/GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.cpp
@@ -13,7 +13,7 @@
 // ************************************************************************** //
 
 #include "GUI/coregui/Views/MaskWidgets/MaskUnitsConverter.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "GUI/coregui/Models/IntensityDataItem.h"
 #include "GUI/coregui/Models/MaskItems.h"
 #include "GUI/coregui/Models/ProjectionItems.h"
diff --git a/Tests/Functional/Core/Consistence/CompareTwoReferences.cpp b/Tests/Functional/Core/Consistence/CompareTwoReferences.cpp
index 4d4d59d36ed..73dad61f666 100644
--- a/Tests/Functional/Core/Consistence/CompareTwoReferences.cpp
+++ b/Tests/Functional/Core/Consistence/CompareTwoReferences.cpp
@@ -17,7 +17,7 @@
 #include "Base/Utils/Assert.h"
 #include "Base/Utils/FileSystemUtils.h"
 #include "Core/InputOutput/IntensityDataIOFactory.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include <iostream>
 
 namespace
diff --git a/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp b/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp
index bdebddea397..ec730845f2a 100644
--- a/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp
+++ b/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp
@@ -11,7 +11,7 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Simulation/Simulation.h"
 #include "Core/Simulation/SimulationFactory.h"
 #include "Core/StandardSamples/SampleBuilderFactory.h"
diff --git a/Tests/Functional/Core/CoreSpecial/CoreIOPathTest.cpp b/Tests/Functional/Core/CoreSpecial/CoreIOPathTest.cpp
index 01ea7565ae9..37de316d3b3 100644
--- a/Tests/Functional/Core/CoreSpecial/CoreIOPathTest.cpp
+++ b/Tests/Functional/Core/CoreSpecial/CoreIOPathTest.cpp
@@ -15,7 +15,7 @@
 #include "BATesting.h"
 #include "Base/Utils/FileSystemUtils.h"
 #include "Core/InputOutput/IntensityDataIOFactory.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Data/OutputData.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <boost/filesystem.hpp>
diff --git a/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp b/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp
index 5a9d3e9ec47..a156efe3628 100644
--- a/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp
+++ b/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp
@@ -15,7 +15,7 @@
 #include "BATesting.h"
 #include "Base/Utils/FileSystemUtils.h"
 #include "Core/InputOutput/IntensityDataIOFactory.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Data/OutputData.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <iostream>
diff --git a/Tests/Functional/Core/Fitting/PlanCases.cpp b/Tests/Functional/Core/Fitting/PlanCases.cpp
index 33daf94ac47..8a3c1e9f1d8 100644
--- a/Tests/Functional/Core/Fitting/PlanCases.cpp
+++ b/Tests/Functional/Core/Fitting/PlanCases.cpp
@@ -18,7 +18,7 @@
 #include "Core/Aggregate/ParticleLayout.h"
 #include "Core/Correlations/FTDecay1D.h"
 #include "Core/Correlations/FTDecay2D.h"
-#include "Core/TrueDetector/RectangularDetector.h"
+#include "Core/Detector/RectangularDetector.h"
 #include "Core/Fitting/FitObjective.h"
 #include "Core/HardParticle/FormFactorCylinder.h"
 #include "Core/Mask/Rectangle.h"
diff --git a/Tests/Functional/Core/MPI/mpitest.cpp b/Tests/Functional/Core/MPI/mpitest.cpp
index 5e0229d79ca..3a0680649e4 100644
--- a/Tests/Functional/Core/MPI/mpitest.cpp
+++ b/Tests/Functional/Core/MPI/mpitest.cpp
@@ -1,7 +1,7 @@
 #include <mpi.h>
 
 #include "Core/InputOutput/IntensityDataIOFactory.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Multilayer/MultiLayer.h"
 #include "Core/Simulation/SimulationFactory.h"
 #include "Core/StandardSamples/SampleBuilderFactory.h"
diff --git a/Tests/Functional/Core/Std/Check.cpp b/Tests/Functional/Core/Std/Check.cpp
index 1468a6831a9..1749a0be017 100644
--- a/Tests/Functional/Core/Std/Check.cpp
+++ b/Tests/Functional/Core/Std/Check.cpp
@@ -17,7 +17,7 @@
 #include "Base/Utils/Assert.h"
 #include "Base/Utils/FileSystemUtils.h"
 #include "Core/InputOutput/IntensityDataIOFactory.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Multilayer/MultiLayer.h"
 #include "Core/SampleBuilderEngine/ISampleBuilder.h"
 #include "Core/Simulation/Simulation.h"
diff --git a/Tests/Functional/GUI/Std/Check.cpp b/Tests/Functional/GUI/Std/Check.cpp
index 4bb4ec05575..2a913d42a4b 100644
--- a/Tests/Functional/GUI/Std/Check.cpp
+++ b/Tests/Functional/GUI/Std/Check.cpp
@@ -12,7 +12,7 @@
 //
 // ************************************************************************** //
 
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Simulation/Simulation.h"
 #include "GUI/coregui/Models/DocumentModel.h"
 #include "GUI/coregui/Models/DomainSimulationBuilder.h"
diff --git a/Tests/Functional/Python/Std/Check.cpp b/Tests/Functional/Python/Std/Check.cpp
index afc3bec7d71..a945f950a95 100644
--- a/Tests/Functional/Python/Std/Check.cpp
+++ b/Tests/Functional/Python/Std/Check.cpp
@@ -18,7 +18,7 @@
 #include "Base/Utils/FileSystemUtils.h"
 #include "Core/Export/ExportToPython.h"
 #include "Core/InputOutput/IntensityDataIOFactory.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Simulation/Simulation.h"
 #include <fstream>
 #include <iostream>
diff --git a/Tests/Performance/Core/Mesocrystal.cpp b/Tests/Performance/Core/Mesocrystal.cpp
index fc9b1d3bb6f..2419eded4f0 100644
--- a/Tests/Performance/Core/Mesocrystal.cpp
+++ b/Tests/Performance/Core/Mesocrystal.cpp
@@ -15,7 +15,7 @@
 #include "Core/Particle/MesoCrystal.h"
 #include "Base/Const/Units.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/TrueDetector/RectangularDetector.h"
+#include "Core/Detector/RectangularDetector.h"
 #include "Core/HardParticle/FormFactorCylinder.h"
 #include "Core/Lattice/ISelectionRule.h"
 #include "Core/Lattice/Lattice.h"
diff --git a/Tests/Performance/Core/ThreadingComponents.cpp b/Tests/Performance/Core/ThreadingComponents.cpp
index 9fd4aecb3c4..afe0efc084c 100644
--- a/Tests/Performance/Core/ThreadingComponents.cpp
+++ b/Tests/Performance/Core/ThreadingComponents.cpp
@@ -16,7 +16,7 @@
 #include "Base/Const/Units.h"
 #include "Core/Aggregate/InterferenceFunction2DLattice.h"
 #include "Core/Aggregate/ParticleLayout.h"
-#include "Core/TrueDetector/RectangularDetector.h"
+#include "Core/Detector/RectangularDetector.h"
 #include "Core/HardParticle/FormFactorFullSphere.h"
 #include "Core/Mask/Rectangle.h"
 #include "Core/Material/MaterialFactoryFuncs.h"
diff --git a/Tests/UnitTests/Core/Axes/DepthProbeConverterTest.cpp b/Tests/UnitTests/Core/Axes/DepthProbeConverterTest.cpp
index c82d4513803..aa8bbd4bfc3 100644
--- a/Tests/UnitTests/Core/Axes/DepthProbeConverterTest.cpp
+++ b/Tests/UnitTests/Core/Axes/DepthProbeConverterTest.cpp
@@ -2,7 +2,7 @@
 #include "Base/Const/Units.h"
 #include "Core/Axis/FixedBinAxis.h"
 #include "Core/Beam/Beam.h"
-#include "Core/TrueDetector/SimpleUnitConverters.h"
+#include "Core/Detector/SimpleUnitConverters.h"
 #include "Tests/GTestWrapper/google_test.h"
 
 class DepthProbeConverterTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/DataStructure/IntensityDataFunctionsTest.cpp b/Tests/UnitTests/Core/DataStructure/IntensityDataFunctionsTest.cpp
index 882f95020ed..7f2ae017736 100644
--- a/Tests/UnitTests/Core/DataStructure/IntensityDataFunctionsTest.cpp
+++ b/Tests/UnitTests/Core/DataStructure/IntensityDataFunctionsTest.cpp
@@ -1,4 +1,4 @@
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Axis/VariableBinAxis.h"
 #include "Tests/GTestWrapper/google_test.h"
 
diff --git a/Tests/UnitTests/Core/DataStructure/OutputDataTest.cpp b/Tests/UnitTests/Core/DataStructure/OutputDataTest.cpp
index 763a2df7a92..9888e81d485 100644
--- a/Tests/UnitTests/Core/DataStructure/OutputDataTest.cpp
+++ b/Tests/UnitTests/Core/DataStructure/OutputDataTest.cpp
@@ -1,7 +1,7 @@
 #include "Core/Data/OutputData.h"
 #include "Core/Axis/FixedBinAxis.h"
 #include "Core/Axis/VariableBinAxis.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Parametrization/ThreadInfo.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <algorithm>
diff --git a/Tests/UnitTests/Core/Detector/DetectorMaskTest.cpp b/Tests/UnitTests/Core/Detector/DetectorMaskTest.cpp
index 869d1da3c2f..cac02bef614 100644
--- a/Tests/UnitTests/Core/Detector/DetectorMaskTest.cpp
+++ b/Tests/UnitTests/Core/Detector/DetectorMaskTest.cpp
@@ -1,5 +1,5 @@
-#include "Core/TrueDetector/DetectorMask.h"
-#include "Core/TrueDetector/SphericalDetector.h"
+#include "Core/Detector/DetectorMask.h"
+#include "Core/Detector/SphericalDetector.h"
 #include "Core/Mask/Polygon.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <memory>
diff --git a/Tests/UnitTests/Core/Detector/OffSpecularConverterTest.cpp b/Tests/UnitTests/Core/Detector/OffSpecularConverterTest.cpp
index 5000d11fc32..691352c22fa 100644
--- a/Tests/UnitTests/Core/Detector/OffSpecularConverterTest.cpp
+++ b/Tests/UnitTests/Core/Detector/OffSpecularConverterTest.cpp
@@ -1,8 +1,8 @@
 #include "Base/Const/Units.h"
 #include "Base/Vector/Vectors3D.h"
 #include "Core/Beam/Beam.h"
-#include "Core/TrueDetector/SphericalDetector.h"
-#include "Core/TrueDetector/SimpleUnitConverters.h"
+#include "Core/Detector/SphericalDetector.h"
+#include "Core/Detector/SimpleUnitConverters.h"
 #include "Tests/GTestWrapper/google_test.h"
 
 class OffSpecularConverterTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Detector/RectangularConverterTest.cpp b/Tests/UnitTests/Core/Detector/RectangularConverterTest.cpp
index 1146901a3ee..7d271eb774e 100644
--- a/Tests/UnitTests/Core/Detector/RectangularConverterTest.cpp
+++ b/Tests/UnitTests/Core/Detector/RectangularConverterTest.cpp
@@ -1,8 +1,8 @@
 #include "Base/Const/Units.h"
 #include "Base/Vector/Vectors3D.h"
 #include "Core/Beam/Beam.h"
-#include "Core/TrueDetector/RectangularDetector.h"
-#include "Core/TrueDetector/SimpleUnitConverters.h"
+#include "Core/Detector/RectangularDetector.h"
+#include "Core/Detector/SimpleUnitConverters.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <cmath>
 
diff --git a/Tests/UnitTests/Core/Detector/RectangularDetectorTest.cpp b/Tests/UnitTests/Core/Detector/RectangularDetectorTest.cpp
index 533ab13d34c..185d1dc65de 100644
--- a/Tests/UnitTests/Core/Detector/RectangularDetectorTest.cpp
+++ b/Tests/UnitTests/Core/Detector/RectangularDetectorTest.cpp
@@ -1,4 +1,4 @@
-#include "Core/TrueDetector/RectangularDetector.h"
+#include "Core/Detector/RectangularDetector.h"
 #include "Base/Const/Units.h"
 #include "Base/Utils/Algorithms.h"
 #include "Core/Simulation/GISASSimulation.h"
diff --git a/Tests/UnitTests/Core/Detector/RegionOfInterestTest.cpp b/Tests/UnitTests/Core/Detector/RegionOfInterestTest.cpp
index bc082b5e27b..8246e8e189e 100644
--- a/Tests/UnitTests/Core/Detector/RegionOfInterestTest.cpp
+++ b/Tests/UnitTests/Core/Detector/RegionOfInterestTest.cpp
@@ -1,6 +1,6 @@
-#include "Core/TrueDetector/RegionOfInterest.h"
+#include "Core/Detector/RegionOfInterest.h"
 #include "Base/Types/Exceptions.h"
-#include "Core/TrueDetector/SphericalDetector.h"
+#include "Core/Detector/SphericalDetector.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <memory>
 
diff --git a/Tests/UnitTests/Core/Detector/SimulationAreaTest.cpp b/Tests/UnitTests/Core/Detector/SimulationAreaTest.cpp
index 367e4b636a6..bd4500e76e9 100644
--- a/Tests/UnitTests/Core/Detector/SimulationAreaTest.cpp
+++ b/Tests/UnitTests/Core/Detector/SimulationAreaTest.cpp
@@ -1,6 +1,6 @@
-#include "Core/TrueDetector/SimulationArea.h"
-#include "Core/TrueDetector/DetectorFunctions.h"
-#include "Core/TrueDetector/SphericalDetector.h"
+#include "Core/Detector/SimulationArea.h"
+#include "Core/Detector/DetectorFunctions.h"
+#include "Core/Detector/SphericalDetector.h"
 #include "Core/Mask/Rectangle.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <iostream>
diff --git a/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp b/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp
index 724f4e18650..4c2b189f756 100644
--- a/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp
+++ b/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp
@@ -1,8 +1,8 @@
-#include "Core/TrueDetector/SpecularDetector1D.h"
+#include "Core/Detector/SpecularDetector1D.h"
 #include "Base/Const/Units.h"
 #include "Core/Axis/FixedBinAxis.h"
 #include "Core/Beam/Beam.h"
-#include "Core/TrueDetector/SimulationArea.h"
+#include "Core/Detector/SimulationArea.h"
 #include "Core/Data/OutputData.h"
 #include "Tests/GTestWrapper/google_test.h"
 #include <memory>
diff --git a/Tests/UnitTests/Core/Detector/SphericalConverterTest.cpp b/Tests/UnitTests/Core/Detector/SphericalConverterTest.cpp
index 5ebe4491369..c6b921e1acc 100644
--- a/Tests/UnitTests/Core/Detector/SphericalConverterTest.cpp
+++ b/Tests/UnitTests/Core/Detector/SphericalConverterTest.cpp
@@ -1,8 +1,8 @@
 #include "Base/Const/Units.h"
 #include "Base/Vector/Vectors3D.h"
 #include "Core/Beam/Beam.h"
-#include "Core/TrueDetector/SphericalDetector.h"
-#include "Core/TrueDetector/SimpleUnitConverters.h"
+#include "Core/Detector/SphericalDetector.h"
+#include "Core/Detector/SimpleUnitConverters.h"
 #include "Tests/GTestWrapper/google_test.h"
 
 class SphericalConverterTest : public ::testing::Test
diff --git a/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp b/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp
index aa6d5dd2dc3..b354f4af67e 100644
--- a/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp
+++ b/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp
@@ -1,13 +1,13 @@
-#include "Core/TrueDetector/SphericalDetector.h"
+#include "Core/Detector/SphericalDetector.h"
 #include "Base/Const/Units.h"
 #include "Base/Types/Exceptions.h"
 #include "Core/Axis/FixedBinAxis.h"
 #include "Core/Beam/Beam.h"
-#include "Core/Detector/ConvolutionDetectorResolution.h"
-#include "Core/TrueDetector/DetectorFunctions.h"
-#include "Core/TrueDetector/RegionOfInterest.h"
+#include "Core/Resolution/ConvolutionDetectorResolution.h"
+#include "Core/Detector/DetectorFunctions.h"
+#include "Core/Detector/RegionOfInterest.h"
 #include "Core/Resolution/ResolutionFunction2DGaussian.h"
-#include "Core/TrueDetector/SimulationArea.h"
+#include "Core/Detector/SimulationArea.h"
 #include "Core/Data/OutputData.h"
 #include "Core/Mask/Polygon.h"
 #include "Core/Mask/Rectangle.h"
diff --git a/Tests/UnitTests/GUI/TestDetectorItems.cpp b/Tests/UnitTests/GUI/TestDetectorItems.cpp
index e40b1d4aac1..621fd918ec4 100644
--- a/Tests/UnitTests/GUI/TestDetectorItems.cpp
+++ b/Tests/UnitTests/GUI/TestDetectorItems.cpp
@@ -1,6 +1,6 @@
 #include "Base/Const/Units.h"
-#include "Core/Detector/ConvolutionDetectorResolution.h"
-#include "Core/TrueDetector/IDetector2D.h"
+#include "Core/Resolution/ConvolutionDetectorResolution.h"
+#include "Core/Detector/IDetector2D.h"
 #include "Core/Resolution/ResolutionFunction2DGaussian.h"
 #include "GUI/coregui/Models/ComboProperty.h"
 #include "GUI/coregui/Models/DetectorItems.h"
diff --git a/Tests/UnitTests/GUI/Utils.cpp b/Tests/UnitTests/GUI/Utils.cpp
index 40da9eb307a..8c37c4ea0a3 100644
--- a/Tests/UnitTests/GUI/Utils.cpp
+++ b/Tests/UnitTests/GUI/Utils.cpp
@@ -15,7 +15,7 @@
 
 #include "Tests/UnitTests/GUI/Utils.h"
 #include "Core/InputOutput/IntensityDataIOFactory.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Data/OutputData.h"
 #include "GUI/coregui/Models/RealDataItem.h"
 #include "GUI/coregui/Models/SessionModel.h"
diff --git a/Wrap/swig/libBornAgainCore.i b/Wrap/swig/libBornAgainCore.i
index 33bd535f25b..cd7df070e01 100644
--- a/Wrap/swig/libBornAgainCore.i
+++ b/Wrap/swig/libBornAgainCore.i
@@ -103,15 +103,15 @@
 #include "Core/Computation/IBackground.h"
 #include "Core/Computation/MultiLayerFuncs.h"
 #include "Core/Computation/PoissonNoiseBackground.h"
-#include "Core/TrueDetector/DetectorMask.h"
-#include "Core/TrueDetector/IDetector2D.h"
+#include "Core/Detector/DetectorMask.h"
+#include "Core/Detector/IDetector2D.h"
 #include "Core/Resolution/IDetectorResolution.h"
 #include "Core/Resolution/IResolutionFunction2D.h"
-#include "Core/TrueDetector/IsGISAXSDetector.h"
-#include "Core/TrueDetector/RectangularDetector.h"
+#include "Core/Detector/IsGISAXSDetector.h"
+#include "Core/Detector/RectangularDetector.h"
 #include "Core/Resolution/ResolutionFunction2DGaussian.h"
 #include "Core/Resolution/ScanResolution.h"
-#include "Core/TrueDetector/SphericalDetector.h"
+#include "Core/Detector/SphericalDetector.h"
 #include "Core/Fitting/FitObjective.h"
 #include "Core/Fitting/IObserver.h"
 #include "Core/Fitting/IterationInfo.h"
@@ -160,7 +160,7 @@
 #include "Core/Histo/IHistogram.h"
 #include "Core/Intensity/IIntensityFunction.h"
 #include "Core/Intensity/IIntensityFunction.h"
-#include "Core/TrueDetector/IntensityDataFunctions.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
 #include "Core/Data/OutputData.h"
 #include "Core/Lattice/ILatticeOrientation.h"
 #include "Core/Lattice/ISelectionRule.h"
@@ -430,12 +430,12 @@
 
 %include "Core/InputOutput/IntensityDataIOFactory.h"
 
-%include "Core/TrueDetector/IDetector.h"
-%include "Core/TrueDetector/IDetector2D.h"
-%include "Core/TrueDetector/SphericalDetector.h"
-%include "Core/TrueDetector/DetectorMask.h"
-%include "Core/TrueDetector/IsGISAXSDetector.h"
-%include "Core/TrueDetector/RectangularDetector.h"
+%include "Core/Detector/IDetector.h"
+%include "Core/Detector/IDetector2D.h"
+%include "Core/Detector/SphericalDetector.h"
+%include "Core/Detector/DetectorMask.h"
+%include "Core/Detector/IsGISAXSDetector.h"
+%include "Core/Detector/RectangularDetector.h"
 
 %include "Core/Resolution/IDetectorResolution.h"
 %include "Core/Resolution/IResolutionFunction2D.h"
@@ -448,7 +448,7 @@
 
 %include "Core/Histo/Histogram1D.h"
 %include "Core/Histo/Histogram2D.h"
-%include "Core/TrueDetector/IntensityDataFunctions.h"
+%include "Core/Instrument/IntensityDataFunctions.h"
 
 %include "Core/Instrument/IChiSquaredModule.h"
 %include "Core/Scan/ISpecularScan.h"
diff --git a/auto/Wrap/doxygenCore.i b/auto/Wrap/doxygenCore.i
index 4916b2aa0b7..367f34704ef 100644
--- a/auto/Wrap/doxygenCore.i
+++ b/auto/Wrap/doxygenCore.i
@@ -15964,178 +15964,178 @@ C++ includes: ZLimits.h
 // File: namespace_0d108.xml
 
 
-// File: namespace_0d141.xml
+// File: namespace_0d137.xml
 
 
-// File: namespace_0d153.xml
+// File: namespace_0d149.xml
 
 
-// File: namespace_0d16.xml
+// File: namespace_0d157.xml
 
 
-// File: namespace_0d161.xml
+// File: namespace_0d16.xml
 
 
-// File: namespace_0d166.xml
+// File: namespace_0d162.xml
 
 
-// File: namespace_0d175.xml
+// File: namespace_0d171.xml
 
 
-// File: namespace_0d177.xml
+// File: namespace_0d173.xml
 
 
-// File: namespace_0d181.xml
+// File: namespace_0d177.xml
 
 
 // File: namespace_0d2.xml
 
 
-// File: namespace_0d244.xml
+// File: namespace_0d240.xml
 
 
-// File: namespace_0d247.xml
+// File: namespace_0d243.xml
 
 
 // File: namespace_0d25.xml
 
 
-// File: namespace_0d254.xml
+// File: namespace_0d256.xml
 
 
-// File: namespace_0d258.xml
+// File: namespace_0d260.xml
 
 
-// File: namespace_0d262.xml
+// File: namespace_0d264.xml
 
 
-// File: namespace_0d268.xml
+// File: namespace_0d270.xml
 
 
-// File: namespace_0d272.xml
+// File: namespace_0d298.xml
 
 
-// File: namespace_0d288.xml
+// File: namespace_0d320.xml
 
 
-// File: namespace_0d317.xml
+// File: namespace_0d324.xml
 
 
-// File: namespace_0d319.xml
+// File: namespace_0d328.xml
 
 
-// File: namespace_0d321.xml
+// File: namespace_0d344.xml
 
 
-// File: namespace_0d343.xml
+// File: namespace_0d353.xml
 
 
-// File: namespace_0d347.xml
+// File: namespace_0d357.xml
 
 
-// File: namespace_0d351.xml
+// File: namespace_0d367.xml
 
 
-// File: namespace_0d367.xml
+// File: namespace_0d369.xml
 
 
-// File: namespace_0d376.xml
+// File: namespace_0d371.xml
 
 
-// File: namespace_0d380.xml
+// File: namespace_0d377.xml
 
 
-// File: namespace_0d390.xml
+// File: namespace_0d379.xml
 
 
-// File: namespace_0d392.xml
+// File: namespace_0d381.xml
 
 
-// File: namespace_0d394.xml
+// File: namespace_0d383.xml
 
 
-// File: namespace_0d4.xml
+// File: namespace_0d385.xml
 
 
-// File: namespace_0d400.xml
+// File: namespace_0d387.xml
 
 
-// File: namespace_0d402.xml
+// File: namespace_0d391.xml
 
 
-// File: namespace_0d404.xml
+// File: namespace_0d393.xml
 
 
-// File: namespace_0d406.xml
+// File: namespace_0d4.xml
 
 
-// File: namespace_0d408.xml
+// File: namespace_0d403.xml
 
 
-// File: namespace_0d410.xml
+// File: namespace_0d416.xml
 
 
-// File: namespace_0d414.xml
+// File: namespace_0d425.xml
 
 
-// File: namespace_0d416.xml
+// File: namespace_0d429.xml
 
 
-// File: namespace_0d426.xml
+// File: namespace_0d445.xml
 
 
-// File: namespace_0d439.xml
+// File: namespace_0d478.xml
 
 
-// File: namespace_0d448.xml
+// File: namespace_0d483.xml
 
 
-// File: namespace_0d452.xml
+// File: namespace_0d485.xml
 
 
-// File: namespace_0d468.xml
+// File: namespace_0d493.xml
 
 
-// File: namespace_0d495.xml
+// File: namespace_0d499.xml
 
 
-// File: namespace_0d497.xml
+// File: namespace_0d503.xml
 
 
-// File: namespace_0d505.xml
+// File: namespace_0d511.xml
 
 
-// File: namespace_0d517.xml
+// File: namespace_0d534.xml
 
 
-// File: namespace_0d540.xml
+// File: namespace_0d542.xml
 
 
 // File: namespace_0d548.xml
 
 
-// File: namespace_0d554.xml
+// File: namespace_0d550.xml
 
 
-// File: namespace_0d556.xml
+// File: namespace_0d561.xml
 
 
-// File: namespace_0d567.xml
+// File: namespace_0d573.xml
 
 
 // File: namespace_0d579.xml
 
 
-// File: namespace_0d585.xml
+// File: namespace_0d583.xml
 
 
-// File: namespace_0d589.xml
+// File: namespace_0d601.xml
 
 
-// File: namespace_0d607.xml
+// File: namespace_0d620.xml
 
 
-// File: namespace_0d626.xml
+// File: namespace_0d634.xml
 
 
 // File: namespace_0d78.xml
@@ -17238,16 +17238,31 @@ Generate z values (equidistant) for use in MaterialProfile.
 // File: IPeakShape_8h.xml
 
 
-// File: ConvolutionDetectorResolution_8cpp.xml
+// File: CumulativeValue_8cpp.xml
 
 
-// File: ConvolutionDetectorResolution_8h.xml
+// File: CumulativeValue_8h.xml
 
 
-// File: Convolve_8cpp.xml
+// File: LLData_8cpp.xml
 
 
-// File: Convolve_8h.xml
+// File: LLData_8h.xml
+%feature("docstring")  HaveSameDimensions "bool HaveSameDimensions(const LLData< T > &left, const LLData< T > &right)
+";
+
+
+// File: OutputData_8cpp.xml
+
+
+// File: OutputData_8h.xml
+
+
+// File: OutputDataIterator_8h.xml
+%feature("docstring")  swap "void swap(OutputDataIterator< TValue, TContainer > &left, OutputDataIterator< TValue, TContainer > &right)
+
+make Swappable 
+";
 
 
 // File: DetectionProperties_8cpp.xml
@@ -17286,21 +17301,6 @@ Generate z values (equidistant) for use in MaterialProfile.
 // File: IDetector2D_8h.xml
 
 
-// File: IDetectorResolution_8h.xml
-
-
-// File: IntensityDataFunctions_8cpp.xml
-
-
-// File: IntensityDataFunctions_8h.xml
-
-
-// File: IResolutionFunction2D_8cpp.xml
-
-
-// File: IResolutionFunction2D_8h.xml
-
-
 // File: IsGISAXSDetector_8cpp.xml
 
 
@@ -17325,16 +17325,10 @@ Generate z values (equidistant) for use in MaterialProfile.
 // File: RegionOfInterest_8h.xml
 
 
-// File: ResolutionFunction2DGaussian_8cpp.xml
-
-
-// File: ResolutionFunction2DGaussian_8h.xml
-
-
-// File: ScanResolution_8cpp.xml
+// File: SimpleUnitConverters_8cpp.xml
 
 
-// File: ScanResolution_8h.xml
+// File: SimpleUnitConverters_8h.xml
 
 
 // File: SimulationArea_8cpp.xml
@@ -17667,6 +17661,24 @@ Generate z values (equidistant) for use in MaterialProfile.
 // File: Ripples_8h.xml
 
 
+// File: Histogram1D_8cpp.xml
+
+
+// File: Histogram1D_8h.xml
+
+
+// File: Histogram2D_8cpp.xml
+
+
+// File: Histogram2D_8h.xml
+
+
+// File: IHistogram_8cpp.xml
+
+
+// File: IHistogram_8h.xml
+
+
 // File: boost__streams_8h.xml
 
 
@@ -17724,12 +17736,6 @@ Generate z values (equidistant) for use in MaterialProfile.
 // File: TiffHandler_8h.xml
 
 
-// File: AngularSpecScan_8cpp.xml
-
-
-// File: AngularSpecScan_8h.xml
-
-
 // File: ChiSquaredModule_8cpp.xml
 
 
@@ -17754,10 +17760,10 @@ Generate z values (equidistant) for use in MaterialProfile.
 // File: Instrument_8h.xml
 
 
-// File: ISpecularScan_8cpp.xml
+// File: IntensityDataFunctions_8cpp.xml
 
 
-// File: ISpecularScan_8h.xml
+// File: IntensityDataFunctions_8h.xml
 
 
 // File: PyArrayImportUtils_8cpp.xml
@@ -17772,12 +17778,6 @@ Generate z values (equidistant) for use in MaterialProfile.
 // File: PyFmt2_8h.xml
 
 
-// File: QSpecScan_8cpp.xml
-
-
-// File: QSpecScan_8h.xml
-
-
 // File: SimulationResult_8cpp.xml
 
 
@@ -17802,81 +17802,12 @@ Generate z values (equidistant) for use in MaterialProfile.
 // File: ArrayUtils_8h.xml
 
 
-// File: AxisNames_8cpp.xml
-
-
-// File: AxisNames_8h.xml
-
-
-// File: CumulativeValue_8cpp.xml
-
-
-// File: CumulativeValue_8h.xml
-
-
-// File: Histogram1D_8cpp.xml
-
-
-// File: Histogram1D_8h.xml
-
-
-// File: Histogram2D_8cpp.xml
-
-
-// File: Histogram2D_8h.xml
-
-
-// File: IHistogram_8cpp.xml
-
-
-// File: IHistogram_8h.xml
-
-
 // File: IIntensityFunction_8cpp.xml
 
 
 // File: IIntensityFunction_8h.xml
 
 
-// File: IUnitConverter_8cpp.xml
-
-
-// File: IUnitConverter_8h.xml
-
-
-// File: LLData_8cpp.xml
-
-
-// File: LLData_8h.xml
-%feature("docstring")  HaveSameDimensions "bool HaveSameDimensions(const LLData< T > &left, const LLData< T > &right)
-";
-
-
-// File: OutputData_8cpp.xml
-
-
-// File: OutputData_8h.xml
-
-
-// File: OutputDataIterator_8h.xml
-%feature("docstring")  swap "void swap(OutputDataIterator< TValue, TContainer > &left, OutputDataIterator< TValue, TContainer > &right)
-
-make Swappable 
-";
-
-
-// File: SimpleUnitConverters_8cpp.xml
-
-
-// File: SimpleUnitConverters_8h.xml
-
-
-// File: UnitConverter1D_8cpp.xml
-
-
-// File: UnitConverter1D_8h.xml
-
-
 // File: ILatticeOrientation_8cpp.xml
 
 
@@ -18480,6 +18411,39 @@ Creates averaged material. Square refractive index of returned material is arith
 // File: SimulationElement_8h.xml
 
 
+// File: ConvolutionDetectorResolution_8cpp.xml
+
+
+// File: ConvolutionDetectorResolution_8h.xml
+
+
+// File: Convolve_8cpp.xml
+
+
+// File: Convolve_8h.xml
+
+
+// File: IDetectorResolution_8h.xml
+
+
+// File: IResolutionFunction2D_8cpp.xml
+
+
+// File: IResolutionFunction2D_8h.xml
+
+
+// File: ResolutionFunction2DGaussian_8cpp.xml
+
+
+// File: ResolutionFunction2DGaussian_8h.xml
+
+
+// File: ScanResolution_8cpp.xml
+
+
+// File: ScanResolution_8h.xml
+
+
 // File: ILayerRTCoefficients_8h.xml
 
 
@@ -18537,6 +18501,24 @@ Creates averaged material. Square refractive index of returned material is arith
 // File: SampleProvider_8h.xml
 
 
+// File: AngularSpecScan_8cpp.xml
+
+
+// File: AngularSpecScan_8h.xml
+
+
+// File: ISpecularScan_8cpp.xml
+
+
+// File: ISpecularScan_8h.xml
+
+
+// File: QSpecScan_8cpp.xml
+
+
+// File: QSpecScan_8h.xml
+
+
 // File: FormFactorDecoratorMaterial_8cpp.xml
 
 
@@ -18964,6 +18946,24 @@ Generate vertices of centered ellipse with given semi-axes at height z.
 // File: TwoLayerRoughnessBuilder_8h.xml
 
 
+// File: AxisNames_8cpp.xml
+
+
+// File: AxisNames_8h.xml
+
+
+// File: IUnitConverter_8cpp.xml
+
+
+// File: IUnitConverter_8h.xml
+
+
+// File: UnitConverter1D_8cpp.xml
+
+
+// File: UnitConverter1D_8h.xml
+
+
 // File: deprecated.xml
 
 
@@ -18985,6 +18985,9 @@ Generate vertices of centered ellipse with given semi-axes at height z.
 // File: dir_fa96dd1f1e0fa8c53ad7561c23a2a056.xml
 
 
+// File: dir_e8e4c52c5b1be567b4cbfc8c213ce785.xml
+
+
 // File: dir_44f78a63fb6824b6161080fb024dfdfe.xml
 
 
@@ -18997,6 +19000,9 @@ Generate vertices of centered ellipse with given semi-axes at height z.
 // File: dir_05b265732c0b4c8e8dad02f2f774744b.xml
 
 
+// File: dir_0af69761ac55fbb3eaeece0bb92e99d9.xml
+
+
 // File: dir_d7044b5fc4daccc5700de9f07da81a11.xml
 
 
@@ -19030,12 +19036,18 @@ Generate vertices of centered ellipse with given semi-axes at height z.
 // File: dir_359af669373d7705e93988ea0fa15f60.xml
 
 
+// File: dir_790d5e8b445d9aec8c8895146706942a.xml
+
+
 // File: dir_8e60847f0ac26e3d8a13e8a06357123f.xml
 
 
 // File: dir_dfcc64e98e4f62108d0fa0099ad7f9c0.xml
 
 
+// File: dir_6de83e740cfcd9d0abfe8dffab2832a5.xml
+
+
 // File: dir_6babb1605c026604526d064f820d612b.xml
 
 
@@ -19050,3 +19062,6 @@ Generate vertices of centered ellipse with given semi-axes at height z.
 
 // File: dir_5d2259b43612a5a0ff7512df653d7370.xml
 
+
+// File: dir_bac1ac4b8e69c9aa3a35df48fc2a6289.xml
+
diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp
index d3667431691..a41c9d84c74 100644
--- a/auto/Wrap/libBornAgainCore_wrap.cpp
+++ b/auto/Wrap/libBornAgainCore_wrap.cpp
@@ -6958,12 +6958,12 @@ SWIGINTERN void std_vector_Sl_std_pair_Sl_double_Sc_double_Sg__Sg__insert__SWIG_
 #include "Core/Computation/PoissonNoiseBackground.h"
 #include "Core/Detector/DetectorMask.h"
 #include "Core/Detector/IDetector2D.h"
-#include "Core/Detector/IDetectorResolution.h"
-#include "Core/Detector/IResolutionFunction2D.h"
+#include "Core/Resolution/IDetectorResolution.h"
+#include "Core/Resolution/IResolutionFunction2D.h"
 #include "Core/Detector/IsGISAXSDetector.h"
 #include "Core/Detector/RectangularDetector.h"
-#include "Core/Detector/ResolutionFunction2DGaussian.h"
-#include "Core/Detector/ScanResolution.h"
+#include "Core/Resolution/ResolutionFunction2DGaussian.h"
+#include "Core/Resolution/ScanResolution.h"
 #include "Core/Detector/SphericalDetector.h"
 #include "Core/Fitting/FitObjective.h"
 #include "Core/Fitting/IObserver.h"
@@ -6999,22 +6999,22 @@ SWIGINTERN void std_vector_Sl_std_pair_Sl_double_Sc_double_Sg__Sg__insert__SWIG_
 #include "Core/HardParticle/FormFactorTruncatedSphere.h"
 #include "Core/HardParticle/FormFactorTruncatedSpheroid.h"
 #include "Core/InputOutput/IntensityDataIOFactory.h"
-#include "Core/Instrument/AngularSpecScan.h"
+#include "Core/Scan/AngularSpecScan.h"
 #include "Core/Instrument/ChiSquaredModule.h"
 #include "Core/Instrument/IChiSquaredModule.h"
 #include "Core/Instrument/Instrument.h"
 #include "Core/Instrument/PyArrayImportUtils.h"
-#include "Core/Instrument/QSpecScan.h"
+#include "Core/Scan/QSpecScan.h"
 #include "Core/Instrument/SimulationResult.h"
 #include "Core/Instrument/SpectrumUtils.h"
 #include "Core/Instrument/VarianceFunctions.h"
-#include "Core/Intensity/Histogram1D.h"
-#include "Core/Intensity/Histogram2D.h"
-#include "Core/Intensity/IHistogram.h"
+#include "Core/Histo/Histogram1D.h"
+#include "Core/Histo/Histogram2D.h"
+#include "Core/Histo/IHistogram.h"
 #include "Core/Intensity/IIntensityFunction.h"
 #include "Core/Intensity/IIntensityFunction.h"
-#include "Core/Detector/IntensityDataFunctions.h"
-#include "Core/Intensity/OutputData.h"
+#include "Core/Instrument/IntensityDataFunctions.h"
+#include "Core/Data/OutputData.h"
 #include "Core/Lattice/ILatticeOrientation.h"
 #include "Core/Lattice/ISelectionRule.h"
 #include "Core/Lattice/Lattice.h"
-- 
GitLab