native_CoreOptics=Optics.SourceGaussian(Lambda=Lambda, Waist0=Waist0),
        native_PositioningDirectives=Foundation.PositioningDirectives(
            ReferTo='absolute', XYCentre=[0, 0], Angle=pi / 4. - AngleGrazing))

    s = ww_s.native_optical_element  # Wiser optical element
    s.ComputationSettings.UseSmallDisplacements = True
    s.Orientation = Optics.OPTICS_ORIENTATION.ANY
    s.CoreOptics.SmallDisplacements.Long = DeltaSourceList[0]
    s.CoreOptics.SmallDisplacements.Rotation = 0.

    # PM1 (h)
    #==========================================================================
    ww_pm1_h = WiserOpticalElement(
        name='pm1h',
        boundary_shape=None,
        native_CoreOptics=Optics.MirrorPlane(L=L, AngleGrazing=AngleGrazing),
        native_PositioningDirectives=Foundation.PositioningDirectives(
            ReferTo='upstream',
            PlaceWhat='centre',
            PlaceWhere='centre',
            Distance=20.))

    pm1_h = ww_pm1_h.native_optical_element  # Wiser optical element
    pm1_h.ComputationSettings.UseFigureError = False
    pm1_h.CoreOptics.Orientation = Optics.OPTICS_ORIENTATION.HORIZONTAL

    pm1_h.ComputationSettings.Ignore = False  # Lo user decide di non simulare lo specchio ()
    pm1_h.ComputationSettings.UseCustomSampling = UseCustomSampling  # l'utente decide di impostare a mano il campionamento
    pm1_h.ComputationSettings.NSamples = N

    # PM2 (h)
 def get_native_optical_element(self):
     return Optics.MirrorPlane(L=self.length,
                               AngleGrazing=numpy.deg2rad(self.alpha))