.. auto-generated by dev_tools.docs.nxdl from the NXDL source base_classes/NXmirror.nxdl.xml -- DO NOT EDIT

.. index::
    ! NXmirror (base class)
    ! mirror (base class)
    see: mirror (base class); NXmirror

.. _NXmirror:

========
NXmirror
========

**Status**:

  base class, extends :ref:`NXobject`

**Description**:

  A beamline mirror or supermirror.

**Symbols**:

  No symbol table

**Groups cited**:
  :ref:`NXdata`, :ref:`NXgeometry`, :ref:`NXoff_geometry`, :ref:`NXshape`, :ref:`NXtransformations`

.. index:: NXgeometry (base class); used in base class, NXdata (base class); used in base class, NXshape (base class); used in base class, NXoff_geometry (base class); used in base class, NXtransformations (base class); used in base class

**Structure**:

  .. _/NXmirror@default-attribute:

  .. index:: default (file attribute)

  **@default**: (optional) :ref:`NX_CHAR <NX_CHAR>`

    .. index:: plotting

    Declares which child group contains a path leading 
    to a :ref:`NXdata` group.

    It is recommended (as of NIAC2014) to use this attribute
    to help define the path to the default dataset to be plotted.
    See https://www.nexusformat.org/2014_How_to_find_default_data.html
    for a summary of the discussion.

  .. _/NXmirror/type-field:

  .. index:: type (field)

  **type**: (optional) :ref:`NX_CHAR <NX_CHAR>`


    Any of these values:

      * ``single``: mirror with a single material as a reflecting surface

      * ``multi``: mirror with stacked, multiple layers as a reflecting surface


  .. _/NXmirror/description-field:

  .. index:: description (field)

  **description**: (optional) :ref:`NX_CHAR <NX_CHAR>`

    description of this mirror

  .. _/NXmirror/incident_angle-field:

  .. index:: incident_angle (field)

  **incident_angle**: (optional) :ref:`NX_FLOAT <NX_FLOAT>` {units=\ :ref:`NX_ANGLE <NX_ANGLE>`}


  .. _/NXmirror/bend_angle_x-field:

  .. index:: bend_angle_x (field)

  **bend_angle_x**: (optional) :ref:`NX_FLOAT <NX_FLOAT>` {units=\ :ref:`NX_ANGLE <NX_ANGLE>`}


  .. _/NXmirror/bend_angle_y-field:

  .. index:: bend_angle_y (field)

  **bend_angle_y**: (optional) :ref:`NX_FLOAT <NX_FLOAT>` {units=\ :ref:`NX_ANGLE <NX_ANGLE>`}


  .. _/NXmirror/interior_atmosphere-field:

  .. index:: interior_atmosphere (field)

  **interior_atmosphere**: (optional) :ref:`NX_CHAR <NX_CHAR>`


    Any of these values: ``vacuum`` | ``helium`` | ``argon``

  .. _/NXmirror/external_material-field:

  .. index:: external_material (field)

  **external_material**: (optional) :ref:`NX_CHAR <NX_CHAR>`

    external material outside substrate

  .. _/NXmirror/m_value-field:

  .. index:: m_value (field)

  **m_value**: (optional) :ref:`NX_FLOAT <NX_FLOAT>` {units=\ :ref:`NX_UNITLESS <NX_UNITLESS>`}

    The m value for a supermirror, which defines the supermirror 
    regime in multiples of the critical angle of Nickel.

  .. _/NXmirror/substrate_material-field:

  .. index:: substrate_material (field)

  **substrate_material**: (optional) :ref:`NX_CHAR <NX_CHAR>`


  .. _/NXmirror/substrate_density-field:

  .. index:: substrate_density (field)

  **substrate_density**: (optional) :ref:`NX_FLOAT <NX_FLOAT>` {units=\ :ref:`NX_MASS_DENSITY <NX_MASS_DENSITY>`}


  .. _/NXmirror/substrate_thickness-field:

  .. index:: substrate_thickness (field)

  **substrate_thickness**: (optional) :ref:`NX_FLOAT <NX_FLOAT>` {units=\ :ref:`NX_LENGTH <NX_LENGTH>`}


  .. _/NXmirror/coating_material-field:

  .. index:: coating_material (field)

  **coating_material**: (optional) :ref:`NX_CHAR <NX_CHAR>`


  .. _/NXmirror/substrate_roughness-field:

  .. index:: substrate_roughness (field)

  **substrate_roughness**: (optional) :ref:`NX_FLOAT <NX_FLOAT>` {units=\ :ref:`NX_LENGTH <NX_LENGTH>`}


  .. _/NXmirror/coating_roughness-field:

  .. index:: coating_roughness (field)

  **coating_roughness**: (optional) :ref:`NX_FLOAT <NX_FLOAT>` {units=\ :ref:`NX_LENGTH <NX_LENGTH>`}


  .. _/NXmirror/even_layer_material-field:

  .. index:: even_layer_material (field)

  **even_layer_material**: (optional) :ref:`NX_CHAR <NX_CHAR>`


  .. _/NXmirror/even_layer_density-field:

  .. index:: even_layer_density (field)

  **even_layer_density**: (optional) :ref:`NX_FLOAT <NX_FLOAT>` {units=\ :ref:`NX_MASS_DENSITY <NX_MASS_DENSITY>`}


  .. _/NXmirror/odd_layer_material-field:

  .. index:: odd_layer_material (field)

  **odd_layer_material**: (optional) :ref:`NX_CHAR <NX_CHAR>`


  .. _/NXmirror/odd_layer_density-field:

  .. index:: odd_layer_density (field)

  **odd_layer_density**: (optional) :ref:`NX_FLOAT <NX_FLOAT>` {units=\ :ref:`NX_MASS_DENSITY <NX_MASS_DENSITY>`}


  .. _/NXmirror/layer_thickness-field:

  .. index:: layer_thickness (field)

  **layer_thickness**: (optional) :ref:`NX_FLOAT <NX_FLOAT>` {units=\ :ref:`NX_LENGTH <NX_LENGTH>`}

    An array describing the thickness of each layer

  .. _/NXmirror/depends_on-field:

  .. index:: depends_on (field)

  **depends_on**: (optional) :ref:`NX_CHAR <NX_CHAR>`

    NeXus positions components by applying a set of translations and rotations
    to apply to the component starting from 0, 0, 0. The order of these operations
    is critical and forms what NeXus calls a dependency chain. The depends_on
    field defines the path to the top most operation of the dependency chain or the
    string "." if located in the origin. Usually these operations are stored in a
    NXtransformations group. But NeXus allows them to be stored anywhere.

    Given a flat mirror, the reference plane is the plane which contains the "entry" surface of the mirror. The reference
    point of the mirror in the x and y axis is the centre of the mirror on that plane. The reference plane is orthogonal
    to the z axis and the location of this plane is the reference point on the z axis. The mirror faces negative z values.

    .. image:: mirror/mirror.png
      :width: 40%


  .. _/NXmirror/GEOMETRY-group:

  **GEOMETRY**: (optional) :ref:`NXgeometry`


    .. index:: deprecated


    **DEPRECATED**: Use the field `depends_on` and :ref:`NXtransformations` to position the mirror and NXoff_geometry to describe its shape instead


  .. _/NXmirror/reflectivity-group:

  **reflectivity**: (optional) :ref:`NXdata`

    Reflectivity as function of wavelength

  .. _/NXmirror/shape-group:

  **shape**: (optional) :ref:`NXshape`


    .. index:: deprecated


    **DEPRECATED**: Use NXoff_geometry instead

    A NXshape group describing the shape of the mirror

  .. _/NXmirror/figure_data-group:

  **figure_data**: (optional) :ref:`NXdata`

    Numerical description of the surface figure of the mirror.

  .. _/NXmirror/OFF_GEOMETRY-group:

  **OFF_GEOMETRY**: (optional) :ref:`NXoff_geometry`

    This group describes the shape of the beam line component

  .. _/NXmirror/TRANSFORMATIONS-group:

  **TRANSFORMATIONS**: (optional) :ref:`NXtransformations`

    This is the group recommended for holding the chain of translation
    and rotation operations necessary to position the component within
    the instrument. The dependency chain may however traverse similar groups in
    other component groups.


