base class, extends NXobject


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.


nsurf: number of reflecting surfaces

nwl: number of wavelengths

Groups cited:

NXdata, NXgeometry


description: (optional) NX_CHAR

A 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_CHAR

Any of these values: vacuum | helium | argon

external_material: (optional) NX_CHAR

external material outside substrate

m_value[nsurf]: (optional) NX_FLOAT

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

substrate_material[nsurf]: (optional) NX_FLOAT

TODO: documentation needed

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

TODO: documentation needed

coating_material[nsurf]: (optional) NX_FLOAT

TODO: 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) NXgeometry

TODO: Explain what this NXgeometry group means. What is intended here?

reflectivity: (optional) NXdata

Reflectivity as function of reflecting surface and wavelength

@signal: (optional) NX_CHAR

Obligatory value: data

@axes: (optional) NX_CHAR

Obligatory value: surface wavelength

@surface_indices: (optional) NX_CHAR

Obligatory value: 0

@wavelength_indices: (optional) NX_CHAR

Obligatory value: 1

data[nsurf, nwl]: (optional) NX_NUMBER

reflectivity 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

NXDL Source: