base class, extends NXobject


Set of atoms of a molecular ion or fragment in e.g. ToF mass spectrometry.


The symbols used in the schema to specify e.g. dimensions of arrays.

n_ivecmax: Maximum number of atoms/isotopes allowed per (molecular) ion (fragment).

n_ranges: Number of mass-to-charge-state-ratio range intervals for ion type.

Groups cited:



ion_type: (optional) NX_UINT {units=NX_UNITLESS}

Ion type (ion species) identifier. The identifier zero is reserved for the special unknown ion type.

isotope_vector: (optional) NX_UINT (Rank: 1, Dimensions: [n_ivecmax]) {units=NX_UNITLESS}

A vector of isotope hash values. These values have to be stored in an array, sorted in decreasing order. The array is filled with zero hash values indicating unused places. The individual hash values are built with the following hash function:

The hash value \(H\) is \(H = Z + N*256\) with \(Z\) the number of protons and \(N\) the number of neutrons of each isotope respectively.

Z and N have to be 8-bit unsigned integers. For the rationale behind this M. Kühbach et al. (2021)

charge_state: (optional) NX_INT {units=NX_DIMENSIONLESS}

Signed charge state of the ion in multiples of electron charge.

Only positive values will be measured in atom probe microscopy as the ions are accelerated by a negatively signed bias electric field. In the case that the charge state is not explicitly recoverable, the value should be set to zero.

In atom probe microscopy this is for example the case when using classical range file formats like RNG, RRNG for atom probe data. These file formats do not document the charge state explicitly. They report the number of atoms of each element per molecular ion surplus the mass-to-charge-state-ratio interval. With this it is possible to recover the charge state only for specific molecular ions as the accumulated mass of the molecular ion is defined by the isotopes, which without knowing the charge leads to an underconstrained problem. Details on ranging can be found in the literature: M. K. Miller

name: (optional) NX_CHAR

Human-readable ion type name (e.g. Al +++) The string should consists of ASCII UTF-8 characters, ideally using LaTeX notation to specify the isotopes, ions, and charge state. Examples are 12C + or Al +++. Although this name may be human-readable and intuitive, parsing such names becomes impractical for more complicated cases. Therefore, the isotope_vector should be the preferred machine-readable format to use.

mass_to_charge_range: (optional) NX_FLOAT (Rank: 2, Dimensions: [n_ranges, 2]) {units=NX_ANY}

Associated lower (mqmin) and upper (mqmax) bounds of mass-to-charge-state ratio interval(s) [mqmin, mqmax] (boundaries included) for which the respective ion is labelled as an ion of the here referred to ion_type.

Hypertext Anchors

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

NXDL Source: