def __init__(self, zpos=<NUM_LIT:0>, angles=(<NUM_LIT:0>,<NUM_LIT:0>), param_prefix='<STR_LIT>', shape=None,<EOL>float_precision=np.float64, category='<STR_LIT>'):
self.lbl_zpos = param_prefix+'<STR_LIT>'<EOL>self.lbl_theta = param_prefix+'<STR_LIT>'<EOL>self.lbl_phi = param_prefix+'<STR_LIT>'<EOL>if float_precision not in (np.float64, np.float32, np.float16):<EOL><INDENT>raise ValueError('<STR_LIT>' +<EOL>'<STR_LIT>')<EOL><DEDENT>self.float_precision = float_precision<EOL>params = [self.lbl_zpos, self.lbl_theta, self.lbl_phi]<EOL>values = [float(i) for i in [zpos, angles[<NUM_LIT:0>], angles[<NUM_LIT:1>]]]<EOL>super(Slab, self).__init__(params, values, ordered=False,<EOL>category=category)<EOL>if shape:<EOL><INDENT>inner = shape.copy()  <EOL>self.set_shape(shape, inner)<EOL><DEDENT>self.set_tile(self.shape)<EOL>if self.shape:<EOL><INDENT>self.initialize()<EOL><DEDENT>
A half plane corresponding to a cover-slip.

Parameters
----------
shape : tuple
    field shape over which to calculate

zpos : float
    position of the center of the slab in pixels

angles : tuple of float (2,), optional
    Euler-like Angles of rotation of the normal with respect to the
    z-axis, i.e. ``angles=(0., 0.)`` gives a slab with a normal
    along z. The first angle theta is the rotation about the x-axis;
    the second angle phi is the rotation about the y-axis. Default
    is (0,0).

float_precision : numpy float datatype
    One of numpy.float16, numpy.float32, numpy.float64; precision
    for precomputed arrays. Default is np.float64; make it 16 or 32
    to save memory.