# 3.3.1.26. NXguideΒΆ

**Status**:

base class, extends NXobject

**Description**:

A neutron optical element to direct the path of the beam.

NXguide is used by neutron instruments to describe a guide consists of several mirrors building a shape through which neutrons can be guided or directed. The simplest such form is box shaped although elliptical guides are gaining in popularity. The individual parts of a guide usually have common characteristics but there are cases where they are different. For example, a neutron guide might consist of 2 or 4 coated walls or a supermirror bender with multiple, coated vanes.

To describe polarizing supermirrors such as used in neutron reflection, it may be necessary to revise this definition of NXguide to include NXpolarizer and/or NXmirror.

When even greater complexity exists in the definition of what constitutes a

guide, it has been suggested that NXguide be redefined as a NXcollection of NXmirror each having their own NXgeometry describing their location(s).For the more general case when describing mirrors, consider using NXmirror.

NOTE: The NeXus International Advisory Committee welcomes comments for revision and improvement of this definition of NXguide.

**Symbols**:

nsurf: number of reflecting surfaces

nwl: number of wavelengths

**Groups cited**:- NXdata, NXgeometry

**Structure**:

description: (optional) NX_CHARA description of this particular instance of`NXguide`

.

incident_angle: (optional) NX_FLOAT {units=NX_ANGLE}TODO: documentation needed

bend_angle_x: (optional) NX_FLOAT {units=NX_ANGLE}TODO: documentation needed

bend_angle_y: (optional) NX_FLOAT {units=NX_ANGLE}TODO: documentation needed

interior_atmosphere: (optional) NX_CHARAny of these values:`vacuum`

|`helium`

|`argon`

external_material: (optional) NX_CHARexternal material outside substrate

m_value[nsurf]: (optional) NX_FLOATThe`m`

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

substrate_material[nsurf]: (optional) NX_FLOATTODO: documentation needed

substrate_thickness[nsurf]: (optional) NX_FLOAT {units=NX_LENGTH}TODO: documentation needed

coating_material[nsurf]: (optional) NX_FLOATTODO: documentation needed

substrate_roughness[nsurf]: (optional) NX_FLOAT {units=NX_LENGTH}TODO: documentation needed

coating_roughness[nsurf]: (optional) NX_FLOAT {units=NX_LENGTH}TODO: documentation needed

number_sections: (optional) NX_INT {units=NX_UNITLESS}number of substrate sections (also called`nsurf`

as an index in the`NXguide`

specification)

(geometry): (optional) NXgeometryTODO: Explain what this NXgeometry group means. What is intended here?

reflectivity: (optional) NXdataReflectivity as function of reflecting surface and wavelength

@signal: (optional) NX_CHARObligatory value:`data`

@axes: (optional) NX_CHARObligatory value:`surface wavelength`

@surface_indices: (optional) NX_CHARObligatory value:`0`

@wavelength_indices: (optional) NX_CHARObligatory value:`1`

data[nsurf, nwl]: (optional) NX_NUMBERreflectivity of each surface as a function of wavelength

surface[nsurf]: (optional) NX_NUMBER {units=NX_ANY}List of surfaces. Probably best to use index numbers but the specification is very loose.

wavelength[nwl]: (optional) NX_NUMBER {units=NX_WAVELENGTH}wavelengths at which reflectivity was measured