diff --git a/Core/Computation/IBackground.h b/Core/Computation/IBackground.h
index 6170127431ea81600ccdd05907d06145419359b9..42489ce6c64525ac96e5e0d35257435afdcb8794 100644
--- a/Core/Computation/IBackground.h
+++ b/Core/Computation/IBackground.h
@@ -25,7 +25,7 @@ class SimulationElement;
 //!
 //! @ingroup algorithms_internal
 
-class IBackground : public ICloneable
+class BA_CORE_API_ IBackground : public ICloneable
 {
 public:
     virtual ~IBackground();
diff --git a/Wrap/swig/libBornAgainCore.i b/Wrap/swig/libBornAgainCore.i
index 2afaa7eb2eb8589887f63bab665f8530a141c7fd..cf5a96890371aa5f9b7611077067bcd9881e8cf8 100644
--- a/Wrap/swig/libBornAgainCore.i
+++ b/Wrap/swig/libBornAgainCore.i
@@ -74,6 +74,7 @@
 #include "Bin.h"
 #include "ChiSquaredModule.h"
 #include "Complex.h"
+#include "ConstantBackground.h"
 #include "ConstKBinAxis.h"
 #include "Crystal.h"
 #include "CustomBinAxis.h"
@@ -135,6 +136,7 @@
 #include "Histogram1D.h"
 #include "Histogram2D.h"
 #include "IAbstractParticle.h"
+#include "IBackground.h"
 #include "ICloneable.h"
 #include "IClusteredParticles.h"
 #include "IDetector2D.h"
@@ -359,6 +361,8 @@
 %include "IHistogram.h"
 %include "Histogram1D.h"
 %include "Histogram2D.h"
+%include "IBackground.h"
+%include "ConstantBackground.h"
 %include "IDetector.h"
 %include "IDetector2D.h"
 %include "IDetectorResolution.h"
diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py
index 10fd1591d8314ca0496de34fb3b774c3756c3f88..bc7eaf939bbff9251d1219b579f58a28d6535ede 100644
--- a/auto/Wrap/libBornAgainCore.py
+++ b/auto/Wrap/libBornAgainCore.py
@@ -16342,7 +16342,7 @@ class Simulation(ICloneable, INode):
 
 
     def setBackGround(self, bg):
-        """setBackGround(Simulation self, IBackground const & bg)"""
+        """setBackGround(Simulation self, IBackground bg)"""
         return _libBornAgainCore.Simulation_setBackGround(self, bg)
 
 
@@ -17804,6 +17804,81 @@ def Histogram2D_dynamicCast(pHistogram):
     """Histogram2D_dynamicCast(IHistogram pHistogram) -> Histogram2D"""
     return _libBornAgainCore.Histogram2D_dynamicCast(pHistogram)
 
+class IBackground(ICloneable):
+    """Proxy of C++ IBackground class."""
+
+    __swig_setmethods__ = {}
+    for _s in [ICloneable]:
+        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
+    __setattr__ = lambda self, name, value: _swig_setattr(self, IBackground, name, value)
+    __swig_getmethods__ = {}
+    for _s in [ICloneable]:
+        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
+    __getattr__ = lambda self, name: _swig_getattr(self, IBackground, name)
+
+    def __init__(self, *args, **kwargs):
+        raise AttributeError("No constructor defined - class is abstract")
+    __repr__ = _swig_repr
+    __swig_destroy__ = _libBornAgainCore.delete_IBackground
+    __del__ = lambda self: None
+
+    def clone(self):
+        """
+        clone(IBackground self) -> IBackground
+
+        virtual ICloneable* ICloneable::clone() const =0
+
+        """
+        return _libBornAgainCore.IBackground_clone(self)
+
+
+    def addBackGround(self, start, end):
+        """addBackGround(IBackground self, std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator start, std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator end)"""
+        return _libBornAgainCore.IBackground_addBackGround(self, start, end)
+
+IBackground_swigregister = _libBornAgainCore.IBackground_swigregister
+IBackground_swigregister(IBackground)
+
+class ConstantBackground(IBackground):
+    """Proxy of C++ ConstantBackground class."""
+
+    __swig_setmethods__ = {}
+    for _s in [IBackground]:
+        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
+    __setattr__ = lambda self, name, value: _swig_setattr(self, ConstantBackground, name, value)
+    __swig_getmethods__ = {}
+    for _s in [IBackground]:
+        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
+    __getattr__ = lambda self, name: _swig_getattr(self, ConstantBackground, name)
+    __repr__ = _swig_repr
+
+    def __init__(self, background_value):
+        """__init__(ConstantBackground self, double background_value) -> ConstantBackground"""
+        this = _libBornAgainCore.new_ConstantBackground(background_value)
+        try:
+            self.this.append(this)
+        except Exception:
+            self.this = this
+    __swig_destroy__ = _libBornAgainCore.delete_ConstantBackground
+    __del__ = lambda self: None
+
+    def clone(self):
+        """
+        clone(ConstantBackground self) -> ConstantBackground
+
+        virtual ICloneable* ICloneable::clone() const =0
+
+        """
+        return _libBornAgainCore.ConstantBackground_clone(self)
+
+
+    def addBackGround(self, start, end):
+        """addBackGround(ConstantBackground self, std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator start, std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator end)"""
+        return _libBornAgainCore.ConstantBackground_addBackGround(self, start, end)
+
+ConstantBackground_swigregister = _libBornAgainCore.ConstantBackground_swigregister
+ConstantBackground_swigregister(ConstantBackground)
+
 class AxesUnits(_object):
     """
 
diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp
index 6f04d7ee108919a7e1ad152fcbcca6fcaad6f700..a45a502596b7e1ef6eae4722160843232c55df09 100644
--- a/auto/Wrap/libBornAgainCore_wrap.cpp
+++ b/auto/Wrap/libBornAgainCore_wrap.cpp
@@ -3470,301 +3470,303 @@ namespace Swig {
 #define SWIGTYPE_p_CallbackMap_t swig_types[13]
 #define SWIGTYPE_p_ChiSquaredModule swig_types[14]
 #define SWIGTYPE_p_ConstKBinAxis swig_types[15]
-#define SWIGTYPE_p_ConvolutionDetectorResolution swig_types[16]
-#define SWIGTYPE_p_CreateItemCallback swig_types[17]
-#define SWIGTYPE_p_Crystal swig_types[18]
-#define SWIGTYPE_p_CustomBinAxis swig_types[19]
-#define SWIGTYPE_p_DescriptionMap_t swig_types[20]
-#define SWIGTYPE_p_DetectionProperties swig_types[21]
-#define SWIGTYPE_p_DetectorMask swig_types[22]
-#define SWIGTYPE_p_DistributionCosine swig_types[23]
-#define SWIGTYPE_p_DistributionGate swig_types[24]
-#define SWIGTYPE_p_DistributionGaussian swig_types[25]
-#define SWIGTYPE_p_DistributionHandler swig_types[26]
-#define SWIGTYPE_p_DistributionLogNormal swig_types[27]
-#define SWIGTYPE_p_DistributionLorentz swig_types[28]
-#define SWIGTYPE_p_DistributionTrapezoid swig_types[29]
-#define SWIGTYPE_p_Ellipse swig_types[30]
-#define SWIGTYPE_p_FTDecayFunction1DCauchy swig_types[31]
-#define SWIGTYPE_p_FTDecayFunction1DGauss swig_types[32]
-#define SWIGTYPE_p_FTDecayFunction1DTriangle swig_types[33]
-#define SWIGTYPE_p_FTDecayFunction1DVoigt swig_types[34]
-#define SWIGTYPE_p_FTDecayFunction2DCauchy swig_types[35]
-#define SWIGTYPE_p_FTDecayFunction2DGauss swig_types[36]
-#define SWIGTYPE_p_FTDecayFunction2DVoigt swig_types[37]
-#define SWIGTYPE_p_FTDistribution1DCauchy swig_types[38]
-#define SWIGTYPE_p_FTDistribution1DCosine swig_types[39]
-#define SWIGTYPE_p_FTDistribution1DGate swig_types[40]
-#define SWIGTYPE_p_FTDistribution1DGauss swig_types[41]
-#define SWIGTYPE_p_FTDistribution1DTriangle swig_types[42]
-#define SWIGTYPE_p_FTDistribution1DVoigt swig_types[43]
-#define SWIGTYPE_p_FTDistribution2DCauchy swig_types[44]
-#define SWIGTYPE_p_FTDistribution2DCone swig_types[45]
-#define SWIGTYPE_p_FTDistribution2DGate swig_types[46]
-#define SWIGTYPE_p_FTDistribution2DGauss swig_types[47]
-#define SWIGTYPE_p_FTDistribution2DVoigt swig_types[48]
-#define SWIGTYPE_p_FitObject swig_types[49]
-#define SWIGTYPE_p_FitObjects_t swig_types[50]
-#define SWIGTYPE_p_FitOptions swig_types[51]
-#define SWIGTYPE_p_FitParameter swig_types[52]
-#define SWIGTYPE_p_FitParameterSet swig_types[53]
-#define SWIGTYPE_p_FitStrategyDefault swig_types[54]
-#define SWIGTYPE_p_FitSuite swig_types[55]
-#define SWIGTYPE_p_FitSuiteImpl swig_types[56]
-#define SWIGTYPE_p_FitSuiteObjects swig_types[57]
-#define SWIGTYPE_p_FitSuiteStrategies swig_types[58]
-#define SWIGTYPE_p_FixedBinAxis swig_types[59]
-#define SWIGTYPE_p_FormFactorAnisoPyramid swig_types[60]
-#define SWIGTYPE_p_FormFactorBox swig_types[61]
-#define SWIGTYPE_p_FormFactorCone swig_types[62]
-#define SWIGTYPE_p_FormFactorCone6 swig_types[63]
-#define SWIGTYPE_p_FormFactorCoreShell swig_types[64]
-#define SWIGTYPE_p_FormFactorCrystal swig_types[65]
-#define SWIGTYPE_p_FormFactorCuboctahedron swig_types[66]
-#define SWIGTYPE_p_FormFactorCylinder swig_types[67]
-#define SWIGTYPE_p_FormFactorDWBA swig_types[68]
-#define SWIGTYPE_p_FormFactorDWBAPol swig_types[69]
-#define SWIGTYPE_p_FormFactorDecoratorDebyeWaller swig_types[70]
-#define SWIGTYPE_p_FormFactorDecoratorMaterial swig_types[71]
-#define SWIGTYPE_p_FormFactorDecoratorPositionFactor swig_types[72]
-#define SWIGTYPE_p_FormFactorDecoratorRotation swig_types[73]
-#define SWIGTYPE_p_FormFactorDodecahedron swig_types[74]
-#define SWIGTYPE_p_FormFactorDot swig_types[75]
-#define SWIGTYPE_p_FormFactorEllipsoidalCylinder swig_types[76]
-#define SWIGTYPE_p_FormFactorFullSphere swig_types[77]
-#define SWIGTYPE_p_FormFactorFullSpheroid swig_types[78]
-#define SWIGTYPE_p_FormFactorGauss swig_types[79]
-#define SWIGTYPE_p_FormFactorHemiEllipsoid swig_types[80]
-#define SWIGTYPE_p_FormFactorIcosahedron swig_types[81]
-#define SWIGTYPE_p_FormFactorLongBoxGauss swig_types[82]
-#define SWIGTYPE_p_FormFactorLongBoxLorentz swig_types[83]
-#define SWIGTYPE_p_FormFactorLongRipple1Gauss swig_types[84]
-#define SWIGTYPE_p_FormFactorLongRipple1Lorentz swig_types[85]
-#define SWIGTYPE_p_FormFactorLongRipple2Gauss swig_types[86]
-#define SWIGTYPE_p_FormFactorLongRipple2Lorentz swig_types[87]
-#define SWIGTYPE_p_FormFactorLorentz swig_types[88]
-#define SWIGTYPE_p_FormFactorPolygonalPrism swig_types[89]
-#define SWIGTYPE_p_FormFactorPolygonalSurface swig_types[90]
-#define SWIGTYPE_p_FormFactorPolyhedron swig_types[91]
-#define SWIGTYPE_p_FormFactorPrism3 swig_types[92]
-#define SWIGTYPE_p_FormFactorPrism6 swig_types[93]
-#define SWIGTYPE_p_FormFactorPyramid swig_types[94]
-#define SWIGTYPE_p_FormFactorRipple1 swig_types[95]
-#define SWIGTYPE_p_FormFactorRipple2 swig_types[96]
-#define SWIGTYPE_p_FormFactorSphereGaussianRadius swig_types[97]
-#define SWIGTYPE_p_FormFactorSphereLogNormalRadius swig_types[98]
-#define SWIGTYPE_p_FormFactorSphereUniformRadius swig_types[99]
-#define SWIGTYPE_p_FormFactorTetrahedron swig_types[100]
-#define SWIGTYPE_p_FormFactorTruncatedCube swig_types[101]
-#define SWIGTYPE_p_FormFactorTruncatedSphere swig_types[102]
-#define SWIGTYPE_p_FormFactorTruncatedSpheroid swig_types[103]
-#define SWIGTYPE_p_FormFactorWeighted swig_types[104]
-#define SWIGTYPE_p_GISASSimulation swig_types[105]
-#define SWIGTYPE_p_HexagonalLattice swig_types[106]
-#define SWIGTYPE_p_Histogram1D swig_types[107]
-#define SWIGTYPE_p_Histogram2D swig_types[108]
-#define SWIGTYPE_p_HorizontalLine swig_types[109]
-#define SWIGTYPE_p_IAbstractParticle swig_types[110]
-#define SWIGTYPE_p_IAxis swig_types[111]
-#define SWIGTYPE_p_IBackground swig_types[112]
-#define SWIGTYPE_p_IChiSquaredModule swig_types[113]
-#define SWIGTYPE_p_ICloneable swig_types[114]
-#define SWIGTYPE_p_IClusteredParticles swig_types[115]
-#define SWIGTYPE_p_IDetector swig_types[116]
-#define SWIGTYPE_p_IDetector2D swig_types[117]
-#define SWIGTYPE_p_IDetectorResolution swig_types[118]
-#define SWIGTYPE_p_IDistribution1D swig_types[119]
-#define SWIGTYPE_p_IFTDecayFunction1D swig_types[120]
-#define SWIGTYPE_p_IFTDecayFunction2D swig_types[121]
-#define SWIGTYPE_p_IFTDistribution1D swig_types[122]
-#define SWIGTYPE_p_IFTDistribution2D swig_types[123]
-#define SWIGTYPE_p_IFactoryT_std__string_GISASSimulation_t swig_types[124]
-#define SWIGTYPE_p_IFactoryT_std__string_IMultiLayerBuilder_t swig_types[125]
-#define SWIGTYPE_p_IFitObserver swig_types[126]
-#define SWIGTYPE_p_IFitParameter swig_types[127]
-#define SWIGTYPE_p_IFitStrategy swig_types[128]
-#define SWIGTYPE_p_IFormFactor swig_types[129]
-#define SWIGTYPE_p_IFormFactorBorn swig_types[130]
-#define SWIGTYPE_p_IFormFactorDecorator swig_types[131]
-#define SWIGTYPE_p_IHistogram swig_types[132]
-#define SWIGTYPE_p_IIntensityFunction swig_types[133]
-#define SWIGTYPE_p_IIntensityNormalizer swig_types[134]
-#define SWIGTYPE_p_IInterferenceFunction swig_types[135]
-#define SWIGTYPE_p_ILayerRTCoefficients swig_types[136]
-#define SWIGTYPE_p_ILayout swig_types[137]
-#define SWIGTYPE_p_IMinimizer swig_types[138]
-#define SWIGTYPE_p_IMultiLayerBuilder swig_types[139]
-#define SWIGTYPE_p_INamed swig_types[140]
-#define SWIGTYPE_p_INode swig_types[141]
-#define SWIGTYPE_p_INodeVisitor swig_types[142]
-#define SWIGTYPE_p_IObservable swig_types[143]
-#define SWIGTYPE_p_IObserver swig_types[144]
-#define SWIGTYPE_p_IParameterT_double_t swig_types[145]
-#define SWIGTYPE_p_IParameterized swig_types[146]
-#define SWIGTYPE_p_IParticle swig_types[147]
-#define SWIGTYPE_p_IPixel swig_types[148]
-#define SWIGTYPE_p_IResolutionFunction2D swig_types[149]
-#define SWIGTYPE_p_IRotation swig_types[150]
-#define SWIGTYPE_p_ISample swig_types[151]
-#define SWIGTYPE_p_ISelectionRule swig_types[152]
-#define SWIGTYPE_p_IShape2D swig_types[153]
-#define SWIGTYPE_p_ISquaredFunction swig_types[154]
-#define SWIGTYPE_p_Instrument swig_types[155]
-#define SWIGTYPE_p_IntensityDataIOFactory swig_types[156]
-#define SWIGTYPE_p_IntensityFunctionLog swig_types[157]
-#define SWIGTYPE_p_IntensityFunctionSqrt swig_types[158]
-#define SWIGTYPE_p_IntensityNormalizer swig_types[159]
-#define SWIGTYPE_p_IntensityScaleAndShiftNormalizer swig_types[160]
-#define SWIGTYPE_p_InterferenceFunction1DLattice swig_types[161]
-#define SWIGTYPE_p_InterferenceFunction2DLattice swig_types[162]
-#define SWIGTYPE_p_InterferenceFunction2DParaCrystal swig_types[163]
-#define SWIGTYPE_p_InterferenceFunctionNone swig_types[164]
-#define SWIGTYPE_p_InterferenceFunctionRadialParaCrystal swig_types[165]
-#define SWIGTYPE_p_IsGISAXSDetector swig_types[166]
-#define SWIGTYPE_p_Lattice swig_types[167]
-#define SWIGTYPE_p_Lattice1DParameters swig_types[168]
-#define SWIGTYPE_p_Lattice2D swig_types[169]
-#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[170]
-#define SWIGTYPE_p_Layer swig_types[171]
-#define SWIGTYPE_p_LayerInterface swig_types[172]
-#define SWIGTYPE_p_LayerRoughness swig_types[173]
-#define SWIGTYPE_p_Line swig_types[174]
-#define SWIGTYPE_p_Material swig_types[175]
-#define SWIGTYPE_p_MesoCrystal swig_types[176]
-#define SWIGTYPE_p_MultiLayer swig_types[177]
-#define SWIGTYPE_p_OffSpecSimulation swig_types[178]
-#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[179]
-#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[180]
-#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[181]
-#define SWIGTYPE_p_OutputDataT_bool_t swig_types[182]
-#define SWIGTYPE_p_OutputDataT_double_t swig_types[183]
-#define SWIGTYPE_p_ParameterDistribution swig_types[184]
-#define SWIGTYPE_p_ParameterPool swig_types[185]
-#define SWIGTYPE_p_ParameterSample swig_types[186]
-#define SWIGTYPE_p_Particle swig_types[187]
-#define SWIGTYPE_p_ParticleComposition swig_types[188]
-#define SWIGTYPE_p_ParticleCoreShell swig_types[189]
-#define SWIGTYPE_p_ParticleDistribution swig_types[190]
-#define SWIGTYPE_p_ParticleLayout swig_types[191]
-#define SWIGTYPE_p_ParticleLimits swig_types[192]
-#define SWIGTYPE_p_Polygon swig_types[193]
-#define SWIGTYPE_p_PolygonPrivate swig_types[194]
-#define SWIGTYPE_p_PolygonalTopology swig_types[195]
-#define SWIGTYPE_p_PolyhedralEdge swig_types[196]
-#define SWIGTYPE_p_PolyhedralFace swig_types[197]
-#define SWIGTYPE_p_PolyhedralTopology swig_types[198]
-#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[199]
-#define SWIGTYPE_p_RealLimits swig_types[200]
-#define SWIGTYPE_p_RealParameter swig_types[201]
-#define SWIGTYPE_p_Rectangle swig_types[202]
-#define SWIGTYPE_p_RectangularDetector swig_types[203]
-#define SWIGTYPE_p_RectangularPixel swig_types[204]
-#define SWIGTYPE_p_RegionOfInterest swig_types[205]
-#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[206]
-#define SWIGTYPE_p_RotationEuler swig_types[207]
-#define SWIGTYPE_p_RotationX swig_types[208]
-#define SWIGTYPE_p_RotationY swig_types[209]
-#define SWIGTYPE_p_RotationZ swig_types[210]
-#define SWIGTYPE_p_SafePointerVectorT_FitObject_t__iterator swig_types[211]
-#define SWIGTYPE_p_SafePointerVectorT_IParticle_const_t swig_types[212]
-#define SWIGTYPE_p_SafePointerVectorT_IParticle_t swig_types[213]
-#define SWIGTYPE_p_SafePointerVectorT_Layer_t swig_types[214]
-#define SWIGTYPE_p_SampleBuilderFactory swig_types[215]
-#define SWIGTYPE_p_SimpleSelectionRule swig_types[216]
-#define SWIGTYPE_p_Simulation swig_types[217]
-#define SWIGTYPE_p_SimulationFactory swig_types[218]
-#define SWIGTYPE_p_SimulationOptions swig_types[219]
-#define SWIGTYPE_p_SlicedParticle swig_types[220]
-#define SWIGTYPE_p_SlicingEffects swig_types[221]
-#define SWIGTYPE_p_SpecularSimulation swig_types[222]
-#define SWIGTYPE_p_SphericalDetector swig_types[223]
-#define SWIGTYPE_p_SphericalPixel swig_types[224]
-#define SWIGTYPE_p_SquareLattice swig_types[225]
-#define SWIGTYPE_p_SquaredFunctionDefault swig_types[226]
-#define SWIGTYPE_p_SquaredFunctionGaussianError swig_types[227]
-#define SWIGTYPE_p_SquaredFunctionMeanSquaredError swig_types[228]
-#define SWIGTYPE_p_SquaredFunctionSimError swig_types[229]
-#define SWIGTYPE_p_SquaredFunctionSystematicError swig_types[230]
-#define SWIGTYPE_p_ThreadInfo swig_types[231]
-#define SWIGTYPE_p_Transform3D swig_types[232]
-#define SWIGTYPE_p_VariableBinAxis swig_types[233]
-#define SWIGTYPE_p_VerticalLine swig_types[234]
-#define SWIGTYPE_p_WavevectorInfo swig_types[235]
-#define SWIGTYPE_p_ZLimits swig_types[236]
-#define SWIGTYPE_p__object swig_types[237]
-#define SWIGTYPE_p_allocator_type swig_types[238]
-#define SWIGTYPE_p_bool swig_types[239]
-#define SWIGTYPE_p_char swig_types[240]
-#define SWIGTYPE_p_const_iterator swig_types[241]
-#define SWIGTYPE_p_const_reference swig_types[242]
-#define SWIGTYPE_p_difference_type swig_types[243]
-#define SWIGTYPE_p_double swig_types[244]
-#define SWIGTYPE_p_int swig_types[245]
-#define SWIGTYPE_p_iterator swig_types[246]
-#define SWIGTYPE_p_long_long swig_types[247]
-#define SWIGTYPE_p_observer_t swig_types[248]
-#define SWIGTYPE_p_observerlist_t swig_types[249]
-#define SWIGTYPE_p_p__object swig_types[250]
-#define SWIGTYPE_p_reference swig_types[251]
-#define SWIGTYPE_p_short swig_types[252]
-#define SWIGTYPE_p_signed_char swig_types[253]
-#define SWIGTYPE_p_size_type swig_types[254]
-#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[255]
-#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[256]
-#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[257]
-#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[258]
-#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[259]
-#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[260]
-#define SWIGTYPE_p_std__allocatorT_double_t swig_types[261]
-#define SWIGTYPE_p_std__allocatorT_int_t swig_types[262]
-#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[263]
-#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[264]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[265]
-#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[266]
-#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[267]
-#define SWIGTYPE_p_std__complexT_double_t swig_types[268]
-#define SWIGTYPE_p_std__functionT_GISASSimulation_pfF_t swig_types[269]
-#define SWIGTYPE_p_std__functionT_IMultiLayerBuilder_pfF_t swig_types[270]
-#define SWIGTYPE_p_std__functionT_void_fF_t swig_types[271]
-#define SWIGTYPE_p_std__invalid_argument swig_types[272]
-#define SWIGTYPE_p_std__mapT_std__string_std__string_t__const_iterator swig_types[273]
-#define SWIGTYPE_p_std__shared_ptrT_IFitObserver_t swig_types[274]
-#define SWIGTYPE_p_std__shared_ptrT_IMultiLayerBuilder_t swig_types[275]
-#define SWIGTYPE_p_std__shared_ptrT_IObserver_t swig_types[276]
-#define SWIGTYPE_p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t swig_types[277]
-#define SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t swig_types[278]
-#define SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t swig_types[279]
-#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t swig_types[280]
-#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t__const_iterator swig_types[281]
-#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t__iterator swig_types[282]
-#define SWIGTYPE_p_std__vectorT_HomogeneousRegion_std__allocatorT_HomogeneousRegion_t_t swig_types[283]
-#define SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t swig_types[284]
-#define SWIGTYPE_p_std__vectorT_ILayout_const_p_std__allocatorT_ILayout_const_p_t_t swig_types[285]
-#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[286]
-#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[287]
-#define SWIGTYPE_p_std__vectorT_IParticle_const_p_std__allocatorT_IParticle_const_p_t_t swig_types[288]
-#define SWIGTYPE_p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t swig_types[289]
-#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[290]
-#define SWIGTYPE_p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t swig_types[291]
-#define SWIGTYPE_p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t swig_types[292]
-#define SWIGTYPE_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t swig_types[293]
-#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[294]
-#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[295]
-#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[296]
-#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[297]
-#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[298]
-#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[299]
-#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[300]
-#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[301]
-#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[302]
-#define SWIGTYPE_p_swig__SwigPyIterator swig_types[303]
-#define SWIGTYPE_p_unsigned_char swig_types[304]
-#define SWIGTYPE_p_unsigned_int swig_types[305]
-#define SWIGTYPE_p_unsigned_long_long swig_types[306]
-#define SWIGTYPE_p_unsigned_short swig_types[307]
-#define SWIGTYPE_p_value_type swig_types[308]
-static swig_type_info *swig_types[310];
-static swig_module_info swig_module = {swig_types, 309, 0, 0, 0, 0};
+#define SWIGTYPE_p_ConstantBackground swig_types[16]
+#define SWIGTYPE_p_ConvolutionDetectorResolution swig_types[17]
+#define SWIGTYPE_p_CreateItemCallback swig_types[18]
+#define SWIGTYPE_p_Crystal swig_types[19]
+#define SWIGTYPE_p_CustomBinAxis swig_types[20]
+#define SWIGTYPE_p_DescriptionMap_t swig_types[21]
+#define SWIGTYPE_p_DetectionProperties swig_types[22]
+#define SWIGTYPE_p_DetectorMask swig_types[23]
+#define SWIGTYPE_p_DistributionCosine swig_types[24]
+#define SWIGTYPE_p_DistributionGate swig_types[25]
+#define SWIGTYPE_p_DistributionGaussian swig_types[26]
+#define SWIGTYPE_p_DistributionHandler swig_types[27]
+#define SWIGTYPE_p_DistributionLogNormal swig_types[28]
+#define SWIGTYPE_p_DistributionLorentz swig_types[29]
+#define SWIGTYPE_p_DistributionTrapezoid swig_types[30]
+#define SWIGTYPE_p_Ellipse swig_types[31]
+#define SWIGTYPE_p_FTDecayFunction1DCauchy swig_types[32]
+#define SWIGTYPE_p_FTDecayFunction1DGauss swig_types[33]
+#define SWIGTYPE_p_FTDecayFunction1DTriangle swig_types[34]
+#define SWIGTYPE_p_FTDecayFunction1DVoigt swig_types[35]
+#define SWIGTYPE_p_FTDecayFunction2DCauchy swig_types[36]
+#define SWIGTYPE_p_FTDecayFunction2DGauss swig_types[37]
+#define SWIGTYPE_p_FTDecayFunction2DVoigt swig_types[38]
+#define SWIGTYPE_p_FTDistribution1DCauchy swig_types[39]
+#define SWIGTYPE_p_FTDistribution1DCosine swig_types[40]
+#define SWIGTYPE_p_FTDistribution1DGate swig_types[41]
+#define SWIGTYPE_p_FTDistribution1DGauss swig_types[42]
+#define SWIGTYPE_p_FTDistribution1DTriangle swig_types[43]
+#define SWIGTYPE_p_FTDistribution1DVoigt swig_types[44]
+#define SWIGTYPE_p_FTDistribution2DCauchy swig_types[45]
+#define SWIGTYPE_p_FTDistribution2DCone swig_types[46]
+#define SWIGTYPE_p_FTDistribution2DGate swig_types[47]
+#define SWIGTYPE_p_FTDistribution2DGauss swig_types[48]
+#define SWIGTYPE_p_FTDistribution2DVoigt swig_types[49]
+#define SWIGTYPE_p_FitObject swig_types[50]
+#define SWIGTYPE_p_FitObjects_t swig_types[51]
+#define SWIGTYPE_p_FitOptions swig_types[52]
+#define SWIGTYPE_p_FitParameter swig_types[53]
+#define SWIGTYPE_p_FitParameterSet swig_types[54]
+#define SWIGTYPE_p_FitStrategyDefault swig_types[55]
+#define SWIGTYPE_p_FitSuite swig_types[56]
+#define SWIGTYPE_p_FitSuiteImpl swig_types[57]
+#define SWIGTYPE_p_FitSuiteObjects swig_types[58]
+#define SWIGTYPE_p_FitSuiteStrategies swig_types[59]
+#define SWIGTYPE_p_FixedBinAxis swig_types[60]
+#define SWIGTYPE_p_FormFactorAnisoPyramid swig_types[61]
+#define SWIGTYPE_p_FormFactorBox swig_types[62]
+#define SWIGTYPE_p_FormFactorCone swig_types[63]
+#define SWIGTYPE_p_FormFactorCone6 swig_types[64]
+#define SWIGTYPE_p_FormFactorCoreShell swig_types[65]
+#define SWIGTYPE_p_FormFactorCrystal swig_types[66]
+#define SWIGTYPE_p_FormFactorCuboctahedron swig_types[67]
+#define SWIGTYPE_p_FormFactorCylinder swig_types[68]
+#define SWIGTYPE_p_FormFactorDWBA swig_types[69]
+#define SWIGTYPE_p_FormFactorDWBAPol swig_types[70]
+#define SWIGTYPE_p_FormFactorDecoratorDebyeWaller swig_types[71]
+#define SWIGTYPE_p_FormFactorDecoratorMaterial swig_types[72]
+#define SWIGTYPE_p_FormFactorDecoratorPositionFactor swig_types[73]
+#define SWIGTYPE_p_FormFactorDecoratorRotation swig_types[74]
+#define SWIGTYPE_p_FormFactorDodecahedron swig_types[75]
+#define SWIGTYPE_p_FormFactorDot swig_types[76]
+#define SWIGTYPE_p_FormFactorEllipsoidalCylinder swig_types[77]
+#define SWIGTYPE_p_FormFactorFullSphere swig_types[78]
+#define SWIGTYPE_p_FormFactorFullSpheroid swig_types[79]
+#define SWIGTYPE_p_FormFactorGauss swig_types[80]
+#define SWIGTYPE_p_FormFactorHemiEllipsoid swig_types[81]
+#define SWIGTYPE_p_FormFactorIcosahedron swig_types[82]
+#define SWIGTYPE_p_FormFactorLongBoxGauss swig_types[83]
+#define SWIGTYPE_p_FormFactorLongBoxLorentz swig_types[84]
+#define SWIGTYPE_p_FormFactorLongRipple1Gauss swig_types[85]
+#define SWIGTYPE_p_FormFactorLongRipple1Lorentz swig_types[86]
+#define SWIGTYPE_p_FormFactorLongRipple2Gauss swig_types[87]
+#define SWIGTYPE_p_FormFactorLongRipple2Lorentz swig_types[88]
+#define SWIGTYPE_p_FormFactorLorentz swig_types[89]
+#define SWIGTYPE_p_FormFactorPolygonalPrism swig_types[90]
+#define SWIGTYPE_p_FormFactorPolygonalSurface swig_types[91]
+#define SWIGTYPE_p_FormFactorPolyhedron swig_types[92]
+#define SWIGTYPE_p_FormFactorPrism3 swig_types[93]
+#define SWIGTYPE_p_FormFactorPrism6 swig_types[94]
+#define SWIGTYPE_p_FormFactorPyramid swig_types[95]
+#define SWIGTYPE_p_FormFactorRipple1 swig_types[96]
+#define SWIGTYPE_p_FormFactorRipple2 swig_types[97]
+#define SWIGTYPE_p_FormFactorSphereGaussianRadius swig_types[98]
+#define SWIGTYPE_p_FormFactorSphereLogNormalRadius swig_types[99]
+#define SWIGTYPE_p_FormFactorSphereUniformRadius swig_types[100]
+#define SWIGTYPE_p_FormFactorTetrahedron swig_types[101]
+#define SWIGTYPE_p_FormFactorTruncatedCube swig_types[102]
+#define SWIGTYPE_p_FormFactorTruncatedSphere swig_types[103]
+#define SWIGTYPE_p_FormFactorTruncatedSpheroid swig_types[104]
+#define SWIGTYPE_p_FormFactorWeighted swig_types[105]
+#define SWIGTYPE_p_GISASSimulation swig_types[106]
+#define SWIGTYPE_p_HexagonalLattice swig_types[107]
+#define SWIGTYPE_p_Histogram1D swig_types[108]
+#define SWIGTYPE_p_Histogram2D swig_types[109]
+#define SWIGTYPE_p_HorizontalLine swig_types[110]
+#define SWIGTYPE_p_IAbstractParticle swig_types[111]
+#define SWIGTYPE_p_IAxis swig_types[112]
+#define SWIGTYPE_p_IBackground swig_types[113]
+#define SWIGTYPE_p_IChiSquaredModule swig_types[114]
+#define SWIGTYPE_p_ICloneable swig_types[115]
+#define SWIGTYPE_p_IClusteredParticles swig_types[116]
+#define SWIGTYPE_p_IDetector swig_types[117]
+#define SWIGTYPE_p_IDetector2D swig_types[118]
+#define SWIGTYPE_p_IDetectorResolution swig_types[119]
+#define SWIGTYPE_p_IDistribution1D swig_types[120]
+#define SWIGTYPE_p_IFTDecayFunction1D swig_types[121]
+#define SWIGTYPE_p_IFTDecayFunction2D swig_types[122]
+#define SWIGTYPE_p_IFTDistribution1D swig_types[123]
+#define SWIGTYPE_p_IFTDistribution2D swig_types[124]
+#define SWIGTYPE_p_IFactoryT_std__string_GISASSimulation_t swig_types[125]
+#define SWIGTYPE_p_IFactoryT_std__string_IMultiLayerBuilder_t swig_types[126]
+#define SWIGTYPE_p_IFitObserver swig_types[127]
+#define SWIGTYPE_p_IFitParameter swig_types[128]
+#define SWIGTYPE_p_IFitStrategy swig_types[129]
+#define SWIGTYPE_p_IFormFactor swig_types[130]
+#define SWIGTYPE_p_IFormFactorBorn swig_types[131]
+#define SWIGTYPE_p_IFormFactorDecorator swig_types[132]
+#define SWIGTYPE_p_IHistogram swig_types[133]
+#define SWIGTYPE_p_IIntensityFunction swig_types[134]
+#define SWIGTYPE_p_IIntensityNormalizer swig_types[135]
+#define SWIGTYPE_p_IInterferenceFunction swig_types[136]
+#define SWIGTYPE_p_ILayerRTCoefficients swig_types[137]
+#define SWIGTYPE_p_ILayout swig_types[138]
+#define SWIGTYPE_p_IMinimizer swig_types[139]
+#define SWIGTYPE_p_IMultiLayerBuilder swig_types[140]
+#define SWIGTYPE_p_INamed swig_types[141]
+#define SWIGTYPE_p_INode swig_types[142]
+#define SWIGTYPE_p_INodeVisitor swig_types[143]
+#define SWIGTYPE_p_IObservable swig_types[144]
+#define SWIGTYPE_p_IObserver swig_types[145]
+#define SWIGTYPE_p_IParameterT_double_t swig_types[146]
+#define SWIGTYPE_p_IParameterized swig_types[147]
+#define SWIGTYPE_p_IParticle swig_types[148]
+#define SWIGTYPE_p_IPixel swig_types[149]
+#define SWIGTYPE_p_IResolutionFunction2D swig_types[150]
+#define SWIGTYPE_p_IRotation swig_types[151]
+#define SWIGTYPE_p_ISample swig_types[152]
+#define SWIGTYPE_p_ISelectionRule swig_types[153]
+#define SWIGTYPE_p_IShape2D swig_types[154]
+#define SWIGTYPE_p_ISquaredFunction swig_types[155]
+#define SWIGTYPE_p_Instrument swig_types[156]
+#define SWIGTYPE_p_IntensityDataIOFactory swig_types[157]
+#define SWIGTYPE_p_IntensityFunctionLog swig_types[158]
+#define SWIGTYPE_p_IntensityFunctionSqrt swig_types[159]
+#define SWIGTYPE_p_IntensityNormalizer swig_types[160]
+#define SWIGTYPE_p_IntensityScaleAndShiftNormalizer swig_types[161]
+#define SWIGTYPE_p_InterferenceFunction1DLattice swig_types[162]
+#define SWIGTYPE_p_InterferenceFunction2DLattice swig_types[163]
+#define SWIGTYPE_p_InterferenceFunction2DParaCrystal swig_types[164]
+#define SWIGTYPE_p_InterferenceFunctionNone swig_types[165]
+#define SWIGTYPE_p_InterferenceFunctionRadialParaCrystal swig_types[166]
+#define SWIGTYPE_p_IsGISAXSDetector swig_types[167]
+#define SWIGTYPE_p_Lattice swig_types[168]
+#define SWIGTYPE_p_Lattice1DParameters swig_types[169]
+#define SWIGTYPE_p_Lattice2D swig_types[170]
+#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[171]
+#define SWIGTYPE_p_Layer swig_types[172]
+#define SWIGTYPE_p_LayerInterface swig_types[173]
+#define SWIGTYPE_p_LayerRoughness swig_types[174]
+#define SWIGTYPE_p_Line swig_types[175]
+#define SWIGTYPE_p_Material swig_types[176]
+#define SWIGTYPE_p_MesoCrystal swig_types[177]
+#define SWIGTYPE_p_MultiLayer swig_types[178]
+#define SWIGTYPE_p_OffSpecSimulation swig_types[179]
+#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[180]
+#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[181]
+#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[182]
+#define SWIGTYPE_p_OutputDataT_bool_t swig_types[183]
+#define SWIGTYPE_p_OutputDataT_double_t swig_types[184]
+#define SWIGTYPE_p_ParameterDistribution swig_types[185]
+#define SWIGTYPE_p_ParameterPool swig_types[186]
+#define SWIGTYPE_p_ParameterSample swig_types[187]
+#define SWIGTYPE_p_Particle swig_types[188]
+#define SWIGTYPE_p_ParticleComposition swig_types[189]
+#define SWIGTYPE_p_ParticleCoreShell swig_types[190]
+#define SWIGTYPE_p_ParticleDistribution swig_types[191]
+#define SWIGTYPE_p_ParticleLayout swig_types[192]
+#define SWIGTYPE_p_ParticleLimits swig_types[193]
+#define SWIGTYPE_p_Polygon swig_types[194]
+#define SWIGTYPE_p_PolygonPrivate swig_types[195]
+#define SWIGTYPE_p_PolygonalTopology swig_types[196]
+#define SWIGTYPE_p_PolyhedralEdge swig_types[197]
+#define SWIGTYPE_p_PolyhedralFace swig_types[198]
+#define SWIGTYPE_p_PolyhedralTopology swig_types[199]
+#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[200]
+#define SWIGTYPE_p_RealLimits swig_types[201]
+#define SWIGTYPE_p_RealParameter swig_types[202]
+#define SWIGTYPE_p_Rectangle swig_types[203]
+#define SWIGTYPE_p_RectangularDetector swig_types[204]
+#define SWIGTYPE_p_RectangularPixel swig_types[205]
+#define SWIGTYPE_p_RegionOfInterest swig_types[206]
+#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[207]
+#define SWIGTYPE_p_RotationEuler swig_types[208]
+#define SWIGTYPE_p_RotationX swig_types[209]
+#define SWIGTYPE_p_RotationY swig_types[210]
+#define SWIGTYPE_p_RotationZ swig_types[211]
+#define SWIGTYPE_p_SafePointerVectorT_FitObject_t__iterator swig_types[212]
+#define SWIGTYPE_p_SafePointerVectorT_IParticle_const_t swig_types[213]
+#define SWIGTYPE_p_SafePointerVectorT_IParticle_t swig_types[214]
+#define SWIGTYPE_p_SafePointerVectorT_Layer_t swig_types[215]
+#define SWIGTYPE_p_SampleBuilderFactory swig_types[216]
+#define SWIGTYPE_p_SimpleSelectionRule swig_types[217]
+#define SWIGTYPE_p_Simulation swig_types[218]
+#define SWIGTYPE_p_SimulationFactory swig_types[219]
+#define SWIGTYPE_p_SimulationOptions swig_types[220]
+#define SWIGTYPE_p_SlicedParticle swig_types[221]
+#define SWIGTYPE_p_SlicingEffects swig_types[222]
+#define SWIGTYPE_p_SpecularSimulation swig_types[223]
+#define SWIGTYPE_p_SphericalDetector swig_types[224]
+#define SWIGTYPE_p_SphericalPixel swig_types[225]
+#define SWIGTYPE_p_SquareLattice swig_types[226]
+#define SWIGTYPE_p_SquaredFunctionDefault swig_types[227]
+#define SWIGTYPE_p_SquaredFunctionGaussianError swig_types[228]
+#define SWIGTYPE_p_SquaredFunctionMeanSquaredError swig_types[229]
+#define SWIGTYPE_p_SquaredFunctionSimError swig_types[230]
+#define SWIGTYPE_p_SquaredFunctionSystematicError swig_types[231]
+#define SWIGTYPE_p_ThreadInfo swig_types[232]
+#define SWIGTYPE_p_Transform3D swig_types[233]
+#define SWIGTYPE_p_VariableBinAxis swig_types[234]
+#define SWIGTYPE_p_VerticalLine swig_types[235]
+#define SWIGTYPE_p_WavevectorInfo swig_types[236]
+#define SWIGTYPE_p_ZLimits swig_types[237]
+#define SWIGTYPE_p__object swig_types[238]
+#define SWIGTYPE_p_allocator_type swig_types[239]
+#define SWIGTYPE_p_bool swig_types[240]
+#define SWIGTYPE_p_char swig_types[241]
+#define SWIGTYPE_p_const_iterator swig_types[242]
+#define SWIGTYPE_p_const_reference swig_types[243]
+#define SWIGTYPE_p_difference_type swig_types[244]
+#define SWIGTYPE_p_double swig_types[245]
+#define SWIGTYPE_p_int swig_types[246]
+#define SWIGTYPE_p_iterator swig_types[247]
+#define SWIGTYPE_p_long_long swig_types[248]
+#define SWIGTYPE_p_observer_t swig_types[249]
+#define SWIGTYPE_p_observerlist_t swig_types[250]
+#define SWIGTYPE_p_p__object swig_types[251]
+#define SWIGTYPE_p_reference swig_types[252]
+#define SWIGTYPE_p_short swig_types[253]
+#define SWIGTYPE_p_signed_char swig_types[254]
+#define SWIGTYPE_p_size_type swig_types[255]
+#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[256]
+#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[257]
+#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[258]
+#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[259]
+#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[260]
+#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[261]
+#define SWIGTYPE_p_std__allocatorT_double_t swig_types[262]
+#define SWIGTYPE_p_std__allocatorT_int_t swig_types[263]
+#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[264]
+#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[265]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[266]
+#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[267]
+#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[268]
+#define SWIGTYPE_p_std__complexT_double_t swig_types[269]
+#define SWIGTYPE_p_std__functionT_GISASSimulation_pfF_t swig_types[270]
+#define SWIGTYPE_p_std__functionT_IMultiLayerBuilder_pfF_t swig_types[271]
+#define SWIGTYPE_p_std__functionT_void_fF_t swig_types[272]
+#define SWIGTYPE_p_std__invalid_argument swig_types[273]
+#define SWIGTYPE_p_std__mapT_std__string_std__string_t__const_iterator swig_types[274]
+#define SWIGTYPE_p_std__shared_ptrT_IFitObserver_t swig_types[275]
+#define SWIGTYPE_p_std__shared_ptrT_IMultiLayerBuilder_t swig_types[276]
+#define SWIGTYPE_p_std__shared_ptrT_IObserver_t swig_types[277]
+#define SWIGTYPE_p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t swig_types[278]
+#define SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t swig_types[279]
+#define SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t swig_types[280]
+#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t swig_types[281]
+#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t__const_iterator swig_types[282]
+#define SWIGTYPE_p_std__vectorT_FitElement_std__allocatorT_FitElement_t_t__iterator swig_types[283]
+#define SWIGTYPE_p_std__vectorT_HomogeneousRegion_std__allocatorT_HomogeneousRegion_t_t swig_types[284]
+#define SWIGTYPE_p_std__vectorT_IFormFactor_p_std__allocatorT_IFormFactor_p_t_t swig_types[285]
+#define SWIGTYPE_p_std__vectorT_ILayout_const_p_std__allocatorT_ILayout_const_p_t_t swig_types[286]
+#define SWIGTYPE_p_std__vectorT_INode_const_p_std__allocatorT_INode_const_p_t_t swig_types[287]
+#define SWIGTYPE_p_std__vectorT_INode_p_std__allocatorT_INode_p_t_t swig_types[288]
+#define SWIGTYPE_p_std__vectorT_IParticle_const_p_std__allocatorT_IParticle_const_p_t_t swig_types[289]
+#define SWIGTYPE_p_std__vectorT_Material_const_p_std__allocatorT_Material_const_p_t_t swig_types[290]
+#define SWIGTYPE_p_std__vectorT_ParameterSample_std__allocatorT_ParameterSample_t_t swig_types[291]
+#define SWIGTYPE_p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t swig_types[292]
+#define SWIGTYPE_p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t swig_types[293]
+#define SWIGTYPE_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t swig_types[294]
+#define SWIGTYPE_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t__iterator swig_types[295]
+#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[296]
+#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[297]
+#define SWIGTYPE_p_std__vectorT_size_t_std__allocatorT_size_t_t_t swig_types[298]
+#define SWIGTYPE_p_std__vectorT_std__complexT_double_t_std__allocatorT_std__complexT_double_t_t_t swig_types[299]
+#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[300]
+#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[301]
+#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[302]
+#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[303]
+#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[304]
+#define SWIGTYPE_p_swig__SwigPyIterator swig_types[305]
+#define SWIGTYPE_p_unsigned_char swig_types[306]
+#define SWIGTYPE_p_unsigned_int swig_types[307]
+#define SWIGTYPE_p_unsigned_long_long swig_types[308]
+#define SWIGTYPE_p_unsigned_short swig_types[309]
+#define SWIGTYPE_p_value_type swig_types[310]
+static swig_type_info *swig_types[312];
+static swig_module_info swig_module = {swig_types, 311, 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)
 
@@ -6456,6 +6458,7 @@ SWIGINTERN void std_vector_Sl_std_string_Sg__insert__SWIG_1(std::vector< std::st
 #include "Bin.h"
 #include "ChiSquaredModule.h"
 #include "Complex.h"
+#include "ConstantBackground.h"
 #include "ConstKBinAxis.h"
 #include "Crystal.h"
 #include "CustomBinAxis.h"
@@ -6517,6 +6520,7 @@ SWIGINTERN void std_vector_Sl_std_string_Sg__insert__SWIG_1(std::vector< std::st
 #include "Histogram1D.h"
 #include "Histogram2D.h"
 #include "IAbstractParticle.h"
+#include "IBackground.h"
 #include "ICloneable.h"
 #include "IClusteredParticles.h"
 #include "IDetector2D.h"
@@ -81800,6 +81804,238 @@ SWIGINTERN PyObject *Histogram2D_swigregister(PyObject *SWIGUNUSEDPARM(self), Py
   return SWIG_Py_Void();
 }
 
+SWIGINTERN PyObject *_wrap_delete_IBackground(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  IBackground *arg1 = (IBackground *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_IBackground",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IBackground, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IBackground" "', argument " "1"" of type '" "IBackground *""'"); 
+  }
+  arg1 = reinterpret_cast< IBackground * >(argp1);
+  delete arg1;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_IBackground_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  IBackground *arg1 = (IBackground *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  IBackground *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:IBackground_clone",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IBackground, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IBackground_clone" "', argument " "1"" of type '" "IBackground const *""'"); 
+  }
+  arg1 = reinterpret_cast< IBackground * >(argp1);
+  result = (IBackground *)((IBackground const *)arg1)->clone();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IBackground, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_IBackground_addBackGround(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  IBackground *arg1 = (IBackground *) 0 ;
+  SwigValueWrapper< std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator > arg2 ;
+  SwigValueWrapper< std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator > arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:IBackground_addBackGround",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IBackground, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IBackground_addBackGround" "', argument " "1"" of type '" "IBackground const *""'"); 
+  }
+  arg1 = reinterpret_cast< IBackground * >(argp1);
+  {
+    res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t__iterator,  0  | 0);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IBackground_addBackGround" "', argument " "2"" of type '" "std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator""'"); 
+    }  
+    if (!argp2) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IBackground_addBackGround" "', argument " "2"" of type '" "std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator""'");
+    } else {
+      std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator * temp = reinterpret_cast< std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator * >(argp2);
+      arg2 = *temp;
+      if (SWIG_IsNewObj(res2)) delete temp;
+    }
+  }
+  {
+    res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t__iterator,  0  | 0);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IBackground_addBackGround" "', argument " "3"" of type '" "std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator""'"); 
+    }  
+    if (!argp3) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IBackground_addBackGround" "', argument " "3"" of type '" "std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator""'");
+    } else {
+      std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator * temp = reinterpret_cast< std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator * >(argp3);
+      arg3 = *temp;
+      if (SWIG_IsNewObj(res3)) delete temp;
+    }
+  }
+  ((IBackground const *)arg1)->addBackGround(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *IBackground_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_IBackground, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_new_ConstantBackground(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  double arg1 ;
+  double val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  ConstantBackground *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:new_ConstantBackground",&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_double(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_ConstantBackground" "', argument " "1"" of type '" "double""'");
+  } 
+  arg1 = static_cast< double >(val1);
+  result = (ConstantBackground *)new ConstantBackground(arg1);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ConstantBackground, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ConstantBackground(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  ConstantBackground *arg1 = (ConstantBackground *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_ConstantBackground",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ConstantBackground, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ConstantBackground" "', argument " "1"" of type '" "ConstantBackground *""'"); 
+  }
+  arg1 = reinterpret_cast< ConstantBackground * >(argp1);
+  delete arg1;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ConstantBackground_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  ConstantBackground *arg1 = (ConstantBackground *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  ConstantBackground *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ConstantBackground_clone",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ConstantBackground, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConstantBackground_clone" "', argument " "1"" of type '" "ConstantBackground const *""'"); 
+  }
+  arg1 = reinterpret_cast< ConstantBackground * >(argp1);
+  result = (ConstantBackground *)((ConstantBackground const *)arg1)->clone();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ConstantBackground, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ConstantBackground_addBackGround(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  ConstantBackground *arg1 = (ConstantBackground *) 0 ;
+  SwigValueWrapper< std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator > arg2 ;
+  SwigValueWrapper< std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator > arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:ConstantBackground_addBackGround",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ConstantBackground, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ConstantBackground_addBackGround" "', argument " "1"" of type '" "ConstantBackground const *""'"); 
+  }
+  arg1 = reinterpret_cast< ConstantBackground * >(argp1);
+  {
+    res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t__iterator,  0  | 0);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ConstantBackground_addBackGround" "', argument " "2"" of type '" "std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator""'"); 
+    }  
+    if (!argp2) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConstantBackground_addBackGround" "', argument " "2"" of type '" "std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator""'");
+    } else {
+      std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator * temp = reinterpret_cast< std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator * >(argp2);
+      arg2 = *temp;
+      if (SWIG_IsNewObj(res2)) delete temp;
+    }
+  }
+  {
+    res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t__iterator,  0  | 0);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "ConstantBackground_addBackGround" "', argument " "3"" of type '" "std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator""'"); 
+    }  
+    if (!argp3) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "ConstantBackground_addBackGround" "', argument " "3"" of type '" "std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator""'");
+    } else {
+      std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator * temp = reinterpret_cast< std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator * >(argp3);
+      arg3 = *temp;
+      if (SWIG_IsNewObj(res3)) delete temp;
+    }
+  }
+  ((ConstantBackground const *)arg1)->addBackGround(arg2,arg3);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *ConstantBackground_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_ConstantBackground, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
 SWIGINTERN PyObject *_wrap_delete_AxesUnits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   AxesUnitsWrap *arg1 = (AxesUnitsWrap *) 0 ;
@@ -119252,7 +119488,7 @@ static PyMethodDef SwigMethods[] = {
 		"void Simulation::setSampleBuilder(const std::shared_ptr< IMultiLayerBuilder > sample_builder)\n"
 		"\n"
 		""},
-	 { (char *)"Simulation_setBackGround", _wrap_Simulation_setBackGround, METH_VARARGS, (char *)"Simulation_setBackGround(Simulation self, IBackground const & bg)"},
+	 { (char *)"Simulation_setBackGround", _wrap_Simulation_setBackGround, METH_VARARGS, (char *)"Simulation_setBackGround(Simulation self, IBackground bg)"},
 	 { (char *)"Simulation_numberOfSimulationElements", _wrap_Simulation_numberOfSimulationElements, METH_VARARGS, (char *)"\n"
 		"Simulation_numberOfSimulationElements(Simulation self) -> size_t\n"
 		"\n"
@@ -120145,6 +120381,25 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"Histogram2D_dynamicCast", _wrap_Histogram2D_dynamicCast, METH_VARARGS, (char *)"Histogram2D_dynamicCast(IHistogram pHistogram) -> Histogram2D"},
 	 { (char *)"delete_Histogram2D", _wrap_delete_Histogram2D, METH_VARARGS, (char *)"delete_Histogram2D(Histogram2D self)"},
 	 { (char *)"Histogram2D_swigregister", Histogram2D_swigregister, METH_VARARGS, NULL},
+	 { (char *)"delete_IBackground", _wrap_delete_IBackground, METH_VARARGS, (char *)"delete_IBackground(IBackground self)"},
+	 { (char *)"IBackground_clone", _wrap_IBackground_clone, METH_VARARGS, (char *)"\n"
+		"IBackground_clone(IBackground self) -> IBackground\n"
+		"\n"
+		"virtual ICloneable* ICloneable::clone() const =0\n"
+		"\n"
+		""},
+	 { (char *)"IBackground_addBackGround", _wrap_IBackground_addBackGround, METH_VARARGS, (char *)"IBackground_addBackGround(IBackground self, std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator start, std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator end)"},
+	 { (char *)"IBackground_swigregister", IBackground_swigregister, METH_VARARGS, NULL},
+	 { (char *)"new_ConstantBackground", _wrap_new_ConstantBackground, METH_VARARGS, (char *)"new_ConstantBackground(double background_value) -> ConstantBackground"},
+	 { (char *)"delete_ConstantBackground", _wrap_delete_ConstantBackground, METH_VARARGS, (char *)"delete_ConstantBackground(ConstantBackground self)"},
+	 { (char *)"ConstantBackground_clone", _wrap_ConstantBackground_clone, METH_VARARGS, (char *)"\n"
+		"ConstantBackground_clone(ConstantBackground self) -> ConstantBackground\n"
+		"\n"
+		"virtual ICloneable* ICloneable::clone() const =0\n"
+		"\n"
+		""},
+	 { (char *)"ConstantBackground_addBackGround", _wrap_ConstantBackground_addBackGround, METH_VARARGS, (char *)"ConstantBackground_addBackGround(ConstantBackground self, std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator start, std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator end)"},
+	 { (char *)"ConstantBackground_swigregister", ConstantBackground_swigregister, METH_VARARGS, NULL},
 	 { (char *)"delete_AxesUnits", _wrap_delete_AxesUnits, METH_VARARGS, (char *)"delete_AxesUnits(AxesUnits self)"},
 	 { (char *)"AxesUnits_swigregister", AxesUnits_swigregister, METH_VARARGS, NULL},
 	 { (char *)"IDetector_clone", _wrap_IDetector_clone, METH_VARARGS, (char *)"\n"
@@ -125269,6 +125524,12 @@ static void *_p_FitSuiteTo_p_IObservable(void *x, int *SWIGUNUSEDPARM(newmemory)
 static void *_p_FormFactorBoxTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorBox *) x));
 }
+static void *_p_IBackgroundTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((ICloneable *)  ((IBackground *) x));
+}
+static void *_p_ConstantBackgroundTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((ICloneable *) (IBackground *) ((ConstantBackground *) x));
+}
 static void *_p_FormFactorSphereGaussianRadiusTo_p_ICloneable(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((ICloneable *) (ISample *)(IFormFactor *)(IFormFactorBorn *) ((FormFactorSphereGaussianRadius *) x));
 }
@@ -127195,6 +127456,9 @@ static void *_p_ParticleCoreShellTo_p_IAbstractParticle(void *x, int *SWIGUNUSED
 static void *_p_RealParameterTo_p_IParameterT_double_t(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((IParameter< double > *)  ((RealParameter *) x));
 }
+static void *_p_ConstantBackgroundTo_p_IBackground(void *x, int *SWIGUNUSEDPARM(newmemory)) {
+    return (void *)((IBackground *)  ((ConstantBackground *) x));
+}
 static void *_p_SphericalDetectorTo_p_IDetector2D(void *x, int *SWIGUNUSEDPARM(newmemory)) {
     return (void *)((IDetector2D *)  ((SphericalDetector *) x));
 }
@@ -127322,6 +127586,7 @@ static swig_type_info _swigt__p_Bin1DKVector = {"_p_Bin1DKVector", "Bin1DKVector
 static swig_type_info _swigt__p_CallbackMap_t = {"_p_CallbackMap_t", "CallbackMap_t *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_ChiSquaredModule = {"_p_ChiSquaredModule", "ChiSquaredModule *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_ConstKBinAxis = {"_p_ConstKBinAxis", "ConstKBinAxis *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_ConstantBackground = {"_p_ConstantBackground", "ConstantBackground *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_ConvolutionDetectorResolution = {"_p_ConvolutionDetectorResolution", "ConvolutionDetectorResolution *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_CreateItemCallback = {"_p_CreateItemCallback", "CreateItemCallback *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_Crystal = {"_p_Crystal", "Crystal *", 0, 0, (void*)0, 0};
@@ -127600,6 +127865,7 @@ static swig_type_info _swigt__p_std__vectorT_ParameterSample_std__allocatorT_Par
 static swig_type_info _swigt__p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t = {"_p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t", "std::vector< PolygonalTopology,std::allocator< PolygonalTopology > > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t = {"_p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t", "std::vector< RealParameter *,std::allocator< RealParameter * > > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t = {"_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t", "std::vector< SimulationElement,std::allocator< SimulationElement > > *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t__iterator = {"_p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t__iterator", "std::vector< SimulationElement,std::allocator< SimulationElement > >::iterator *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__vectorT_double_std__allocatorT_double_t_t = {"_p_std__vectorT_double_std__allocatorT_double_t_t", "std::vector< double,std::allocator< double > > *|std::vector< double > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__vectorT_int_std__allocatorT_int_t_t = {"_p_std__vectorT_int_std__allocatorT_int_t_t", "std::vector< int,std::allocator< int > > *|std::vector< int > *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_std__vectorT_size_t_std__allocatorT_size_t_t_t = {"_p_std__vectorT_size_t_std__allocatorT_size_t_t_t", "std::vector< size_t,std::allocator< size_t > > *", 0, 0, (void*)0, 0};
@@ -127633,6 +127899,7 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_CallbackMap_t,
   &_swigt__p_ChiSquaredModule,
   &_swigt__p_ConstKBinAxis,
+  &_swigt__p_ConstantBackground,
   &_swigt__p_ConvolutionDetectorResolution,
   &_swigt__p_CreateItemCallback,
   &_swigt__p_Crystal,
@@ -127911,6 +128178,7 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t,
   &_swigt__p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t,
   &_swigt__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t,
+  &_swigt__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t__iterator,
   &_swigt__p_std__vectorT_double_std__allocatorT_double_t_t,
   &_swigt__p_std__vectorT_int_std__allocatorT_int_t_t,
   &_swigt__p_std__vectorT_size_t_std__allocatorT_size_t_t_t,
@@ -127944,6 +128212,7 @@ static swig_cast_info _swigc__p_Bin1DKVector[] = {  {&_swigt__p_Bin1DKVector, 0,
 static swig_cast_info _swigc__p_CallbackMap_t[] = {  {&_swigt__p_CallbackMap_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ChiSquaredModule[] = {  {&_swigt__p_ChiSquaredModule, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ConstKBinAxis[] = {  {&_swigt__p_ConstKBinAxis, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ConstantBackground[] = {  {&_swigt__p_ConstantBackground, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_ConvolutionDetectorResolution[] = {  {&_swigt__p_ConvolutionDetectorResolution, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_CreateItemCallback[] = {  {&_swigt__p_CreateItemCallback, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_Crystal[] = {  {&_swigt__p_Crystal, 0, 0, 0},{0, 0, 0, 0}};
@@ -128040,9 +128309,9 @@ static swig_cast_info _swigc__p_Histogram2D[] = {  {&_swigt__p_Histogram2D, 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_IAbstractParticle[] = {  {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_IAbstractParticle, 0, 0},  {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_IAbstractParticle, 0, 0},  {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_IAbstractParticle, 0, 0},  {&_swigt__p_IAbstractParticle, 0, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_IAbstractParticle, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_IAbstractParticle, 0, 0},  {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_IAbstractParticle, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IAxis[] = {  {&_swigt__p_IAxis, 0, 0, 0},  {&_swigt__p_VariableBinAxis, _p_VariableBinAxisTo_p_IAxis, 0, 0},  {&_swigt__p_ConstKBinAxis, _p_ConstKBinAxisTo_p_IAxis, 0, 0},  {&_swigt__p_CustomBinAxis, _p_CustomBinAxisTo_p_IAxis, 0, 0},  {&_swigt__p_FixedBinAxis, _p_FixedBinAxisTo_p_IAxis, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_IBackground[] = {  {&_swigt__p_IBackground, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_IBackground[] = {  {&_swigt__p_IBackground, 0, 0, 0},  {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_IBackground, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IChiSquaredModule[] = {  {&_swigt__p_IChiSquaredModule, 0, 0, 0},  {&_swigt__p_ChiSquaredModule, _p_ChiSquaredModuleTo_p_IChiSquaredModule, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_ICloneable[] = {  {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ICloneable, 0, 0},  {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0},  {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_ICloneable, 0, 0},  {&_swigt__p_Polygon, _p_PolygonTo_p_ICloneable, 0, 0},  {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Ellipse, _p_EllipseTo_p_ICloneable, 0, 0},  {&_swigt__p_ILayout, _p_ILayoutTo_p_ICloneable, 0, 0},  {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ICloneable, 0, 0},  {&_swigt__p_IntensityScaleAndShiftNormalizer, _p_IntensityScaleAndShiftNormalizerTo_p_ICloneable, 0, 0},  {&_swigt__p_IntensityNormalizer, _p_IntensityNormalizerTo_p_ICloneable, 0, 0},  {&_swigt__p_IIntensityNormalizer, _p_IIntensityNormalizerTo_p_ICloneable, 0, 0},  {&_swigt__p_ChiSquaredModule, _p_ChiSquaredModuleTo_p_ICloneable, 0, 0},  {&_swigt__p_IChiSquaredModule, _p_IChiSquaredModuleTo_p_ICloneable, 0, 0},  {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_ICloneable, 0, 0},  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_IDetector, _p_IDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ICloneable, 0, 0},  {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ICloneable, 0, 0},  {&_swigt__p_Simulation, _p_SimulationTo_p_ICloneable, 0, 0},  {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_ICloneable, 0, 0},  {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_ICloneable, 0, 0},  {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_ICloneable, 0, 0},  {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ICloneable, 0, 0},  {&_swigt__p_ISample, _p_ISampleTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0},  {&_swigt__p_IShape2D, _p_IShape2DTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0},  {&_swigt__p_Rectangle, _p_RectangleTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_ICloneable, 0, 0},  {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_ICloneable, 0, 0},  {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_ICloneable, 0, 0},  {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_ICloneable, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_ICloneable, 0, 0},  {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_ICloneable, 0, 0},  {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_ICloneable, 0, 0},  {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_ICloneable, 0, 0},  {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_ICloneable, 0, 0},  {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_ICloneable, 0, 0},  {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ICloneable, 0, 0},  {&_swigt__p_Line, _p_LineTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_ICloneable, 0, 0},  {&_swigt__p_ParameterPool, _p_ParameterPoolTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_ICloneable, 0, 0},  {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_ICloneable, 0, 0},  {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_ICloneable, 0, 0},  {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_ICloneable, 0, 0},  {&_swigt__p_ICloneable, 0, 0, 0},  {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_ICloneable[] = {  {&_swigt__p_FormFactorBox, _p_FormFactorBoxTo_p_ICloneable, 0, 0},  {&_swigt__p_IBackground, _p_IBackgroundTo_p_ICloneable, 0, 0},  {&_swigt__p_ConstantBackground, _p_ConstantBackgroundTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorSphereGaussianRadius, _p_FormFactorSphereGaussianRadiusTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorSphereLogNormalRadius, _p_FormFactorSphereLogNormalRadiusTo_p_ICloneable, 0, 0},  {&_swigt__p_MultiLayer, _p_MultiLayerTo_p_ICloneable, 0, 0},  {&_swigt__p_ParticleDistribution, _p_ParticleDistributionTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction1DGauss, _p_FTDecayFunction1DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution1DGauss, _p_FTDistribution1DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFunctionNone, _p_InterferenceFunctionNoneTo_p_ICloneable, 0, 0},  {&_swigt__p_Polygon, _p_PolygonTo_p_ICloneable, 0, 0},  {&_swigt__p_IDetector2D, _p_IDetector2DTo_p_ICloneable, 0, 0},  {&_swigt__p_Ellipse, _p_EllipseTo_p_ICloneable, 0, 0},  {&_swigt__p_ILayout, _p_ILayoutTo_p_ICloneable, 0, 0},  {&_swigt__p_ParticleLayout, _p_ParticleLayoutTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorHemiEllipsoid, _p_FormFactorHemiEllipsoidTo_p_ICloneable, 0, 0},  {&_swigt__p_IntensityScaleAndShiftNormalizer, _p_IntensityScaleAndShiftNormalizerTo_p_ICloneable, 0, 0},  {&_swigt__p_IntensityNormalizer, _p_IntensityNormalizerTo_p_ICloneable, 0, 0},  {&_swigt__p_IIntensityNormalizer, _p_IIntensityNormalizerTo_p_ICloneable, 0, 0},  {&_swigt__p_ChiSquaredModule, _p_ChiSquaredModuleTo_p_ICloneable, 0, 0},  {&_swigt__p_IChiSquaredModule, _p_IChiSquaredModuleTo_p_ICloneable, 0, 0},  {&_swigt__p_HorizontalLine, _p_HorizontalLineTo_p_ICloneable, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_IDetector, _p_IDetectorTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorPrism3, _p_FormFactorPrism3To_p_ICloneable, 0, 0},  {&_swigt__p_DistributionTrapezoid, _p_DistributionTrapezoidTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorIcosahedron, _p_FormFactorIcosahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorDodecahedron, _p_FormFactorDodecahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorCuboctahedron, _p_FormFactorCuboctahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorPolyhedron, _p_FormFactorPolyhedronTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorTetrahedron, _p_FormFactorTetrahedronTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorPrism6, _p_FormFactorPrism6To_p_ICloneable, 0, 0},  {&_swigt__p_Simulation, _p_SimulationTo_p_ICloneable, 0, 0},  {&_swigt__p_GISASSimulation, _p_GISASSimulationTo_p_ICloneable, 0, 0},  {&_swigt__p_OffSpecSimulation, _p_OffSpecSimulationTo_p_ICloneable, 0, 0},  {&_swigt__p_SpecularSimulation, _p_SpecularSimulationTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution2DCone, _p_FTDistribution2DConeTo_p_ICloneable, 0, 0},  {&_swigt__p_ParticleCoreShell, _p_ParticleCoreShellTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorFullSphere, _p_FormFactorFullSphereTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorTruncatedSphere, _p_FormFactorTruncatedSphereTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormFactor, _p_IFormFactorTo_p_ICloneable, 0, 0},  {&_swigt__p_ISample, _p_ISampleTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorPolygonalSurface, _p_FormFactorPolygonalSurfaceTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLongBoxGauss, _p_FormFactorLongBoxGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorPolygonalPrism, _p_FormFactorPolygonalPrismTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution2DGate, _p_FTDistribution2DGateTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionLogNormal, _p_DistributionLogNormalTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution1DVoigt, _p_FTDistribution1DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction1DVoigt, _p_FTDecayFunction1DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_IRotation, _p_IRotationTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorTruncatedSpheroid, _p_FormFactorTruncatedSpheroidTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorFullSpheroid, _p_FormFactorFullSpheroidTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationX, _p_RotationXTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorTruncatedCube, _p_FormFactorTruncatedCubeTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationY, _p_RotationYTo_p_ICloneable, 0, 0},  {&_swigt__p_IShape2D, _p_IShape2DTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction2DGauss, _p_FTDecayFunction2DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution2DGauss, _p_FTDistribution2DGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_RotationZ, _p_RotationZTo_p_ICloneable, 0, 0},  {&_swigt__p_Rectangle, _p_RectangleTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorGauss, _p_FormFactorGaussTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLongRipple2Gauss, _p_FormFactorLongRipple2GaussTo_p_ICloneable, 0, 0},  {&_swigt__p_VerticalLine, _p_VerticalLineTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormFactorBorn, _p_IFormFactorBornTo_p_ICloneable, 0, 0},  {&_swigt__p_IDetectorResolution, _p_IDetectorResolutionTo_p_ICloneable, 0, 0},  {&_swigt__p_IClusteredParticles, _p_IClusteredParticlesTo_p_ICloneable, 0, 0},  {&_swigt__p_Particle, _p_ParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_IParticle, _p_IParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_IAbstractParticle, _p_IAbstractParticleTo_p_ICloneable, 0, 0},  {&_swigt__p_Lattice2D, _p_Lattice2DTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionGate, _p_DistributionGateTo_p_ICloneable, 0, 0},  {&_swigt__p_IDistribution1D, _p_IDistribution1DTo_p_ICloneable, 0, 0},  {&_swigt__p_IFTDecayFunction1D, _p_IFTDecayFunction1DTo_p_ICloneable, 0, 0},  {&_swigt__p_IFTDistribution1D, _p_IFTDistribution1DTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorCone, _p_FormFactorConeTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorRipple1, _p_FormFactorRipple1To_p_ICloneable, 0, 0},  {&_swigt__p_Layer, _p_LayerTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorPyramid, _p_FormFactorPyramidTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorAnisoPyramid, _p_FormFactorAnisoPyramidTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorDecoratorDebyeWaller, _p_FormFactorDecoratorDebyeWallerTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorRipple2, _p_FormFactorRipple2To_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorEllipsoidalCylinder, _p_FormFactorEllipsoidalCylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorCylinder, _p_FormFactorCylinderTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionGaussian, _p_DistributionGaussianTo_p_ICloneable, 0, 0},  {&_swigt__p_ResolutionFunction2DGaussian, _p_ResolutionFunction2DGaussianTo_p_ICloneable, 0, 0},  {&_swigt__p_ParticleComposition, _p_ParticleCompositionTo_p_ICloneable, 0, 0},  {&_swigt__p_Line, _p_LineTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorSphereUniformRadius, _p_FormFactorSphereUniformRadiusTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionCosine, _p_DistributionCosineTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution1DCosine, _p_FTDistribution1DCosineTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution1DGate, _p_FTDistribution1DGateTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution2DVoigt, _p_FTDistribution2DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction2DVoigt, _p_FTDecayFunction2DVoigtTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction1DCauchy, _p_FTDecayFunction1DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution1DCauchy, _p_FTDistribution1DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution2DCauchy, _p_FTDistribution2DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction2DCauchy, _p_FTDecayFunction2DCauchyTo_p_ICloneable, 0, 0},  {&_swigt__p_IInterferenceFunction, _p_IInterferenceFunctionTo_p_ICloneable, 0, 0},  {&_swigt__p_ParameterPool, _p_ParameterPoolTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorCone6, _p_FormFactorCone6To_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLongRipple1Gauss, _p_FormFactorLongRipple1GaussTo_p_ICloneable, 0, 0},  {&_swigt__p_IFormFactorDecorator, _p_IFormFactorDecoratorTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorDot, _p_FormFactorDotTo_p_ICloneable, 0, 0},  {&_swigt__p_LayerRoughness, _p_LayerRoughnessTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorCrystal, _p_FormFactorCrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_MesoCrystal, _p_MesoCrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFunction2DParaCrystal, _p_InterferenceFunction2DParaCrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFunctionRadialParaCrystal, _p_InterferenceFunctionRadialParaCrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_ICloneable, 0, 0},  {&_swigt__p_IFTDecayFunction2D, _p_IFTDecayFunction2DTo_p_ICloneable, 0, 0},  {&_swigt__p_IFTDistribution2D, _p_IFTDistribution2DTo_p_ICloneable, 0, 0},  {&_swigt__p_IResolutionFunction2D, _p_IResolutionFunction2DTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorWeighted, _p_FormFactorWeightedTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLorentz, _p_FormFactorLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLongRipple2Lorentz, _p_FormFactorLongRipple2LorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLongRipple1Lorentz, _p_FormFactorLongRipple1LorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_FormFactorLongBoxLorentz, _p_FormFactorLongBoxLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFunction1DLattice, _p_InterferenceFunction1DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_InterferenceFunction2DLattice, _p_InterferenceFunction2DLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_BasicLattice, _p_BasicLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_SquareLattice, _p_SquareLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_HexagonalLattice, _p_HexagonalLatticeTo_p_ICloneable, 0, 0},  {&_swigt__p_DistributionLorentz, _p_DistributionLorentzTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDecayFunction1DTriangle, _p_FTDecayFunction1DTriangleTo_p_ICloneable, 0, 0},  {&_swigt__p_FTDistribution1DTriangle, _p_FTDistribution1DTriangleTo_p_ICloneable, 0, 0},  {&_swigt__p_ICloneable, 0, 0, 0},  {&_swigt__p_RotationEuler, _p_RotationEulerTo_p_ICloneable, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IClusteredParticles[] = {  {&_swigt__p_IClusteredParticles, 0, 0, 0},  {&_swigt__p_Crystal, _p_CrystalTo_p_IClusteredParticles, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_IDetector[] = {  {&_swigt__p_IDetector, 0, 0, 0},  {&_swigt__p_SphericalDetector, _p_SphericalDetectorTo_p_IDetector, 0, 0},  {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_IDetector, 0, 0},  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_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_SphericalDetector, _p_SphericalDetectorTo_p_IDetector2D, 0, 0},  {&_swigt__p_IsGISAXSDetector, _p_IsGISAXSDetectorTo_p_IDetector2D, 0, 0},  {&_swigt__p_RectangularDetector, _p_RectangularDetectorTo_p_IDetector2D, 0, 0},  {&_swigt__p_IDetector2D, 0, 0, 0},{0, 0, 0, 0}};
@@ -128222,6 +128491,7 @@ static swig_cast_info _swigc__p_std__vectorT_ParameterSample_std__allocatorT_Par
 static swig_cast_info _swigc__p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t[] = {  {&_swigt__p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t[] = {  {&_swigt__p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t[] = {  {&_swigt__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t__iterator[] = {  {&_swigt__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t__iterator, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__vectorT_double_std__allocatorT_double_t_t[] = {  {&_swigt__p_std__vectorT_double_std__allocatorT_double_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__vectorT_int_std__allocatorT_int_t_t[] = {  {&_swigt__p_std__vectorT_int_std__allocatorT_int_t_t, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_std__vectorT_size_t_std__allocatorT_size_t_t_t[] = {  {&_swigt__p_std__vectorT_size_t_std__allocatorT_size_t_t_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -128255,6 +128525,7 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_CallbackMap_t,
   _swigc__p_ChiSquaredModule,
   _swigc__p_ConstKBinAxis,
+  _swigc__p_ConstantBackground,
   _swigc__p_ConvolutionDetectorResolution,
   _swigc__p_CreateItemCallback,
   _swigc__p_Crystal,
@@ -128533,6 +128804,7 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_std__vectorT_PolygonalTopology_std__allocatorT_PolygonalTopology_t_t,
   _swigc__p_std__vectorT_RealParameter_p_std__allocatorT_RealParameter_p_t_t,
   _swigc__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t,
+  _swigc__p_std__vectorT_SimulationElement_std__allocatorT_SimulationElement_t_t__iterator,
   _swigc__p_std__vectorT_double_std__allocatorT_double_t_t,
   _swigc__p_std__vectorT_int_std__allocatorT_int_t_t,
   _swigc__p_std__vectorT_size_t_std__allocatorT_size_t_t_t,