diff --git a/Base/Progress/ProgressHandler.h b/Base/Progress/ProgressHandler.h
index 1fa4e15845aa894e9fdffe2b44c7a0406a3f5051..8686f4c200d350e38b76087441ec59b1c45a7806 100644
--- a/Base/Progress/ProgressHandler.h
+++ b/Base/Progress/ProgressHandler.h
@@ -33,7 +33,7 @@ class MultiLayer;
 
 class ProgressHandler {
 public:
-    typedef std::function<bool(size_t)> Callback_t;
+    using Callback_t = std::function<bool(size_t)>;
 
     ProgressHandler()
         : m_inform(nullptr), m_expected_nticks(0), m_completed_nticks(0), m_continuation_flag(true)
diff --git a/Base/Utils/IFactory.h b/Base/Utils/IFactory.h
index 9e5e55771bac05966f85d6192fe95f5b4f6f6dc6..399f8e518c4bc99e9ba26fbd4bed036d6e2dc632 100644
--- a/Base/Utils/IFactory.h
+++ b/Base/Utils/IFactory.h
@@ -28,10 +28,10 @@
 template <class Key, class AbstractProduct> class IFactory {
 public:
     //! function which will be used to create object of AbstractProduct base type
-    typedef typename std::function<AbstractProduct*()> CreateItemCallback;
+    using CreateItemCallback = std::function<AbstractProduct*()>;
 
     //! map for correspondence between object identifier and object creation function
-    typedef std::map<Key, CreateItemCallback> CallbackMap_t;
+    using CallbackMap_t = std::map<Key, CreateItemCallback>;
 
     //! Creates object by calling creation function corresponded to given identifier
     AbstractProduct* createItem(const Key& item_key) const
diff --git a/Core/Examples/SimulationFactory.cpp b/Core/Examples/SimulationFactory.cpp
index e7f3551fb168bc22f096c393fbe3d4b5c3c433cc..06027a9f5db30b20dd9c111e26d0d872c8e615eb 100644
--- a/Core/Examples/SimulationFactory.cpp
+++ b/Core/Examples/SimulationFactory.cpp
@@ -15,14 +15,11 @@
 #include "Core/Examples/SimulationFactory.h"
 #include "Core/Examples/StandardSimulations.h"
 #include "Core/Simulation/includeSimulations.h"
-#include "Device/Data/OutputData.h"
 
 SimulationFactory::SimulationFactory()
 {
     registerItem("BasicGISAS", StandardSimulations::BasicGISAS);
 
-    registerItem("BasicGISAS00", StandardSimulations::BasicGISAS00);
-
     registerItem("SpinflipGISAS", StandardSimulations::SpinflipGISAS);
 
     registerItem("MiniGISAS", StandardSimulations::MiniGISAS);
@@ -41,10 +38,6 @@ SimulationFactory::SimulationFactory()
 
     registerItem("MaxiGISAS00", StandardSimulations::MaxiGISAS00);
 
-    registerItem("IsGISAXSSimulation1", StandardSimulations::IsGISAXSSimulation1);
-
-    registerItem("IsGISAXSSimulation2", StandardSimulations::IsGISAXSSimulation2);
-
     // polarization
 
     registerItem("MiniGISASPolarizationPP", StandardSimulations::MiniGISASPolarizationPP);
diff --git a/Core/Examples/SimulationFactory.h b/Core/Examples/SimulationFactory.h
index 263944fe57151924b5b8ff98eff345b883adbdf8..b755910642db0a337c05b63ff1979459469ee548 100644
--- a/Core/Examples/SimulationFactory.h
+++ b/Core/Examples/SimulationFactory.h
@@ -21,9 +21,10 @@
 #define BORNAGAIN_CORE_EXAMPLES_SIMULATIONFACTORY_H
 
 #include "Base/Utils/IFactory.h"
-#include "Core/Simulation/GISASSimulation.h"
 #include <string>
 
+class ISimulation;
+
 //! Registry to create standard pre-defined simulations.
 //! Used in functional tests, performance measurements, etc.
 //! @ingroup standard_samples
diff --git a/Core/Examples/StandardSimulations.cpp b/Core/Examples/StandardSimulations.cpp
index c637e344cfe1778dcecd9dff23831468c05f038d..cc6faf10887641f9f9ea04ebbde533f2e515747a 100644
--- a/Core/Examples/StandardSimulations.cpp
+++ b/Core/Examples/StandardSimulations.cpp
@@ -23,8 +23,8 @@
 #include "Device/Beam/FootprintGauss.h"
 #include "Device/Beam/FootprintSquare.h"
 #include "Device/Data/OutputData.h"
-#include "Device/Detector/IsGISAXSDetector.h"
 #include "Device/Detector/RectangularDetector.h"
+#include "Device/Detector/SphericalDetector.h"
 #include "Device/Mask/Ellipse.h"
 #include "Device/Mask/Line.h"
 #include "Device/Mask/Polygon.h"
@@ -59,15 +59,6 @@ GISASSimulation* StandardSimulations::BasicGISAS()
     return new GISASSimulation(beam, det);
 }
 
-//! Basic GISAS for polarization studies.
-
-GISASSimulation* StandardSimulations::BasicGISAS00()
-{
-    GISASSimulation* result = BasicGISAS();
-    result->instrument().setPolFilters(zplus, zplus, 1.0, 0.5);
-    return result;
-}
-
 //! Basic GISAS simulation for spin flip channel.
 
 GISASSimulation* StandardSimulations::SpinflipGISAS()
@@ -212,24 +203,6 @@ GISASSimulation* StandardSimulations::MaxiGISAS00()
     return result;
 }
 
-//! Typical IsGISAXS simulation with the detector phi[-1,1], theta[0,2].
-
-GISASSimulation* StandardSimulations::IsGISAXSSimulation1()
-{
-    Beam beam(1.0, 1 * angstrom, Direction(0.2 * deg, 0 * deg));
-    IsGISAXSDetector det(100, -1 * deg, 1 * deg, 100, 0 * deg, 2 * deg);
-    return new GISASSimulation(beam, det);
-}
-
-//! Typical IsGISAXS simulation with the detector phi[0,2], theta[0,2].
-
-GISASSimulation* StandardSimulations::IsGISAXSSimulation2()
-{
-    Beam beam(1.0, 1 * angstrom, Direction(0.2 * deg, 0 * deg));
-    SphericalDetector det(100, 0 * deg, 2 * deg, 100, 0 * deg, 2 * deg);
-    return new GISASSimulation(beam, det);
-}
-
 //! GISAS simulation with generic rectangular detector.
 
 GISASSimulation* StandardSimulations::RectDetectorGeneric()
diff --git a/Core/Examples/StandardSimulations.h b/Core/Examples/StandardSimulations.h
index eb5b770a636df101fb74622b566d326f79cac5ef..53a6af04037524e18d4995ab99a3a0dd088cbbd5 100644
--- a/Core/Examples/StandardSimulations.h
+++ b/Core/Examples/StandardSimulations.h
@@ -31,7 +31,6 @@ namespace StandardSimulations {
 
 // CoreSuite tests:
 GISASSimulation* BasicGISAS();
-GISASSimulation* BasicGISAS00();
 GISASSimulation* SpinflipGISAS();
 GISASSimulation* MiniGISAS();
 GISASSimulation* MiniGISAS_v2();
@@ -41,8 +40,6 @@ GISASSimulation* MiniGISASSpecularPeak();
 GISASSimulation* GISASWithMasks();
 GISASSimulation* MaxiGISAS();
 GISASSimulation* MaxiGISAS00();
-GISASSimulation* IsGISAXSSimulation1();
-GISASSimulation* IsGISAXSSimulation2();
 GISASSimulation* RectDetectorGeneric();
 GISASSimulation* RectDetectorPerpToSample();
 GISASSimulation* RectDetectorPerpToDirectBeam();
diff --git a/Device/Detector/IsGISAXSDetector.cpp b/Device/Detector/IsGISAXSDetector.cpp
deleted file mode 100644
index 0737b0cb3ebf2922d1a009be33da820b16ffbfa0..0000000000000000000000000000000000000000
--- a/Device/Detector/IsGISAXSDetector.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//  ************************************************************************************************
-//
-//  BornAgain: simulate and fit reflection and scattering
-//
-//! @file      Device/Detector/IsGISAXSDetector.cpp
-//! @brief     Implements class IsGISAXSDetector.
-//!
-//! @homepage  http://www.bornagainproject.org
-//! @license   GNU General Public License v3 or higher (see COPYING)
-//! @copyright Forschungszentrum Jülich GmbH 2018
-//! @authors   Scientific Computing Group at MLZ (see CITATION, AUTHORS)
-//
-//  ************************************************************************************************
-
-#include "Device/Detector/IsGISAXSDetector.h"
-#include "Base/Axis/CustomBinAxis.h"
-
-IsGISAXSDetector::IsGISAXSDetector(size_t n_phi, double phi_min, double phi_max, size_t n_alpha,
-                                   double alpha_min, double alpha_max)
-{
-    setDetectorParameters(n_phi, phi_min, phi_max, n_alpha, alpha_min, alpha_max);
-}
-
-IsGISAXSDetector::IsGISAXSDetector(const IsGISAXSDetector& other) : SphericalDetector(other) {}
-
-IsGISAXSDetector* IsGISAXSDetector::clone() const
-{
-    return new IsGISAXSDetector(*this);
-}
-
-std::unique_ptr<IAxis> IsGISAXSDetector::createAxis(size_t index, size_t n_bins, double min,
-                                                    double max) const
-{
-    if (max <= min) {
-        throw std::runtime_error("IsGISAXSDetector::createAxis() -> Error! max <= min");
-    }
-    if (n_bins == 0) {
-        throw std::runtime_error(
-            "IsGISAXSDetector::createAxis() -> Error! Number n_bins can't be zero.");
-    }
-    return std::make_unique<CustomBinAxis>(axisName(index), n_bins, min, max);
-}
-
-size_t IsGISAXSDetector::indexOfSpecular(const Beam& /*beam*/) const
-{
-    return totalSize();
-}
diff --git a/Device/Detector/IsGISAXSDetector.h b/Device/Detector/IsGISAXSDetector.h
deleted file mode 100644
index 92129f56f89165effa0bb777c3e4ba91bf98faae..0000000000000000000000000000000000000000
--- a/Device/Detector/IsGISAXSDetector.h
+++ /dev/null
@@ -1,47 +0,0 @@
-//  ************************************************************************************************
-//
-//  BornAgain: simulate and fit reflection and scattering
-//
-//! @file      Device/Detector/IsGISAXSDetector.h
-//! @brief     Defines class IsGISAXSDetector.
-//!
-//! @homepage  http://www.bornagainproject.org
-//! @license   GNU General Public License v3 or higher (see COPYING)
-//! @copyright Forschungszentrum Jülich GmbH 2018
-//! @authors   Scientific Computing Group at MLZ (see CITATION, AUTHORS)
-//
-//  ************************************************************************************************
-
-#ifndef BORNAGAIN_DEVICE_DETECTOR_ISGISAXSDETECTOR_H
-#define BORNAGAIN_DEVICE_DETECTOR_ISGISAXSDETECTOR_H
-
-#include "Device/Detector/SphericalDetector.h"
-
-//! A spherical detector used for validation with IsGISAXS results.
-//! @ingroup detector
-
-class IsGISAXSDetector : public SphericalDetector {
-public:
-    inline static const std::string class_name = "IsGISAXSDetector";
-    std::string className() const final { return class_name; }
-
-    IsGISAXSDetector(size_t n_phi, double phi_min, double phi_max, size_t n_alpha, double alpha_min,
-                     double alpha_max);
-    IsGISAXSDetector(const IsGISAXSDetector& other);
-
-    IsGISAXSDetector* clone() const override;
-
-    void accept(INodeVisitor* visitor) const override { visitor->visit(this); }
-
-protected:
-    //! Generates an axis with correct name and default binning for given index
-    std::unique_ptr<IAxis> createAxis(size_t index, size_t n_bins, double min,
-                                      double max) const override;
-
-    //! Returns index of pixel that contains the specular wavevector.
-    //! If no pixel contains this specular wavevector, the number of pixels is
-    //! returned. This corresponds to an overflow index.
-    size_t indexOfSpecular(const Beam& beam) const override;
-};
-
-#endif // BORNAGAIN_DEVICE_DETECTOR_ISGISAXSDETECTOR_H
diff --git a/Fit/Adapter/MinimizerAdapter.h b/Fit/Adapter/MinimizerAdapter.h
index 0fffe5c1fe84da4463b422d0282be3a9f13e42fc..b52cd1cd586ce5dab355127bcf6c7c8d54f5dd6a 100644
--- a/Fit/Adapter/MinimizerAdapter.h
+++ b/Fit/Adapter/MinimizerAdapter.h
@@ -41,7 +41,7 @@ class Minimizer;
 
 class MinimizerAdapter : public IMinimizer {
 public:
-    typedef ROOT::Math::Minimizer root_minimizer_t;
+    using root_minimizer_t = ROOT::Math::Minimizer;
 
     virtual ~MinimizerAdapter() override;
 
diff --git a/Fit/Adapter/RootResidualFunction.h b/Fit/Adapter/RootResidualFunction.h
index 26748d071d7f343d2e9b3a8e2edb6e665ed65e1b..06d20bd73dfb581f060a801d37f0140783c7a3ff 100644
--- a/Fit/Adapter/RootResidualFunction.h
+++ b/Fit/Adapter/RootResidualFunction.h
@@ -36,7 +36,7 @@
 
 class RootResidualFunction : public ROOT::Math::FitMethodFunction {
 public:
-    typedef ROOT::Math::BasicFitMethodFunction<ROOT::Math::IMultiGenFunction>::Type_t Type_t;
+    using Type_t = ROOT::Math::BasicFitMethodFunction<ROOT::Math::IMultiGenFunction>::Type_t;
 
     //! Constructs RootResidualFunction
     RootResidualFunction(scalar_function_t objective_fun, gradient_function_t gradient_fun,
diff --git a/Fit/TestEngine/IFactory.h b/Fit/TestEngine/IFactory.h
index c2d26f7af1973efaf4209e2eb168ca0495fa1aa9..8ce057749cfcd2891c57f11f641a726768df087c 100644
--- a/Fit/TestEngine/IFactory.h
+++ b/Fit/TestEngine/IFactory.h
@@ -34,10 +34,10 @@ namespace mumufit::test {
 template <class Key, class AbstractProduct> class IFactory {
 public:
     //! function which will be used to create object of AbstractProduct base type
-    typedef typename std::function<AbstractProduct*()> CreateItemCallback;
+    using CreateItemCallback = std::function<AbstractProduct*()> ;
 
     //! map for correspondence between object identifier and object creation function
-    typedef std::map<Key, CreateItemCallback> CallbackMap_t;
+    using CallbackMap_t = std::map<Key, CreateItemCallback>;
 
     //! Creates object by calling creation function corresponded to given identifier
     AbstractProduct* createItem(const Key& item_key) const
diff --git a/Param/Node/INodeVisitor.h b/Param/Node/INodeVisitor.h
index 00b576bd0d5f7ee09863d975f689d0f45cc0a1fd..b3f838c35a6fd6c115759522dcb8a7d76729f2c8 100644
--- a/Param/Node/INodeVisitor.h
+++ b/Param/Node/INodeVisitor.h
@@ -113,7 +113,6 @@ class InterferenceHardDisk;
 class InterferenceNone;
 class InterferenceRadialParaCrystal;
 class InterferenceTwin;
-class IsGISAXSDetector;
 class Layer;
 class LayerInterface;
 class LayerRoughness;
@@ -242,7 +241,6 @@ public:
     virtual void visit(const InterferenceNone*) {}
     virtual void visit(const InterferenceRadialParaCrystal*) {}
     virtual void visit(const InterferenceTwin*) {}
-    virtual void visit(const IsGISAXSDetector*) {}
     virtual void visit(const Layer*) {}
     virtual void visit(const LayerInterface*) {}
     virtual void visit(const LayerRoughness*) {}
diff --git a/Tests/Functional/Core/Fitting/Plan.cpp b/Tests/Functional/Core/Fitting/Plan.cpp
index 5b1b24f2f13a2236135346a32c36c18fcb1e6fff..933754ee42328996f4cd4840a43a3f47048173d1 100644
--- a/Tests/Functional/Core/Fitting/Plan.cpp
+++ b/Tests/Functional/Core/Fitting/Plan.cpp
@@ -16,6 +16,7 @@
 #include "Core/Examples/SimulationFactory.h"
 #include "Core/Fitting/FitObjective.h"
 #include "Core/Fitting/SimDataPair.h"
+#include "Core/Simulation/ISimulation.h"
 #include "Fit/Kernel/Minimizer.h"
 #include "Sample/Multilayer/MultiLayer.h"
 #include "Sample/StandardSamples/SampleBuilderFactory.h"
diff --git a/Tests/Functional/Core/Std/Check.cpp b/Tests/Functional/Core/Std/Check.cpp
index 17aa3fa76db723e933d0931a2957aa3531025fe4..545170109165fd43070cf8753d27d596adbf8efb 100644
--- a/Tests/Functional/Core/Std/Check.cpp
+++ b/Tests/Functional/Core/Std/Check.cpp
@@ -16,6 +16,7 @@
 #include "BATesting.h"
 #include "Base/Utils/FileSystemUtils.h"
 #include "Core/Examples/SimulationFactory.h"
+#include "Core/Simulation/ISimulation.h"
 #include "Device/Data/DataUtils.h"
 #include "Device/Histo/IntensityDataIOFactory.h"
 #include "Device/Histo/SimulationResult.h"
diff --git a/Tests/Functional/Std/README.md b/Tests/Functional/Std/README.md
index 178a2f9bd76bc13fc00583d3239439336a8f882a..12bcfdaa837697b212c0342138a3fed4ffe0bb78 100644
--- a/Tests/Functional/Std/README.md
+++ b/Tests/Functional/Std/README.md
@@ -5,7 +5,7 @@ Standard tests are run from
 - `Tests/Functional/Python/Std`
 - `Tests/Functional/GUI/Std`
 
-This directory provides some common code that it is compiled
+This directory provides some common code that is compiled
 separately in each of the above three directories.
 
 `StandardTest.cpp`
diff --git a/Tests/Functional/Std/Run.cpp b/Tests/Functional/Std/Run.cpp
index 6987bbf9fe2459b5ef19231809c5512527c5fb2a..a42ad2e559cd418c21c48a690a394e5a37d85f11 100644
--- a/Tests/Functional/Std/Run.cpp
+++ b/Tests/Functional/Std/Run.cpp
@@ -15,12 +15,13 @@
 #include "Tests/Functional/Std/Run.h"
 #include "Base/Utils/Assert.h"
 #include "Core/Examples/SimulationFactory.h"
+#include "Core/Simulation/ISimulation.h"
 #include "Sample/Multilayer/MultiLayer.h"
 #include "Sample/StandardSamples/SampleBuilderFactory.h"
 #include "Tests/Functional/Std/StandardTests.h" // provides F_TEST macros to be executed by gtest
 #include <iostream>
 
-//! This function, called from run, has different implementations in Core/Py/Gui tests:
+//! This function, called from run, has different implementations in Core|Py|Gui tests:
 bool checkSimulation(const std::string& name, const ISimulation& direct_simulation,
                      const double limit);
 
diff --git a/Wrap/Swig/libBornAgainDevice.i b/Wrap/Swig/libBornAgainDevice.i
index f648a3d1ec5d2c62664dc1353c7e4543ee140de2..93a296f71d8226d4505de11386082beb56922f13 100644
--- a/Wrap/Swig/libBornAgainDevice.i
+++ b/Wrap/Swig/libBornAgainDevice.i
@@ -40,7 +40,6 @@
 #include "Device/Beam/FootprintGauss.h"
 #include "Device/Beam/FootprintSquare.h"
 #include "Device/Data/DataUtils.h"
-#include "Device/Detector/IsGISAXSDetector.h"
 #include "Device/Detector/RectangularDetector.h"
 #include "Device/Detector/SphericalDetector.h"
 #include "Device/Histo/HistoUtils.h"
@@ -108,7 +107,6 @@
 %include "Device/Detector/IDetector2D.h"
 %include "Device/Detector/RectangularDetector.h"
 %include "Device/Detector/SphericalDetector.h"
-%include "Device/Detector/IsGISAXSDetector.h"
 
 %include "Device/Instrument/Instrument.h"
 
diff --git a/auto/Wrap/doxygenCore.i b/auto/Wrap/doxygenCore.i
index afa47a9f5ab9b2f4b5c184427dbd7a61712858cd..7fd17d1e8f43e3f2034a3921a6370f254fdac563 100644
--- a/auto/Wrap/doxygenCore.i
+++ b/auto/Wrap/doxygenCore.i
@@ -2139,11 +2139,6 @@ Prints an axis.
 Basic GISAS simulation with the detector phi[0,2], theta[0,2]. 
 ";
 
-%feature("docstring")  StandardSimulations::BasicGISAS00 "GISASSimulation * StandardSimulations::BasicGISAS00()
-
-Basic GISAS for polarization studies. 
-";
-
 %feature("docstring")  StandardSimulations::SpinflipGISAS "GISASSimulation * StandardSimulations::SpinflipGISAS()
 
 Basic GISAS simulation for spin flip channel. 
@@ -2189,16 +2184,6 @@ GISAS simulation with large detector to test performance.
 Basic GISAS for polarization studies. 
 ";
 
-%feature("docstring")  StandardSimulations::IsGISAXSSimulation1 "GISASSimulation * StandardSimulations::IsGISAXSSimulation1()
-
-Typical IsGISAXS simulation with the detector phi[-1,1], theta[0,2]. 
-";
-
-%feature("docstring")  StandardSimulations::IsGISAXSSimulation2 "GISASSimulation * StandardSimulations::IsGISAXSSimulation2()
-
-Typical IsGISAXS simulation with the detector phi[0,2], theta[0,2]. 
-";
-
 %feature("docstring")  StandardSimulations::RectDetectorGeneric "GISASSimulation * StandardSimulations::RectDetectorGeneric()
 
 GISAS simulation with generic rectangular detector. 
diff --git a/auto/Wrap/doxygenParam.i b/auto/Wrap/doxygenParam.i
index f219c38b7a2ef0c4331e9d84fa035f3afacd2017..f225b06e0d6c3af0d02e7a9c567c6db0dbe9e950 100644
--- a/auto/Wrap/doxygenParam.i
+++ b/auto/Wrap/doxygenParam.i
@@ -811,9 +811,6 @@ C++ includes: INodeVisitor.h
 %feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const InterferenceTwin *)
 ";
 
-%feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const IsGISAXSDetector *)
-";
-
 %feature("docstring")  INodeVisitor::visit "virtual void INodeVisitor::visit(const Layer *)
 ";
 
diff --git a/auto/Wrap/libBornAgainDevice.py b/auto/Wrap/libBornAgainDevice.py
index 831ae0123da4e6f3387f2357011467c6c3cb3fd4..bcb135449379328775e19f98ae8c5c73a43e07f9 100644
--- a/auto/Wrap/libBornAgainDevice.py
+++ b/auto/Wrap/libBornAgainDevice.py
@@ -4644,58 +4644,6 @@ class SphericalDetector(IDetector2D):
 # Register SphericalDetector in _libBornAgainDevice:
 _libBornAgainDevice.SphericalDetector_swigregister(SphericalDetector)
 
-class IsGISAXSDetector(SphericalDetector):
-    r"""
-
-
-    A spherical detector used for validation with IsGISAXS results.
-
-    C++ includes: IsGISAXSDetector.h
-
-    """
-
-    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
-    __repr__ = _swig_repr
-    class_name = _libBornAgainDevice.IsGISAXSDetector_class_name
-    
-
-    def className(self):
-        r"""
-        className(IsGISAXSDetector self) -> std::string
-        std::string IsGISAXSDetector::className() const final
-
-        """
-        return _libBornAgainDevice.IsGISAXSDetector_className(self)
-
-    def __init__(self, *args):
-        r"""
-        __init__(IsGISAXSDetector self, size_t n_phi, double phi_min, double phi_max, size_t n_alpha, double alpha_min, double alpha_max) -> IsGISAXSDetector
-        __init__(IsGISAXSDetector self, IsGISAXSDetector other) -> IsGISAXSDetector
-        IsGISAXSDetector::IsGISAXSDetector(const IsGISAXSDetector &other)
-
-        """
-        _libBornAgainDevice.IsGISAXSDetector_swiginit(self, _libBornAgainDevice.new_IsGISAXSDetector(*args))
-
-    def clone(self):
-        r"""
-        clone(IsGISAXSDetector self) -> IsGISAXSDetector
-        IsGISAXSDetector * IsGISAXSDetector::clone() const override
-
-        """
-        return _libBornAgainDevice.IsGISAXSDetector_clone(self)
-
-    def accept(self, visitor):
-        r"""
-        accept(IsGISAXSDetector self, INodeVisitor * visitor)
-        void IsGISAXSDetector::accept(INodeVisitor *visitor) const override
-
-        """
-        return _libBornAgainDevice.IsGISAXSDetector_accept(self, visitor)
-    __swig_destroy__ = _libBornAgainDevice.delete_IsGISAXSDetector
-
-# Register IsGISAXSDetector in _libBornAgainDevice:
-_libBornAgainDevice.IsGISAXSDetector_swigregister(IsGISAXSDetector)
-
 class Instrument(libBornAgainParam.INode):
     r"""
 
diff --git a/auto/Wrap/libBornAgainDevice_wrap.cpp b/auto/Wrap/libBornAgainDevice_wrap.cpp
index 911779106f5c056b5eb9e150e7b6aea27644e78a..09626baef685113d68510c62e7c47a27bbafa995 100644
--- a/auto/Wrap/libBornAgainDevice_wrap.cpp
+++ b/auto/Wrap/libBornAgainDevice_wrap.cpp
@@ -3130,86 +3130,85 @@ namespace Swig {
 #define SWIGTYPE_p_IShape2D swig_types[30]
 #define SWIGTYPE_p_Instrument swig_types[31]
 #define SWIGTYPE_p_IntensityDataIOFactory swig_types[32]
-#define SWIGTYPE_p_IsGISAXSDetector swig_types[33]
-#define SWIGTYPE_p_Line swig_types[34]
-#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[35]
-#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[36]
-#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[37]
-#define SWIGTYPE_p_OutputDataT_bool_t swig_types[38]
-#define SWIGTYPE_p_OutputDataT_double_t swig_types[39]
-#define SWIGTYPE_p_PolFilter swig_types[40]
-#define SWIGTYPE_p_PolMatrices swig_types[41]
-#define SWIGTYPE_p_Polygon swig_types[42]
-#define SWIGTYPE_p_PolygonPrivate swig_types[43]
-#define SWIGTYPE_p_RealLimits swig_types[44]
-#define SWIGTYPE_p_Rectangle swig_types[45]
-#define SWIGTYPE_p_RectangularDetector swig_types[46]
-#define SWIGTYPE_p_RectangularPixel swig_types[47]
-#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[48]
-#define SWIGTYPE_p_ScanResolution swig_types[49]
-#define SWIGTYPE_p_SimulationResult swig_types[50]
-#define SWIGTYPE_p_SphericalDetector swig_types[51]
-#define SWIGTYPE_p_VerticalLine swig_types[52]
-#define SWIGTYPE_p_allocator_type swig_types[53]
-#define SWIGTYPE_p_bool swig_types[54]
-#define SWIGTYPE_p_char swig_types[55]
-#define SWIGTYPE_p_const_iterator swig_types[56]
-#define SWIGTYPE_p_corr_matrix_t swig_types[57]
-#define SWIGTYPE_p_difference_type swig_types[58]
-#define SWIGTYPE_p_double swig_types[59]
-#define SWIGTYPE_p_first_type swig_types[60]
-#define SWIGTYPE_p_int swig_types[61]
-#define SWIGTYPE_p_iterator swig_types[62]
-#define SWIGTYPE_p_key_type swig_types[63]
-#define SWIGTYPE_p_long_long swig_types[64]
-#define SWIGTYPE_p_mapped_type swig_types[65]
-#define SWIGTYPE_p_p_ICoordSystem swig_types[66]
-#define SWIGTYPE_p_p_PyObject swig_types[67]
-#define SWIGTYPE_p_parameters_t swig_types[68]
-#define SWIGTYPE_p_second_type swig_types[69]
-#define SWIGTYPE_p_short swig_types[70]
-#define SWIGTYPE_p_signed_char swig_types[71]
-#define SWIGTYPE_p_size_type swig_types[72]
-#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[73]
-#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[74]
-#define SWIGTYPE_p_std__allocatorT_double_t swig_types[75]
-#define SWIGTYPE_p_std__allocatorT_int_t swig_types[76]
-#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[77]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[78]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[79]
-#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[80]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[81]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[82]
-#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[83]
-#define SWIGTYPE_p_std__complexT_double_t swig_types[84]
-#define SWIGTYPE_p_std__functionT_void_fSimulationAreaIterator_const_RF_t swig_types[85]
-#define SWIGTYPE_p_std__invalid_argument swig_types[86]
-#define SWIGTYPE_p_std__lessT_std__string_t swig_types[87]
-#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[88]
-#define SWIGTYPE_p_std__pairT_double_double_t swig_types[89]
-#define SWIGTYPE_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t swig_types[90]
-#define SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t swig_types[91]
-#define SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t swig_types[92]
-#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[93]
-#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[94]
-#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[95]
-#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[96]
-#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[97]
-#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[98]
-#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[99]
-#define SWIGTYPE_p_std__vectorT_std__unique_ptrT_DiffuseElement_t_std__allocatorT_std__unique_ptrT_DiffuseElement_t_t_t swig_types[100]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[101]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[102]
-#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[103]
-#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[104]
-#define SWIGTYPE_p_swig__SwigPyIterator swig_types[105]
-#define SWIGTYPE_p_unsigned_char swig_types[106]
-#define SWIGTYPE_p_unsigned_int swig_types[107]
-#define SWIGTYPE_p_unsigned_long_long swig_types[108]
-#define SWIGTYPE_p_unsigned_short swig_types[109]
-#define SWIGTYPE_p_value_type swig_types[110]
-static swig_type_info *swig_types[112];
-static swig_module_info swig_module = {swig_types, 111, 0, 0, 0, 0};
+#define SWIGTYPE_p_Line swig_types[33]
+#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[34]
+#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[35]
+#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[36]
+#define SWIGTYPE_p_OutputDataT_bool_t swig_types[37]
+#define SWIGTYPE_p_OutputDataT_double_t swig_types[38]
+#define SWIGTYPE_p_PolFilter swig_types[39]
+#define SWIGTYPE_p_PolMatrices swig_types[40]
+#define SWIGTYPE_p_Polygon swig_types[41]
+#define SWIGTYPE_p_PolygonPrivate swig_types[42]
+#define SWIGTYPE_p_RealLimits swig_types[43]
+#define SWIGTYPE_p_Rectangle swig_types[44]
+#define SWIGTYPE_p_RectangularDetector swig_types[45]
+#define SWIGTYPE_p_RectangularPixel swig_types[46]
+#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[47]
+#define SWIGTYPE_p_ScanResolution swig_types[48]
+#define SWIGTYPE_p_SimulationResult swig_types[49]
+#define SWIGTYPE_p_SphericalDetector swig_types[50]
+#define SWIGTYPE_p_VerticalLine swig_types[51]
+#define SWIGTYPE_p_allocator_type swig_types[52]
+#define SWIGTYPE_p_bool swig_types[53]
+#define SWIGTYPE_p_char swig_types[54]
+#define SWIGTYPE_p_const_iterator swig_types[55]
+#define SWIGTYPE_p_corr_matrix_t swig_types[56]
+#define SWIGTYPE_p_difference_type swig_types[57]
+#define SWIGTYPE_p_double swig_types[58]
+#define SWIGTYPE_p_first_type swig_types[59]
+#define SWIGTYPE_p_int swig_types[60]
+#define SWIGTYPE_p_iterator swig_types[61]
+#define SWIGTYPE_p_key_type swig_types[62]
+#define SWIGTYPE_p_long_long swig_types[63]
+#define SWIGTYPE_p_mapped_type swig_types[64]
+#define SWIGTYPE_p_p_ICoordSystem swig_types[65]
+#define SWIGTYPE_p_p_PyObject swig_types[66]
+#define SWIGTYPE_p_parameters_t swig_types[67]
+#define SWIGTYPE_p_second_type swig_types[68]
+#define SWIGTYPE_p_short swig_types[69]
+#define SWIGTYPE_p_signed_char swig_types[70]
+#define SWIGTYPE_p_size_type swig_types[71]
+#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[72]
+#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[73]
+#define SWIGTYPE_p_std__allocatorT_double_t swig_types[74]
+#define SWIGTYPE_p_std__allocatorT_int_t swig_types[75]
+#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[76]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[77]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[78]
+#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[79]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[80]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[81]
+#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[82]
+#define SWIGTYPE_p_std__complexT_double_t swig_types[83]
+#define SWIGTYPE_p_std__functionT_void_fSimulationAreaIterator_const_RF_t swig_types[84]
+#define SWIGTYPE_p_std__invalid_argument swig_types[85]
+#define SWIGTYPE_p_std__lessT_std__string_t swig_types[86]
+#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[87]
+#define SWIGTYPE_p_std__pairT_double_double_t swig_types[88]
+#define SWIGTYPE_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t swig_types[89]
+#define SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t swig_types[90]
+#define SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t swig_types[91]
+#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[92]
+#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[93]
+#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[94]
+#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[95]
+#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[96]
+#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[97]
+#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[98]
+#define SWIGTYPE_p_std__vectorT_std__unique_ptrT_DiffuseElement_t_std__allocatorT_std__unique_ptrT_DiffuseElement_t_t_t swig_types[99]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[100]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[101]
+#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[102]
+#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[103]
+#define SWIGTYPE_p_swig__SwigPyIterator swig_types[104]
+#define SWIGTYPE_p_unsigned_char swig_types[105]
+#define SWIGTYPE_p_unsigned_int swig_types[106]
+#define SWIGTYPE_p_unsigned_long_long swig_types[107]
+#define SWIGTYPE_p_unsigned_short swig_types[108]
+#define SWIGTYPE_p_value_type swig_types[109]
+static swig_type_info *swig_types[111];
+static swig_module_info swig_module = {swig_types, 110, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -6708,7 +6707,6 @@ SWIGINTERN void std_vector_Sl_std_pair_Sl_double_Sc_double_Sg__Sg__insert__SWIG_
 #include "Device/Beam/FootprintGauss.h"
 #include "Device/Beam/FootprintSquare.h"
 #include "Device/Data/DataUtils.h"
-#include "Device/Detector/IsGISAXSDetector.h"
 #include "Device/Detector/RectangularDetector.h"
 #include "Device/Detector/SphericalDetector.h"
 #include "Device/Histo/HistoUtils.h"
@@ -38490,265 +38488,6 @@ SWIGINTERN PyObject *SphericalDetector_swiginit(PyObject *SWIGUNUSEDPARM(self),
   return SWIG_Python_InitShadowInstance(args);
 }
 
-SWIGINTERN PyObject *_wrap_IsGISAXSDetector_className(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  IsGISAXSDetector *arg1 = (IsGISAXSDetector *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject *swig_obj[1] ;
-  std::string result;
-  
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IsGISAXSDetector, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IsGISAXSDetector_className" "', argument " "1"" of type '" "IsGISAXSDetector const *""'"); 
-  }
-  arg1 = reinterpret_cast< IsGISAXSDetector * >(argp1);
-  result = ((IsGISAXSDetector const *)arg1)->className();
-  resultobj = SWIG_From_std_string(static_cast< std::string >(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_new_IsGISAXSDetector__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
-  PyObject *resultobj = 0;
-  size_t arg1 ;
-  double arg2 ;
-  double arg3 ;
-  size_t arg4 ;
-  double arg5 ;
-  double arg6 ;
-  size_t val1 ;
-  int ecode1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
-  size_t val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
-  double val6 ;
-  int ecode6 = 0 ;
-  IsGISAXSDetector *result = 0 ;
-  
-  if ((nobjs < 6) || (nobjs > 6)) SWIG_fail;
-  ecode1 = SWIG_AsVal_size_t(swig_obj[0], &val1);
-  if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_IsGISAXSDetector" "', argument " "1"" of type '" "size_t""'");
-  } 
-  arg1 = static_cast< size_t >(val1);
-  ecode2 = SWIG_AsVal_double(swig_obj[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_IsGISAXSDetector" "', argument " "2"" of type '" "double""'");
-  } 
-  arg2 = static_cast< double >(val2);
-  ecode3 = SWIG_AsVal_double(swig_obj[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_IsGISAXSDetector" "', argument " "3"" of type '" "double""'");
-  } 
-  arg3 = static_cast< double >(val3);
-  ecode4 = SWIG_AsVal_size_t(swig_obj[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_IsGISAXSDetector" "', argument " "4"" of type '" "size_t""'");
-  } 
-  arg4 = static_cast< size_t >(val4);
-  ecode5 = SWIG_AsVal_double(swig_obj[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_IsGISAXSDetector" "', argument " "5"" of type '" "double""'");
-  } 
-  arg5 = static_cast< double >(val5);
-  ecode6 = SWIG_AsVal_double(swig_obj[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "new_IsGISAXSDetector" "', argument " "6"" of type '" "double""'");
-  } 
-  arg6 = static_cast< double >(val6);
-  result = (IsGISAXSDetector *)new IsGISAXSDetector(arg1,arg2,arg3,arg4,arg5,arg6);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IsGISAXSDetector, SWIG_POINTER_NEW |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_new_IsGISAXSDetector__SWIG_1(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
-  PyObject *resultobj = 0;
-  IsGISAXSDetector *arg1 = 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  IsGISAXSDetector *result = 0 ;
-  
-  if ((nobjs < 1) || (nobjs > 1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1, SWIGTYPE_p_IsGISAXSDetector,  0  | 0);
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IsGISAXSDetector" "', argument " "1"" of type '" "IsGISAXSDetector const &""'"); 
-  }
-  if (!argp1) {
-    SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_IsGISAXSDetector" "', argument " "1"" of type '" "IsGISAXSDetector const &""'"); 
-  }
-  arg1 = reinterpret_cast< IsGISAXSDetector * >(argp1);
-  result = (IsGISAXSDetector *)new IsGISAXSDetector((IsGISAXSDetector const &)*arg1);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IsGISAXSDetector, SWIG_POINTER_NEW |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_new_IsGISAXSDetector(PyObject *self, PyObject *args) {
-  Py_ssize_t argc;
-  PyObject *argv[7] = {
-    0
-  };
-  
-  if (!(argc = SWIG_Python_UnpackTuple(args, "new_IsGISAXSDetector", 0, 6, argv))) SWIG_fail;
-  --argc;
-  if (argc == 1) {
-    int _v;
-    int res = SWIG_ConvertPtr(argv[0], 0, SWIGTYPE_p_IsGISAXSDetector, SWIG_POINTER_NO_NULL | 0);
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      return _wrap_new_IsGISAXSDetector__SWIG_1(self, argc, argv);
-    }
-  }
-  if (argc == 6) {
-    int _v;
-    {
-      int res = SWIG_AsVal_size_t(argv[0], NULL);
-      _v = SWIG_CheckState(res);
-    }
-    if (_v) {
-      {
-        int res = SWIG_AsVal_double(argv[1], NULL);
-        _v = SWIG_CheckState(res);
-      }
-      if (_v) {
-        {
-          int res = SWIG_AsVal_double(argv[2], NULL);
-          _v = SWIG_CheckState(res);
-        }
-        if (_v) {
-          {
-            int res = SWIG_AsVal_size_t(argv[3], NULL);
-            _v = SWIG_CheckState(res);
-          }
-          if (_v) {
-            {
-              int res = SWIG_AsVal_double(argv[4], NULL);
-              _v = SWIG_CheckState(res);
-            }
-            if (_v) {
-              {
-                int res = SWIG_AsVal_double(argv[5], NULL);
-                _v = SWIG_CheckState(res);
-              }
-              if (_v) {
-                return _wrap_new_IsGISAXSDetector__SWIG_0(self, argc, argv);
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-  
-fail:
-  SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'new_IsGISAXSDetector'.\n"
-    "  Possible C/C++ prototypes are:\n"
-    "    IsGISAXSDetector::IsGISAXSDetector(size_t,double,double,size_t,double,double)\n"
-    "    IsGISAXSDetector::IsGISAXSDetector(IsGISAXSDetector const &)\n");
-  return 0;
-}
-
-
-SWIGINTERN PyObject *_wrap_IsGISAXSDetector_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  IsGISAXSDetector *arg1 = (IsGISAXSDetector *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject *swig_obj[1] ;
-  IsGISAXSDetector *result = 0 ;
-  
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IsGISAXSDetector, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IsGISAXSDetector_clone" "', argument " "1"" of type '" "IsGISAXSDetector const *""'"); 
-  }
-  arg1 = reinterpret_cast< IsGISAXSDetector * >(argp1);
-  result = (IsGISAXSDetector *)((IsGISAXSDetector const *)arg1)->clone();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IsGISAXSDetector, 0 |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_IsGISAXSDetector_accept(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  IsGISAXSDetector *arg1 = (IsGISAXSDetector *) 0 ;
-  INodeVisitor *arg2 = (INodeVisitor *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject *swig_obj[2] ;
-  
-  if (!SWIG_Python_UnpackTuple(args, "IsGISAXSDetector_accept", 2, 2, swig_obj)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IsGISAXSDetector, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IsGISAXSDetector_accept" "', argument " "1"" of type '" "IsGISAXSDetector const *""'"); 
-  }
-  arg1 = reinterpret_cast< IsGISAXSDetector * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IsGISAXSDetector_accept" "', argument " "2"" of type '" "INodeVisitor *""'"); 
-  }
-  arg2 = reinterpret_cast< INodeVisitor * >(argp2);
-  ((IsGISAXSDetector const *)arg1)->accept(arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_delete_IsGISAXSDetector(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  IsGISAXSDetector *arg1 = (IsGISAXSDetector *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject *swig_obj[1] ;
-  
-  if (!args) SWIG_fail;
-  swig_obj[0] = args;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IsGISAXSDetector, SWIG_POINTER_DISOWN |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IsGISAXSDetector" "', argument " "1"" of type '" "IsGISAXSDetector *""'"); 
-  }
-  arg1 = reinterpret_cast< IsGISAXSDetector * >(argp1);
-  delete arg1;
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *IsGISAXSDetector_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *obj;
-  if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_IsGISAXSDetector, SWIG_NewClientData(obj));
-  return SWIG_Py_Void();
-}
-
-SWIGINTERN PyObject *IsGISAXSDetector_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  return SWIG_Python_InitShadowInstance(args);
-}
-
 SWIGINTERN PyObject *_wrap_Instrument_className(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   Instrument *arg1 = (Instrument *) 0 ;
@@ -46905,30 +46644,6 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { "SphericalDetector_swigregister", SphericalDetector_swigregister, METH_O, NULL},
 	 { "SphericalDetector_swiginit", SphericalDetector_swiginit, METH_VARARGS, NULL},
-	 { "IsGISAXSDetector_className", _wrap_IsGISAXSDetector_className, METH_O, "\n"
-		"IsGISAXSDetector_className(IsGISAXSDetector self) -> std::string\n"
-		"std::string IsGISAXSDetector::className() const final\n"
-		"\n"
-		""},
-	 { "new_IsGISAXSDetector", _wrap_new_IsGISAXSDetector, METH_VARARGS, "\n"
-		"IsGISAXSDetector(size_t n_phi, double phi_min, double phi_max, size_t n_alpha, double alpha_min, double alpha_max)\n"
-		"new_IsGISAXSDetector(IsGISAXSDetector other) -> IsGISAXSDetector\n"
-		"IsGISAXSDetector::IsGISAXSDetector(const IsGISAXSDetector &other)\n"
-		"\n"
-		""},
-	 { "IsGISAXSDetector_clone", _wrap_IsGISAXSDetector_clone, METH_O, "\n"
-		"IsGISAXSDetector_clone(IsGISAXSDetector self) -> IsGISAXSDetector\n"
-		"IsGISAXSDetector * IsGISAXSDetector::clone() const override\n"
-		"\n"
-		""},
-	 { "IsGISAXSDetector_accept", _wrap_IsGISAXSDetector_accept, METH_VARARGS, "\n"
-		"IsGISAXSDetector_accept(IsGISAXSDetector self, INodeVisitor * visitor)\n"
-		"void IsGISAXSDetector::accept(INodeVisitor *visitor) const override\n"
-		"\n"
-		""},
-	 { "delete_IsGISAXSDetector", _wrap_delete_IsGISAXSDetector, METH_O, "delete_IsGISAXSDetector(IsGISAXSDetector self)"},
-	 { "IsGISAXSDetector_swigregister", IsGISAXSDetector_swigregister, METH_O, NULL},
-	 { "IsGISAXSDetector_swiginit", IsGISAXSDetector_swiginit, METH_VARARGS, NULL},
 	 { "Instrument_className", _wrap_Instrument_className, METH_O, "\n"
 		"Instrument_className(Instrument self) -> std::string\n"
 		"std::string Instrument::className() const final\n"
@@ -47620,21 +47335,12 @@ static void *_p_RectangularDetectorTo_p_IDetector2D(void *x, int *SWIGUNUSEDPARM
 static void *_p_SphericalDetectorTo_p_IDetector2D(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((IDetector2D *)  ((SphericalDetector *) x));
 }
-static void *_p_IsGISAXSDetectorTo_p_IDetector2D(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IDetector2D *) (SphericalDetector *) ((IsGISAXSDetector *) x));
-}
-static void *_p_IsGISAXSDetectorTo_p_SphericalDetector(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((SphericalDetector *)  ((IsGISAXSDetector *) x));
-}
 static void *_p_RectangularDetectorTo_p_IDetector(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((IDetector *) (IDetector2D *) ((RectangularDetector *) x));
 }
 static void *_p_SphericalDetectorTo_p_IDetector(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((IDetector *) (IDetector2D *) ((SphericalDetector *) x));
 }
-static void *_p_IsGISAXSDetectorTo_p_IDetector(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((IDetector *) (IDetector2D *)(SphericalDetector *) ((IsGISAXSDetector *) x));
-}
 static void *_p_IDetector2DTo_p_IDetector(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((IDetector *)  ((IDetector2D *) x));
 }
@@ -47698,9 +47404,6 @@ static void *_p_RectangularDetectorTo_p_INode(void *x, int *SWIGUNUSEDPARM(newme
 static void *_p_SphericalDetectorTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (IDetector *)(IDetector2D *) ((SphericalDetector *) x));
 }
-static void *_p_IsGISAXSDetectorTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((INode *) (IDetector *)(IDetector2D *)(SphericalDetector *) ((IsGISAXSDetector *) x));
-}
 static void *_p_FootprintGaussTo_p_INode(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((INode *) (IFootprintFactor *) ((FootprintGauss *) x));
 }
@@ -47752,9 +47455,6 @@ static void *_p_RectangularDetectorTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(
 static void *_p_SphericalDetectorTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (IDetector *)(IDetector2D *) ((SphericalDetector *) x));
 }
-static void *_p_IsGISAXSDetectorTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
-    return (void *)((ICloneable *) (IDetector *)(IDetector2D *)(SphericalDetector *) ((IsGISAXSDetector *) x));
-}
 static void *_p_PolygonTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (IShape2D *) ((Polygon *) x));
 }
@@ -47800,7 +47500,6 @@ static swig_type_info _swigt__p_IResolutionFunction2D = {"_p_IResolutionFunction
 static swig_type_info _swigt__p_IShape2D = {"_p_IShape2D", "IShape2D *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Instrument = {"_p_Instrument", "Instrument *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_IntensityDataIOFactory = {"_p_IntensityDataIOFactory", "IntensityDataIOFactory *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_IsGISAXSDetector = {"_p_IsGISAXSDetector", "IsGISAXSDetector *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Line = {"_p_Line", "Line *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_OutputDataIteratorT_double_OutputDataT_double_t_t = {"_p_OutputDataIteratorT_double_OutputDataT_double_t_t", "OutputData< double >::iterator *|OutputDataIterator< double,OutputData< double > > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t = {"_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t", "OutputDataIterator< double const,OutputData< double > const > *|OutputData< double >::const_iterator *", 0, 0, (void*)0, 0};
@@ -47913,7 +47612,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_IShape2D,
   &_swigt__p_Instrument,
   &_swigt__p_IntensityDataIOFactory,
-  &_swigt__p_IsGISAXSDetector,
   &_swigt__p_Line,
   &_swigt__p_OutputDataIteratorT_double_OutputDataT_double_t_t,
   &_swigt__p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t,
@@ -48011,14 +47709,14 @@ static swig_cast_info _swigc__p_Histogram1D[] = {  {&_swigt__p_Histogram1D, 0, 0
 static swig_cast_info _swigc__p_Histogram2D[] = {  {&_swigt__p_Histogram2D, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_HorizontalLine[] = {  {&_swigt__p_HorizontalLine, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IAxis[] = {  {&_swigt__p_IAxis, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_ICloneable[] = {  {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_ScanResolution, _p_ScanResolutionTo_p_ICloneable, 0, 0},  {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_ICloneable, 0, 0},  {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Line, _p_LineTo_p_ICloneable, 0, 0},  {&_swigt__p_ICloneable, 0, 0, 0},  {&_swigt__p_Rectangle, _p_RectangleTo_p_ICloneable, 0, 0},  {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_ICloneable, 0, 0},  {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_ICloneable, 0, 0},  {&_swigt__p_IShape2D, _p_IShape2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Ellipse, _p_EllipseTo_p_ICloneable, 0, 0},  {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_ICloneable, 0, 0},  {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_ICloneable, 0, 0},  {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_IDetector, _p_IDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_ICloneable, 0, 0},  {&_swigt__p_Polygon, _p_PolygonTo_p_ICloneable, 0, 0},  {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_ICloneable, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ICloneable[] = {  {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_ScanResolution, _p_ScanResolutionTo_p_ICloneable, 0, 0},  {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_ICloneable, 0, 0},  {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Line, _p_LineTo_p_ICloneable, 0, 0},  {&_swigt__p_ICloneable, 0, 0, 0},  {&_swigt__p_Rectangle, _p_RectangleTo_p_ICloneable, 0, 0},  {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_ICloneable, 0, 0},  {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_ICloneable, 0, 0},  {&_swigt__p_IShape2D, _p_IShape2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Ellipse, _p_EllipseTo_p_ICloneable, 0, 0},  {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_ICloneable, 0, 0},  {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_ICloneable, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_IDetector, _p_IDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_Polygon, _p_PolygonTo_p_ICloneable, 0, 0},  {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_ICloneable, 0, 0},  {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_ICloneable, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ICoordSystem[] = {  {&_swigt__p_ICoordSystem, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_IDetector[] = {  {&_swigt__p_IDetector, 0, 0, 0},  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IDetector, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IDetector, 0, 0},  {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_IDetector, 0, 0},  {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_IDetector, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_IDetector2D[] = {  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IDetector2D, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IDetector2D, 0, 0},  {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_IDetector2D, 0, 0},  {&_swigt__p_IDetector2D, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_IDetector[] = {  {&_swigt__p_IDetector, 0, 0, 0},  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IDetector, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IDetector, 0, 0},  {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_IDetector, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_IDetector2D[] = {  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IDetector2D, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IDetector2D, 0, 0},  {&_swigt__p_IDetector2D, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IDetectorResolution[] = {  {&_swigt__p_IDetectorResolution, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IFootprintFactor[] = {  {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_IFootprintFactor, 0, 0},  {&_swigt__p_IFootprintFactor, 0, 0, 0},  {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_IFootprintFactor, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IHistogram[] = {  {&_swigt__p_IHistogram, 0, 0, 0},  {&_swigt__p_Histogram2D, _p_Histogram2DTo_p_IHistogram, 0, 0},  {&_swigt__p_Histogram1D, _p_Histogram1DTo_p_IHistogram, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_INode[] = {  {&_swigt__p_Beam, _p_BeamTo_p_INode, 0, 0},  {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_INode, 0, 0},  {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_INode, 0, 0},  {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_INode, 0, 0},  {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_INode, 0, 0},  {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_INode, 0, 0},  {&_swigt__p_Instrument, _p_InstrumentTo_p_INode, 0, 0},  {&_swigt__p_IDetector, _p_IDetectorTo_p_INode, 0, 0},  {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_INode, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_INode, 0, 0},  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_INode, 0, 0},  {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_INode, 0, 0},  {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_INode, 0, 0},  {&_swigt__p_INode, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_INode[] = {  {&_swigt__p_INode, 0, 0, 0},  {&_swigt__p_FootprintSquare, _p_FootprintSquareTo_p_INode, 0, 0},  {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_INode, 0, 0},  {&_swigt__p_Instrument, _p_InstrumentTo_p_INode, 0, 0},  {&_swigt__p_IFootprintFactor, _p_IFootprintFactorTo_p_INode, 0, 0},  {&_swigt__p_Beam, _p_BeamTo_p_INode, 0, 0},  {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_INode, 0, 0},  {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_INode, 0, 0},  {&_swigt__p_IDetector, _p_IDetectorTo_p_INode, 0, 0},  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_INode, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_INode, 0, 0},  {&_swigt__p_FootprintGauss, _p_FootprintGaussTo_p_INode, 0, 0},  {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_INode, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_INodeVisitor[] = {  {&_swigt__p_INodeVisitor, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IPixel[] = {  {&_swigt__p_IPixel, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IRangedDistribution[] = {  {&_swigt__p_IRangedDistribution, 0, 0, 0},{0, 0, 0, 0}};
@@ -48026,7 +47724,6 @@ static swig_cast_info _swigc__p_IResolutionFunction2D[] = {  {&_swigt__p_IResolu
 static swig_cast_info _swigc__p_IShape2D[] = {  {&_swigt__p_Polygon, _p_PolygonTo_p_IShape2D, 0, 0},  {&_swigt__p_Line, _p_LineTo_p_IShape2D, 0, 0},  {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_IShape2D, 0, 0},  {&_swigt__p_Ellipse, _p_EllipseTo_p_IShape2D, 0, 0},  {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_IShape2D, 0, 0},  {&_swigt__p_Rectangle, _p_RectangleTo_p_IShape2D, 0, 0},  {&_swigt__p_IShape2D, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Instrument[] = {  {&_swigt__p_Instrument, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IntensityDataIOFactory[] = {  {&_swigt__p_IntensityDataIOFactory, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_IsGISAXSDetector[] = {  {&_swigt__p_IsGISAXSDetector, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Line[] = {  {&_swigt__p_Line, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_OutputDataIteratorT_double_OutputDataT_double_t_t[] = {  {&_swigt__p_OutputDataIteratorT_double_OutputDataT_double_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t[] = {  {&_swigt__p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -48044,7 +47741,7 @@ static swig_cast_info _swigc__p_RectangularPixel[] = {  {&_swigt__p_RectangularP
 static swig_cast_info _swigc__p_ResolutionFunction2DGaussian[] = {  {&_swigt__p_ResolutionFunction2DGaussian, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ScanResolution[] = {  {&_swigt__p_ScanResolution, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_SimulationResult[] = {  {&_swigt__p_SimulationResult, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_SphericalDetector[] = {  {&_swigt__p_SphericalDetector, 0, 0, 0},  {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_SphericalDetector, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_SphericalDetector[] = {  {&_swigt__p_SphericalDetector, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_VerticalLine[] = {  {&_swigt__p_VerticalLine, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_allocator_type[] = {  {&_swigt__p_allocator_type, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_bool[] = {  {&_swigt__p_bool, 0, 0, 0},{0, 0, 0, 0}};
@@ -48139,7 +47836,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_IShape2D,
   _swigc__p_Instrument,
   _swigc__p_IntensityDataIOFactory,
-  _swigc__p_IsGISAXSDetector,
   _swigc__p_Line,
   _swigc__p_OutputDataIteratorT_double_OutputDataT_double_t_t,
   _swigc__p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t,
@@ -48978,7 +48674,6 @@ SWIG_init(void) {
   SWIG_Python_SetConstant(d, "RectangularDetector_PERPENDICULAR_TO_DIRECT_BEAM",SWIG_From_int(static_cast< int >(RectangularDetector::PERPENDICULAR_TO_DIRECT_BEAM)));
   SWIG_Python_SetConstant(d, "RectangularDetector_PERPENDICULAR_TO_REFLECTED_BEAM",SWIG_From_int(static_cast< int >(RectangularDetector::PERPENDICULAR_TO_REFLECTED_BEAM)));
   SWIG_Python_SetConstant(d, "RectangularDetector_PERPENDICULAR_TO_REFLECTED_BEAM_DPOS",SWIG_From_int(static_cast< int >(RectangularDetector::PERPENDICULAR_TO_REFLECTED_BEAM_DPOS)));
-  SWIG_Python_SetConstant(d, "IsGISAXSDetector_class_name",SWIG_From_std_string(static_cast< std::string >(IsGISAXSDetector::class_name)));
   SWIG_Python_SetConstant(d, "Instrument_class_name",SWIG_From_std_string(static_cast< std::string >(Instrument::class_name)));
   SWIG_Python_SetConstant(d, "IHistogram_INTEGRAL",SWIG_From_int(static_cast< int >(IHistogram::INTEGRAL)));
   SWIG_Python_SetConstant(d, "IHistogram_AVERAGE",SWIG_From_int(static_cast< int >(IHistogram::AVERAGE)));
diff --git a/auto/Wrap/libBornAgainParam.py b/auto/Wrap/libBornAgainParam.py
index ea7f47dda8b164cc1ae60fcf61fef04fb0a751c4..66597bfe10274d4d6d99e426acc151fa3ab9c2c2 100644
--- a/auto/Wrap/libBornAgainParam.py
+++ b/auto/Wrap/libBornAgainParam.py
@@ -2315,7 +2315,6 @@ class INodeVisitor(object):
         visit(INodeVisitor self, InterferenceNone const * arg2)
         visit(INodeVisitor self, InterferenceRadialParaCrystal const * arg2)
         visit(INodeVisitor self, InterferenceTwin const * arg2)
-        visit(INodeVisitor self, IsGISAXSDetector const * arg2)
         visit(INodeVisitor self, Layer const * arg2)
         visit(INodeVisitor self, LayerInterface const * arg2)
         visit(INodeVisitor self, LayerRoughness const * arg2)
diff --git a/auto/Wrap/libBornAgainParam_wrap.cpp b/auto/Wrap/libBornAgainParam_wrap.cpp
index 7cb70e7af0a378a8ec6e3a10a56d0a79543af9ce..a515b2c1a34d9bb130bc903f18b6dfcf65a2ba42 100644
--- a/auto/Wrap/libBornAgainParam_wrap.cpp
+++ b/auto/Wrap/libBornAgainParam_wrap.cpp
@@ -3198,88 +3198,87 @@ namespace Swig {
 #define SWIGTYPE_p_InterferenceNone swig_types[98]
 #define SWIGTYPE_p_InterferenceRadialParaCrystal swig_types[99]
 #define SWIGTYPE_p_InterferenceTwin swig_types[100]
-#define SWIGTYPE_p_IsGISAXSDetector swig_types[101]
-#define SWIGTYPE_p_Layer swig_types[102]
-#define SWIGTYPE_p_LayerInterface swig_types[103]
-#define SWIGTYPE_p_LayerRoughness swig_types[104]
-#define SWIGTYPE_p_MesoCrystal swig_types[105]
-#define SWIGTYPE_p_MultiLayer swig_types[106]
-#define SWIGTYPE_p_NodeMeta swig_types[107]
-#define SWIGTYPE_p_OffSpecularSimulation swig_types[108]
-#define SWIGTYPE_p_ParaMeta swig_types[109]
-#define SWIGTYPE_p_ParameterDistribution swig_types[110]
-#define SWIGTYPE_p_ParameterSample swig_types[111]
-#define SWIGTYPE_p_Particle swig_types[112]
-#define SWIGTYPE_p_ParticleComposition swig_types[113]
-#define SWIGTYPE_p_ParticleCoreShell swig_types[114]
-#define SWIGTYPE_p_ParticleLayout swig_types[115]
-#define SWIGTYPE_p_PoissonNoiseBackground swig_types[116]
-#define SWIGTYPE_p_RangedDistributionCosine swig_types[117]
-#define SWIGTYPE_p_RangedDistributionGate swig_types[118]
-#define SWIGTYPE_p_RangedDistributionGaussian swig_types[119]
-#define SWIGTYPE_p_RangedDistributionLogNormal swig_types[120]
-#define SWIGTYPE_p_RangedDistributionLorentz swig_types[121]
-#define SWIGTYPE_p_RealLimits swig_types[122]
-#define SWIGTYPE_p_RectangularDetector swig_types[123]
-#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[124]
-#define SWIGTYPE_p_RotationEuler swig_types[125]
-#define SWIGTYPE_p_RotationX swig_types[126]
-#define SWIGTYPE_p_RotationY swig_types[127]
-#define SWIGTYPE_p_RotationZ swig_types[128]
-#define SWIGTYPE_p_SpecularDetector1D swig_types[129]
-#define SWIGTYPE_p_SpecularSimulation swig_types[130]
-#define SWIGTYPE_p_SphericalDetector swig_types[131]
-#define SWIGTYPE_p_SquareLattice2D swig_types[132]
-#define SWIGTYPE_p_allocator_type swig_types[133]
-#define SWIGTYPE_p_char swig_types[134]
-#define SWIGTYPE_p_difference_type swig_types[135]
-#define SWIGTYPE_p_first_type swig_types[136]
-#define SWIGTYPE_p_int swig_types[137]
-#define SWIGTYPE_p_key_type swig_types[138]
-#define SWIGTYPE_p_long_long swig_types[139]
-#define SWIGTYPE_p_mapped_type swig_types[140]
-#define SWIGTYPE_p_p_PyObject swig_types[141]
-#define SWIGTYPE_p_second_type swig_types[142]
-#define SWIGTYPE_p_short swig_types[143]
-#define SWIGTYPE_p_signed_char swig_types[144]
-#define SWIGTYPE_p_size_type swig_types[145]
-#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[146]
-#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[147]
-#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[148]
-#define SWIGTYPE_p_std__allocatorT_double_t swig_types[149]
-#define SWIGTYPE_p_std__allocatorT_int_t swig_types[150]
-#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[151]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[152]
-#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[153]
-#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[154]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[155]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[156]
-#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[157]
-#define SWIGTYPE_p_std__complexT_double_t swig_types[158]
-#define SWIGTYPE_p_std__invalid_argument swig_types[159]
-#define SWIGTYPE_p_std__lessT_std__string_t swig_types[160]
-#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[161]
-#define SWIGTYPE_p_std__pairT_double_double_t swig_types[162]
-#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[163]
-#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[164]
-#define SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t swig_types[165]
-#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[166]
-#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[167]
-#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[168]
-#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[169]
-#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[170]
-#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[171]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[172]
-#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[173]
-#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[174]
-#define SWIGTYPE_p_swig__SwigPyIterator swig_types[175]
-#define SWIGTYPE_p_unsigned_char swig_types[176]
-#define SWIGTYPE_p_unsigned_int swig_types[177]
-#define SWIGTYPE_p_unsigned_long_long swig_types[178]
-#define SWIGTYPE_p_unsigned_short swig_types[179]
-#define SWIGTYPE_p_value_type swig_types[180]
-static swig_type_info *swig_types[182];
-static swig_module_info swig_module = {swig_types, 181, 0, 0, 0, 0};
+#define SWIGTYPE_p_Layer swig_types[101]
+#define SWIGTYPE_p_LayerInterface swig_types[102]
+#define SWIGTYPE_p_LayerRoughness swig_types[103]
+#define SWIGTYPE_p_MesoCrystal swig_types[104]
+#define SWIGTYPE_p_MultiLayer swig_types[105]
+#define SWIGTYPE_p_NodeMeta swig_types[106]
+#define SWIGTYPE_p_OffSpecularSimulation swig_types[107]
+#define SWIGTYPE_p_ParaMeta swig_types[108]
+#define SWIGTYPE_p_ParameterDistribution swig_types[109]
+#define SWIGTYPE_p_ParameterSample swig_types[110]
+#define SWIGTYPE_p_Particle swig_types[111]
+#define SWIGTYPE_p_ParticleComposition swig_types[112]
+#define SWIGTYPE_p_ParticleCoreShell swig_types[113]
+#define SWIGTYPE_p_ParticleLayout swig_types[114]
+#define SWIGTYPE_p_PoissonNoiseBackground swig_types[115]
+#define SWIGTYPE_p_RangedDistributionCosine swig_types[116]
+#define SWIGTYPE_p_RangedDistributionGate swig_types[117]
+#define SWIGTYPE_p_RangedDistributionGaussian swig_types[118]
+#define SWIGTYPE_p_RangedDistributionLogNormal swig_types[119]
+#define SWIGTYPE_p_RangedDistributionLorentz swig_types[120]
+#define SWIGTYPE_p_RealLimits swig_types[121]
+#define SWIGTYPE_p_RectangularDetector swig_types[122]
+#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[123]
+#define SWIGTYPE_p_RotationEuler swig_types[124]
+#define SWIGTYPE_p_RotationX swig_types[125]
+#define SWIGTYPE_p_RotationY swig_types[126]
+#define SWIGTYPE_p_RotationZ swig_types[127]
+#define SWIGTYPE_p_SpecularDetector1D swig_types[128]
+#define SWIGTYPE_p_SpecularSimulation swig_types[129]
+#define SWIGTYPE_p_SphericalDetector swig_types[130]
+#define SWIGTYPE_p_SquareLattice2D swig_types[131]
+#define SWIGTYPE_p_allocator_type swig_types[132]
+#define SWIGTYPE_p_char swig_types[133]
+#define SWIGTYPE_p_difference_type swig_types[134]
+#define SWIGTYPE_p_first_type swig_types[135]
+#define SWIGTYPE_p_int swig_types[136]
+#define SWIGTYPE_p_key_type swig_types[137]
+#define SWIGTYPE_p_long_long swig_types[138]
+#define SWIGTYPE_p_mapped_type swig_types[139]
+#define SWIGTYPE_p_p_PyObject swig_types[140]
+#define SWIGTYPE_p_second_type swig_types[141]
+#define SWIGTYPE_p_short swig_types[142]
+#define SWIGTYPE_p_signed_char swig_types[143]
+#define SWIGTYPE_p_size_type swig_types[144]
+#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[145]
+#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[146]
+#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[147]
+#define SWIGTYPE_p_std__allocatorT_double_t swig_types[148]
+#define SWIGTYPE_p_std__allocatorT_int_t swig_types[149]
+#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[150]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[151]
+#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[152]
+#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[153]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[154]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[155]
+#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[156]
+#define SWIGTYPE_p_std__complexT_double_t swig_types[157]
+#define SWIGTYPE_p_std__invalid_argument swig_types[158]
+#define SWIGTYPE_p_std__lessT_std__string_t swig_types[159]
+#define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[160]
+#define SWIGTYPE_p_std__pairT_double_double_t swig_types[161]
+#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[162]
+#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[163]
+#define SWIGTYPE_p_std__vectorT_ParaMeta_std__allocatorT_ParaMeta_t_t swig_types[164]
+#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[165]
+#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[166]
+#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[167]
+#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[168]
+#define SWIGTYPE_p_std__vectorT_std__pairT_double_double_t_std__allocatorT_std__pairT_double_double_t_t_t swig_types[169]
+#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[170]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t_t swig_types[171]
+#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[172]
+#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[173]
+#define SWIGTYPE_p_swig__SwigPyIterator swig_types[174]
+#define SWIGTYPE_p_unsigned_char swig_types[175]
+#define SWIGTYPE_p_unsigned_int swig_types[176]
+#define SWIGTYPE_p_unsigned_long_long swig_types[177]
+#define SWIGTYPE_p_unsigned_short swig_types[178]
+#define SWIGTYPE_p_value_type swig_types[179]
+static swig_type_info *swig_types[181];
+static swig_module_info swig_module = {swig_types, 180, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -31707,34 +31706,6 @@ fail:
 
 
 SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_97(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
-  PyObject *resultobj = 0;
-  INodeVisitor *arg1 = (INodeVisitor *) 0 ;
-  IsGISAXSDetector *arg2 = (IsGISAXSDetector *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  
-  if ((nobjs < 2) || (nobjs > 2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_INodeVisitor, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "INodeVisitor_visit" "', argument " "1"" of type '" "INodeVisitor *""'"); 
-  }
-  arg1 = reinterpret_cast< INodeVisitor * >(argp1);
-  res2 = SWIG_ConvertPtr(swig_obj[1], &argp2,SWIGTYPE_p_IsGISAXSDetector, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "INodeVisitor_visit" "', argument " "2"" of type '" "IsGISAXSDetector const *""'"); 
-  }
-  arg2 = reinterpret_cast< IsGISAXSDetector * >(argp2);
-  (arg1)->visit((IsGISAXSDetector const *)arg2);
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_98(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   Layer *arg2 = (Layer *) 0 ;
@@ -31762,7 +31733,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_99(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_98(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   LayerInterface *arg2 = (LayerInterface *) 0 ;
@@ -31790,7 +31761,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_100(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_99(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   LayerRoughness *arg2 = (LayerRoughness *) 0 ;
@@ -31818,7 +31789,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_101(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_100(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   MesoCrystal *arg2 = (MesoCrystal *) 0 ;
@@ -31846,7 +31817,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_102(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_101(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   MultiLayer *arg2 = (MultiLayer *) 0 ;
@@ -31874,7 +31845,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_103(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_102(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   OffSpecularSimulation *arg2 = (OffSpecularSimulation *) 0 ;
@@ -31902,7 +31873,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_104(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_103(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   Particle *arg2 = (Particle *) 0 ;
@@ -31930,7 +31901,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_105(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_104(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   ParticleComposition *arg2 = (ParticleComposition *) 0 ;
@@ -31958,7 +31929,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_106(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_105(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   ParticleCoreShell *arg2 = (ParticleCoreShell *) 0 ;
@@ -31986,7 +31957,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_107(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_106(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   ParticleLayout *arg2 = (ParticleLayout *) 0 ;
@@ -32014,7 +31985,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_108(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_107(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   PoissonNoiseBackground *arg2 = (PoissonNoiseBackground *) 0 ;
@@ -32042,7 +32013,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_109(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_108(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   RectangularDetector *arg2 = (RectangularDetector *) 0 ;
@@ -32070,7 +32041,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_110(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_109(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   ResolutionFunction2DGaussian *arg2 = (ResolutionFunction2DGaussian *) 0 ;
@@ -32098,7 +32069,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_111(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_110(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   RotationEuler *arg2 = (RotationEuler *) 0 ;
@@ -32126,7 +32097,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_112(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_111(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   RotationX *arg2 = (RotationX *) 0 ;
@@ -32154,7 +32125,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_113(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_112(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   RotationY *arg2 = (RotationY *) 0 ;
@@ -32182,7 +32153,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_114(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_113(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   RotationZ *arg2 = (RotationZ *) 0 ;
@@ -32210,7 +32181,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_115(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_114(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   SpecularDetector1D *arg2 = (SpecularDetector1D *) 0 ;
@@ -32238,7 +32209,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_116(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_115(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   SpecularSimulation *arg2 = (SpecularSimulation *) 0 ;
@@ -32266,7 +32237,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_117(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_116(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   SphericalDetector *arg2 = (SphericalDetector *) 0 ;
@@ -32294,7 +32265,7 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_118(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
+SWIGINTERN PyObject *_wrap_INodeVisitor_visit__SWIG_117(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) {
   PyObject *resultobj = 0;
   INodeVisitor *arg1 = (INodeVisitor *) 0 ;
   SquareLattice2D *arg2 = (SquareLattice2D *) 0 ;
@@ -33688,20 +33659,6 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       }
     }
   }
-  if (argc == 2) {
-    int _v;
-    void *vptr = 0;
-    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_INodeVisitor, 0);
-    _v = SWIG_CheckState(res);
-    if (_v) {
-      void *vptr = 0;
-      int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_IsGISAXSDetector, 0);
-      _v = SWIG_CheckState(res);
-      if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_97(self, argc, argv);
-      }
-    }
-  }
   if (argc == 2) {
     int _v;
     void *vptr = 0;
@@ -33712,7 +33669,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Layer, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_98(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_97(self, argc, argv);
       }
     }
   }
@@ -33726,7 +33683,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_LayerInterface, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_99(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_98(self, argc, argv);
       }
     }
   }
@@ -33740,7 +33697,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_LayerRoughness, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_100(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_99(self, argc, argv);
       }
     }
   }
@@ -33754,7 +33711,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_MesoCrystal, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_101(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_100(self, argc, argv);
       }
     }
   }
@@ -33768,7 +33725,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_MultiLayer, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_102(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_101(self, argc, argv);
       }
     }
   }
@@ -33782,7 +33739,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_OffSpecularSimulation, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_103(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_102(self, argc, argv);
       }
     }
   }
@@ -33796,7 +33753,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_Particle, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_104(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_103(self, argc, argv);
       }
     }
   }
@@ -33810,7 +33767,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ParticleComposition, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_105(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_104(self, argc, argv);
       }
     }
   }
@@ -33824,7 +33781,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ParticleCoreShell, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_106(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_105(self, argc, argv);
       }
     }
   }
@@ -33838,7 +33795,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ParticleLayout, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_107(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_106(self, argc, argv);
       }
     }
   }
@@ -33852,7 +33809,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_PoissonNoiseBackground, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_108(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_107(self, argc, argv);
       }
     }
   }
@@ -33866,7 +33823,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_RectangularDetector, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_109(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_108(self, argc, argv);
       }
     }
   }
@@ -33880,7 +33837,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_ResolutionFunction2DGaussian, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_110(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_109(self, argc, argv);
       }
     }
   }
@@ -33894,7 +33851,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_RotationEuler, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_111(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_110(self, argc, argv);
       }
     }
   }
@@ -33908,7 +33865,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_RotationX, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_112(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_111(self, argc, argv);
       }
     }
   }
@@ -33922,7 +33879,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_RotationY, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_113(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_112(self, argc, argv);
       }
     }
   }
@@ -33936,7 +33893,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_RotationZ, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_114(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_113(self, argc, argv);
       }
     }
   }
@@ -33950,7 +33907,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SpecularDetector1D, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_115(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_114(self, argc, argv);
       }
     }
   }
@@ -33964,7 +33921,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SpecularSimulation, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_116(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_115(self, argc, argv);
       }
     }
   }
@@ -33978,7 +33935,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SphericalDetector, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_117(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_116(self, argc, argv);
       }
     }
   }
@@ -33992,7 +33949,7 @@ SWIGINTERN PyObject *_wrap_INodeVisitor_visit(PyObject *self, PyObject *args) {
       int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_SquareLattice2D, 0);
       _v = SWIG_CheckState(res);
       if (_v) {
-        return _wrap_INodeVisitor_visit__SWIG_118(self, argc, argv);
+        return _wrap_INodeVisitor_visit__SWIG_117(self, argc, argv);
       }
     }
   }
@@ -34097,7 +34054,6 @@ fail:
     "    INodeVisitor::visit(InterferenceNone const *)\n"
     "    INodeVisitor::visit(InterferenceRadialParaCrystal const *)\n"
     "    INodeVisitor::visit(InterferenceTwin const *)\n"
-    "    INodeVisitor::visit(IsGISAXSDetector const *)\n"
     "    INodeVisitor::visit(Layer const *)\n"
     "    INodeVisitor::visit(LayerInterface const *)\n"
     "    INodeVisitor::visit(LayerRoughness const *)\n"
@@ -42795,7 +42751,6 @@ static PyMethodDef SwigMethods[] = {
 		"INodeVisitor_visit(INodeVisitor self, InterferenceNone const * arg2)\n"
 		"INodeVisitor_visit(INodeVisitor self, InterferenceRadialParaCrystal const * arg2)\n"
 		"INodeVisitor_visit(INodeVisitor self, InterferenceTwin const * arg2)\n"
-		"INodeVisitor_visit(INodeVisitor self, IsGISAXSDetector const * arg2)\n"
 		"INodeVisitor_visit(INodeVisitor self, Layer const * arg2)\n"
 		"INodeVisitor_visit(INodeVisitor self, LayerInterface const * arg2)\n"
 		"INodeVisitor_visit(INodeVisitor self, LayerRoughness const * arg2)\n"
@@ -43762,7 +43717,6 @@ static swig_type_info _swigt__p_InterferenceHardDisk = {"_p_InterferenceHardDisk
 static swig_type_info _swigt__p_InterferenceNone = {"_p_InterferenceNone", "InterferenceNone *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_InterferenceRadialParaCrystal = {"_p_InterferenceRadialParaCrystal", "InterferenceRadialParaCrystal *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_InterferenceTwin = {"_p_InterferenceTwin", "InterferenceTwin *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_IsGISAXSDetector = {"_p_IsGISAXSDetector", "IsGISAXSDetector *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Layer = {"_p_Layer", "Layer *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_LayerInterface = {"_p_LayerInterface", "LayerInterface *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_LayerRoughness = {"_p_LayerRoughness", "LayerRoughness *", 0, 0, (void*)0, 0};
@@ -43945,7 +43899,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_InterferenceNone,
   &_swigt__p_InterferenceRadialParaCrystal,
   &_swigt__p_InterferenceTwin,
-  &_swigt__p_IsGISAXSDetector,
   &_swigt__p_Layer,
   &_swigt__p_LayerInterface,
   &_swigt__p_LayerRoughness,
@@ -44128,7 +44081,6 @@ static swig_cast_info _swigc__p_InterferenceHardDisk[] = {  {&_swigt__p_Interfer
 static swig_cast_info _swigc__p_InterferenceNone[] = {  {&_swigt__p_InterferenceNone, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_InterferenceRadialParaCrystal[] = {  {&_swigt__p_InterferenceRadialParaCrystal, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_InterferenceTwin[] = {  {&_swigt__p_InterferenceTwin, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_IsGISAXSDetector[] = {  {&_swigt__p_IsGISAXSDetector, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Layer[] = {  {&_swigt__p_Layer, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_LayerInterface[] = {  {&_swigt__p_LayerInterface, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_LayerRoughness[] = {  {&_swigt__p_LayerRoughness, 0, 0, 0},{0, 0, 0, 0}};
@@ -44311,7 +44263,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_InterferenceNone,
   _swigc__p_InterferenceRadialParaCrystal,
   _swigc__p_InterferenceTwin,
-  _swigc__p_IsGISAXSDetector,
   _swigc__p_Layer,
   _swigc__p_LayerInterface,
   _swigc__p_LayerRoughness,