Hypertext Anchors
-----------------

List of hypertext anchors for all groups, fields,
attributes, and links defined in this class.


* :ref:`/NXmirror/bend_angle_x-field </NXmirror/bend_angle_x-field>`
* :ref:`/NXmirror/bend_angle_y-field </NXmirror/bend_angle_y-field>`
* :ref:`/NXmirror/coating_material-field </NXmirror/coating_material-field>`
* :ref:`/NXmirror/coating_roughness-field </NXmirror/coating_roughness-field>`
* :ref:`/NXmirror/depends_on-field </NXmirror/depends_on-field>`
* :ref:`/NXmirror/description-field </NXmirror/description-field>`
* :ref:`/NXmirror/even_layer_density-field </NXmirror/even_layer_density-field>`
* :ref:`/NXmirror/even_layer_material-field </NXmirror/even_layer_material-field>`
* :ref:`/NXmirror/external_material-field </NXmirror/external_material-field>`
* :ref:`/NXmirror/figure_data-group </NXmirror/figure_data-group>`
* :ref:`/NXmirror/GEOMETRY-group </NXmirror/GEOMETRY-group>`
* :ref:`/NXmirror/incident_angle-field </NXmirror/incident_angle-field>`
* :ref:`/NXmirror/interior_atmosphere-field </NXmirror/interior_atmosphere-field>`
* :ref:`/NXmirror/layer_thickness-field </NXmirror/layer_thickness-field>`
* :ref:`/NXmirror/m_value-field </NXmirror/m_value-field>`
* :ref:`/NXmirror/odd_layer_density-field </NXmirror/odd_layer_density-field>`
* :ref:`/NXmirror/odd_layer_material-field </NXmirror/odd_layer_material-field>`
* :ref:`/NXmirror/OFF_GEOMETRY-group </NXmirror/OFF_GEOMETRY-group>`
* :ref:`/NXmirror/reflectivity-group </NXmirror/reflectivity-group>`
* :ref:`/NXmirror/shape-group </NXmirror/shape-group>`
* :ref:`/NXmirror/substrate_density-field </NXmirror/substrate_density-field>`
* :ref:`/NXmirror/substrate_material-field </NXmirror/substrate_material-field>`
* :ref:`/NXmirror/substrate_roughness-field </NXmirror/substrate_roughness-field>`
* :ref:`/NXmirror/substrate_thickness-field </NXmirror/substrate_thickness-field>`
* :ref:`/NXmirror/TRANSFORMATIONS-group </NXmirror/TRANSFORMATIONS-group>`
* :ref:`/NXmirror/type-field </NXmirror/type-field>`
* :ref:`/NXmirror@default-attribute </NXmirror@default-attribute>`

**NXDL Source**:
  https://github.com/nexusformat/definitions/blob/main/base_classes/NXmirror.nxdl.xml