diff --git a/.readthedocs.yaml b/.readthedocs.yaml index fe110f1895..b9ed680f19 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -1,9 +1,9 @@ version: 2 build: - os: ubuntu-22.04 + os: ubuntu-24.04 tools: - python: "3.12" + python: "3.14" commands: - pip install -r requirements.txt - make prepare diff --git a/applications/NXxas.nxdl.xml b/applications/NXxas.nxdl.xml deleted file mode 100644 index f076e9bb42..0000000000 --- a/applications/NXxas.nxdl.xml +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - The symbol(s) listed here will be used below to coordinate datasets with the same shape. - - - Number of points - - - - This is an application definition for raw data from an X-ray absorption spectroscopy experiment. - - This is essentially a scan on energy versus incoming/ - absorbed beam. - - - - - - Official NeXus NXDL schema to which this file conforms - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This data corresponds to the sample signal. - - - - - - - - - Descriptive name of sample - - - - - - Count to a preset value based on either clock time (timer) - or received monitor counts (monitor). - - - - - - - - preset value for time or monitor - - - This field could be a link to ``/NXentry/NXinstrument/incoming_beam:NXdetector/data`` - - - - - - - - - - Detection method used for observing the sample absorption (pick one from the enumerated list and spell exactly) - - - - - - - - - - - diff --git a/base_classes/NXelement.nxdl.xml b/base_classes/NXelement.nxdl.xml deleted file mode 100644 index 19237a8d29..0000000000 --- a/base_classes/NXelement.nxdl.xml +++ /dev/null @@ -1,171 +0,0 @@ - - - - - Definition of a chemical element. - - - For each symbol, the atomic number, common English name, and standard atomic weight are also given. - - - Z=1, name="hydrogen", standard_atomic_weight=1.0078 - Z=2, name="helium", standard_atomic_weight=4.0026 - Z=3, name="lithium", standard_atomic_weight=6.94 - Z=4, name="beryllium", standard_atomic_weight=9.0122 - Z=5, name="boron", standard_atomic_weight=10.81 - Z=6, name="carbon", standard_atomic_weight=12.011 - Z=7, name="nitrogen", standard_atomic_weight=14.007 - Z=8, name="oxygen", standard_atomic_weight=15.999 - Z=9, name="fluorine", standard_atomic_weight=18.9984 - Z=10, name="neon", standard_atomic_weight=20.1797 - Z=11, name="sodium", standard_atomic_weight=22.9898 - Z=12, name="magnesium", standard_atomic_weight=24.305 - Z=13, name="aluminum", standard_atomic_weight=26.9815 - Z=14, name="silicon", standard_atomic_weight=28.085 - Z=15, name="phosphorus", standard_atomic_weight=30.9738 - Z=16, name="sulfur", standard_atomic_weight=32.06 - Z=17, name="chlorine", standard_atomic_weight=35.453 - Z=18, name="argon", standard_atomic_weight=39.948 - Z=19, name="potassium", standard_atomic_weight=39.0983 - Z=20, name="calcium", standard_atomic_weight=40.078 - Z=21, name="scandium", standard_atomic_weight=44.9559 - Z=22, name="titanium", standard_atomic_weight=47.867 - Z=23, name="vanadium", standard_atomic_weight=50.9415 - Z=24, name="chromium", standard_atomic_weight=51.996 - Z=25, name="manganese", standard_atomic_weight=54.938 - Z=26, name="iron", standard_atomic_weight=55.845 - Z=27, name="cobalt", standard_atomic_weight=58.9332 - Z=28, name="nickel", standard_atomic_weight=58.6934 - Z=29, name="copper", standard_atomic_weight=63.546 - Z=30, name="zinc", standard_atomic_weight=65.38 - Z=31, name="gallium", standard_atomic_weight=69.72 - Z=32, name="germanium", standard_atomic_weight=72.63 - Z=33, name="arsenic", standard_atomic_weight=74.9216 - Z=34, name="selenium", standard_atomic_weight=78.971 - Z=35, name="bromine", standard_atomic_weight=79.904 - Z=36, name="krypton", standard_atomic_weight=83.798 - Z=37, name="rubidium", standard_atomic_weight=85.4678 - Z=38, name="strontium", standard_atomic_weight=87.62 - Z=39, name="yttrium", standard_atomic_weight=88.9058 - Z=40, name="zirconium", standard_atomic_weight=91.224 - Z=41, name="niobium", standard_atomic_weight=92.9064 - Z=42, name="molybdenum", standard_atomic_weight=95.95 - Z=43, name="technetium", standard_atomic_weight=97.907 - Z=44, name="ruthenium", standard_atomic_weight=101.07 - Z=45, name="rhodium", standard_atomic_weight=102.906 - Z=46, name="palladium", standard_atomic_weight=106.42 - Z=47, name="silver", standard_atomic_weight=107.868 - Z=48, name="cadmium", standard_atomic_weight=112.414 - Z=49, name="indium", standard_atomic_weight=114.818 - Z=50, name="tin", standard_atomic_weight=118.71 - Z=51, name="antimony", standard_atomic_weight=121.76 - Z=52, name="tellurium", standard_atomic_weight=127.6 - Z=53, name="iodine", standard_atomic_weight=126.905 - Z=54, name="xenon", standard_atomic_weight=131.293 - Z=55, name="cesium", standard_atomic_weight=132.905 - Z=56, name="barium", standard_atomic_weight=137.327 - Z=57, name="lanthanum", standard_atomic_weight=138.905 - Z=58, name="cerium", standard_atomic_weight=140.116 - Z=59, name="praseodymium", standard_atomic_weight=140.908 - Z=60, name="neodymium", standard_atomic_weight=144.242 - Z=61, name="promethium", standard_atomic_weight=145.0 - Z=62, name="samarium", standard_atomic_weight=150.36 - Z=63, name="europium", standard_atomic_weight=151.96 - Z=64, name="gadolinium", standard_atomic_weight=157.25 - Z=65, name="terbium", standard_atomic_weight=158.925 - Z=66, name="dysprosium", standard_atomic_weight=162.5 - Z=67, name="holmium", standard_atomic_weight=164.93 - Z=68, name="erbium", standard_atomic_weight=167.259 - Z=69, name="thulium", standard_atomic_weight=168.934 - Z=70, name="ytterbium", standard_atomic_weight=173.045 - Z=71, name="lutetium", standard_atomic_weight=174.967 - Z=72, name="hafnium", standard_atomic_weight=178.49 - Z=73, name="tantalum", standard_atomic_weight=180.948 - Z=74, name="tungsten", standard_atomic_weight=183.84 - Z=75, name="rhenium", standard_atomic_weight=186.207 - Z=76, name="osmium", standard_atomic_weight=190.23 - Z=77, name="iridium", standard_atomic_weight=192.217 - Z=78, name="platinum", standard_atomic_weight=195.084 - Z=79, name="gold", standard_atomic_weight=196.967 - Z=80, name="mercury", standard_atomic_weight=200.592 - Z=81, name="thallium", standard_atomic_weight=204.383 - Z=82, name="lead", standard_atomic_weight=207.2 - Z=83, name="bismuth", standard_atomic_weight=208.98 - Z=84, name="polonium", standard_atomic_weight=209.0 - Z=85, name="astatine", standard_atomic_weight=210.0 - Z=86, name="radon", standard_atomic_weight=222.0 - Z=87, name="francium", standard_atomic_weight=223.0 - Z=88, name="radium", standard_atomic_weight=226.0 - Z=89, name="actinium", standard_atomic_weight=227.0 - Z=90, name="thorium", standard_atomic_weight=232.038 - Z=91, name="protactinium", standard_atomic_weight=231.036 - Z=92, name="uranium", standard_atomic_weight=238.029 - Z=93, name="neptunium", standard_atomic_weight=237.048 - Z=94, name="plutonium", standard_atomic_weight=239.052 - Z=95, name="americium", standard_atomic_weight=243.0 - Z=96, name="curium", standard_atomic_weight=247.0 - Z=97, name="berkelium", standard_atomic_weight=247.0 - Z=98, name="californium", standard_atomic_weight=251.0 - Z=99, name="einsteinium", standard_atomic_weight=252 - Z=100, name="fermium", standard_atomic_weight=257 - Z=101, name="mendelevium", standard_atomic_weight=258 - Z=102, name="nobelium", standard_atomic_weight=259 - Z=103, name="lawrencium", standard_atomic_weight=266 - Z=104, name="rutherfordium", standard_atomic_weight=267 - Z=105, name="dubnium", standard_atomic_weight=268 - Z=106, name="seaborgium", standard_atomic_weight=269 - Z=107, name="bohrium", standard_atomic_weight=270 - Z=108, name="hassium", standard_atomic_weight=269 - Z=109, name="meitnerium", standard_atomic_weight=278 - Z=110, name="darmstadtium", standard_atomic_weight=281 - Z=111, name="roentgenium", standard_atomic_weight=282 - Z=112, name="copernicium", standard_atomic_weight=285 - Z=113, name="nihonium", standard_atomic_weight=286 - Z=114, name="flerovium", standard_atomic_weight=289 - Z=115, name="moscovium", standard_atomic_weight=290 - Z=116, name="livermorium", standard_atomic_weight=293 - Z=117, name="tennessine", standard_atomic_weight=294 - Z=118, name="oganesson", standard_atomic_weight=294 - - - - The charge number *Z* of the atomic nucleus. - - - - *Relative atomic mass* of the element in *amu*. It can be but is not restricted to the - *standard atomic weight* (using the natural abundance of isotopes). - - - - The charge of the atom after ionic approximation of its heteronuclear bonds. - - diff --git a/base_classes/NXxas_mode.nxdl.xml b/base_classes/NXxas_mode.nxdl.xml deleted file mode 100644 index 02da979ea5..0000000000 --- a/base_classes/NXxas_mode.nxdl.xml +++ /dev/null @@ -1,145 +0,0 @@ - - - - - XAS measurement mode - - - X-ray absorption spectroscopy (XAS) is a technique that measures the absorption coefficient :math:`\mu(E)` of a material as a function of energy. - - The name of the XAS mode indicates the type of process being monitored to obtain the spectrum. Below is a description of the available modes, with emphasis on the expected values for the `intensity` and `monitor` fields. - - 1. Transmission - - The absorption coefficient is obtained by measuring the intensity of the incident :math:`I_0` and transmitted beam :math:`I`. - - .. math:: - \mu(E) = -\ln(I/I_0) - - 2. Total fluorescence yield (TFY) - - The absorption coefficient is obtained by measuring the intensity of the emitted fluorescence :math:`I_f` and the incident beam :math:`I_0`. - - .. math:: - \mu(E) \propto I_f/I_0 - - 3. Partial fluorescence yield (PFY) - - 4. Inverse partial fluorescence yield (IPFY) - - 5. High-energy resolution fluorescence detection (HERFD) - - 6. Total electron yield (TEY) - - 7. Partial electron yield (PEY) - - 8. Electron energy loss (EELS) - - 9. X-ray Raman Scattering (XRS) - - 10. Diffraction Anomalous Fine Structure (DAFS) - - 11. X-ray Excited Optical Luminescence (XEOL) - - 12. Grazing Angle Reflection Extended X-ray Absorption Fine Structure (ReflEXAFS) - - 13. Other - - - - - Transmission - - - - - Total Fluorescence Yield - - - - - Partial Fluorescence Yield - - - - - Inverse Partial Fluorescence Yield - - - - - High Energy Resolution Fluorescence Detected - - - - - Total Electron Yield - - - - - Partial Electron Yield - - - - - Electron Energy Loss - - - - - X-ray Raman Scattering - - - - - Diffraction Anomalous Fine Structure - - - - - X-ray Excited Optical Luminescence - - - - - Grazing Angle Reflection Extended X-ray Absorption Fine Structure - - - - - Other - - - - - - - Collection of emission lines detected or used in this measurement. - - - - - diff --git a/base_classes/NXedge.nxdl.xml b/contributed_definitions/NXabsorption_edge.nxdl.xml similarity index 54% rename from base_classes/NXedge.nxdl.xml rename to contributed_definitions/NXabsorption_edge.nxdl.xml index ef8a3e61ae..389483d147 100644 --- a/base_classes/NXedge.nxdl.xml +++ b/contributed_definitions/NXabsorption_edge.nxdl.xml @@ -21,83 +21,89 @@ # # For further information, see http://www.nexusformat.org --> - An absorption edge is a sharp discontinuity in the X-ray absorption spectrum - of an element that occurs when the incident photon energy equals the binding - energy of a core electron, enabling photoionization of that shell. + of an atom that occurs when the incident photon energy reaches the threshold + energy for exciting the atom from its neutral ground state to a core-vacancy + state. - Name of the absorption edge specified using - `IUPAC notation`_ (e.g., ``K``, ``L2``, ``M5``), which identifies the - shell and sub-shell from which the electron is ejected. - - Correspondence between IUPAC and electronic level notations: + Name of the absorption edge using `IUPAC notation`_ (e.g., ``K``, + ``L2``, ``M5``), which identifies the core-vacancy state of the + atom. + + Correspondence between IUPAC notation and electron configuration, + expressed as vacancy notation (superscript :math:`-1`): .. list-table:: :header-rows: 1 * - IUPAC - - Electronic level + - Electron configuration * - K - - 1s + - :math:`1s^{-1}` * - L1 - - 2s + - :math:`2s^{-1}` * - L2 - - :math:`2p_{1/2}` + - :math:`2p_{1/2}^{-1}` * - L3 - - :math:`2p_{3/2}` + - :math:`2p_{3/2}^{-1}` * - M1 - - 3s + - :math:`3s^{-1}` * - M2 - - :math:`3p_{1/2}` + - :math:`3p_{1/2}^{-1}` * - M3 - - :math:`3p_{3/2}` + - :math:`3p_{3/2}^{-1}` * - M4 - - :math:`3d_{3/2}` + - :math:`3d_{3/2}^{-1}` * - M5 - - :math:`3d_{5/2}` + - :math:`3d_{5/2}^{-1}` * - N1 - - 4s + - :math:`4s^{-1}` * - N2 - - :math:`4p_{1/2}` + - :math:`4p_{1/2}^{-1}` * - N3 - - :math:`4p_{3/2}` + - :math:`4p_{3/2}^{-1}` * - N4 - - :math:`4d_{3/2}` + - :math:`4d_{3/2}^{-1}` * - N5 - - :math:`4d_{5/2}` + - :math:`4d_{5/2}^{-1}` * - N6 - - :math:`4f_{5/2}` + - :math:`4f_{5/2}^{-1}` * - N7 - - :math:`4f_{7/2}` + - :math:`4f_{7/2}^{-1}` * - O1 - - 5s + - :math:`5s^{-1}` * - O2 - - :math:`5p_{1/2}` + - :math:`5p_{1/2}^{-1}` * - O3 - - :math:`5p_{3/2}` + - :math:`5p_{3/2}^{-1}` * - O4 - - :math:`5d_{3/2}` + - :math:`5d_{3/2}^{-1}` * - O5 - - :math:`5d_{5/2}` + - :math:`5d_{5/2}^{-1}` * - O6 - - :math:`5f_{5/2}` + - :math:`5f_{5/2}^{-1}` * - O7 - - :math:`5f_{7/2}` + - :math:`5f_{7/2}^{-1}` * - P1 - - 6s + - :math:`6s^{-1}` * - P2 - - :math:`6p_{1/2}` + - :math:`6p_{1/2}^{-1}` * - P3 - - :math:`6p_{3/2}` + - :math:`6p_{3/2}^{-1}` * - P4 - - :math:`6d_{3/2}` + - :math:`6d_{3/2}^{-1}` * - P5 - - :math:`6d_{5/2}` + - :math:`6d_{5/2}^{-1}` + + Per IUPAC, subscripts may be dropped when unknown or irrelevant. + When two spin-orbit split levels are not distinguished, they may be + written together (e.g. ``L2,3``). .. _IUPAC notation: https://doi.org/10.1002/xrs.1300200308 @@ -106,35 +112,56 @@ + + + + + + + + + + + - + Energy of the absorption edge. + + + The atom whose core electron is excited at this absorption edge. + + + + Chemical symbol of the element (e.g. ``Fe``, ``Cu``). + + + diff --git a/base_classes/NXemission_line.nxdl.xml b/contributed_definitions/NXemission_line.nxdl.xml similarity index 97% rename from base_classes/NXemission_line.nxdl.xml rename to contributed_definitions/NXemission_line.nxdl.xml index 12c11aa89f..eae46ab01f 100644 --- a/base_classes/NXemission_line.nxdl.xml +++ b/contributed_definitions/NXemission_line.nxdl.xml @@ -3,7 +3,7 @@ + + + A container for grouping multiple emission lines. + + Each child :ref:`NXemission_line` group describes a single emission line. + + + + An emission line described by this collection. + + + diff --git a/contributed_definitions/NXxas.nxdl.xml b/contributed_definitions/NXxas.nxdl.xml new file mode 100644 index 0000000000..2e607da818 --- /dev/null +++ b/contributed_definitions/NXxas.nxdl.xml @@ -0,0 +1,108 @@ + + + + + + + The symbol(s) listed here will be used below to coordinate datasets + with the same shape. + + + Number of energy data points + + + + This is a generic application definition for X-ray absorption + spectroscopy. Technique-specific application definitions extend this base + definition. + + + + Official NeXus NXDL schema to which this file conforms. + + + + + + + The atom whose core electron is excited by the incident X-rays. + + + + + + The absorption edge being probed, defined by the principal + quantum number and orbital symmetry of the photoionized electron + (e.g. K, L1, L2, L3, L2,3). Together with the absorber uniquely + identifies probed electronic transition. + + + + + Specify if the data comes from an experiment. Use ``true`` for + data acquired at a beamline or laboratory instrument, and + ``false`` for spectra calculated/simulated using a + computational tool, reconstructed from a linear combination + of reference components, etc. + + + + + The energy axis of the spectrum. + + + + + + + + The intensity of the spectrum. The precise definition of what is + meant by intensity depends on the acquisition mode, and will be + specified by each subclass application definition. + + + + + + + + The errors associated with the intensity of the spectrum. + + + + + + + + Descriptive name of the sample + + + + Plot of the X-ray absorption intensity versus energy + + + + + diff --git a/contributed_definitions/NXxas_herfd.nxdl.xml b/contributed_definitions/NXxas_herfd.nxdl.xml new file mode 100644 index 0000000000..498da8e60b --- /dev/null +++ b/contributed_definitions/NXxas_herfd.nxdl.xml @@ -0,0 +1,550 @@ + + + + + + High-energy resolution fluorescence detection (HERFD) is a particular + case of partial fluorescence yield measured with a crystal analyzer + spectrometer with an energy bandwidth of approximately 1-2 eV. + + The HERFD spectrum corresponds to a constant-emission-energy cut + through the Resonant Inelastic X-ray Scattering (RIXS) plane. + The spectral shape depends on the emission energy, making the + emission line and emission energy mandatory metadata. + + The top-level :ref:`intensity </NXxas/ENTRY/intensity-field>` + field stores the ratio :math:`I_f/I_0`, where :math:`I_f` is the + fluorescence intensity diffracted by the crystal analyzer(s) and + :math:`I_0` is the incident beam intensity. This ratio is + proportional to the absorption coefficient: + + .. math:: \mu(E) \propto I_f/I_0 + + The spectrometer uses Rowland circle geometry (Johann or Johansson + type). Multiple crystal analyzers may be arranged at different + horizontal angles around the sample to increase solid angle coverage. + + + + Official NeXus NXDL schema to which this file conforms. + + + + + + + The ratio :math:`I_f/I_0`, where :math:`I_f` is the + fluorescence intensity diffracted by the crystal analyzer(s) + and :math:`I_0` is the incident beam intensity. + + + + + + + + The emission line at which the HERFD spectrum is measured. + + + + + The emission energy at which the spectrometer is set. + + + + + Beamline coordinate system with the sample at the origin: + x along the beam, y horizontal, z opposite to gravity. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Should point to + ``transformations/beam``. + + + + + Two rotations relating the beamline frame to + the NeXus laboratory frame, plus direction + vectors labeling beam and gravity. + + + + Direction of the incident beam in the beamline + coordinate system. + + + + + + + + + + + + + + + Direction of gravity in the beamline coordinate + system. + + + + + + + + + + + + + + + Active rotation moving gravity from the + beamline direction (-z) to the NeXus direction (-y). + + + + + + + + + + + + + + + + + + + + Active rotation moving the beam from the + beamline direction (+x) to the NeXus direction (+z). + + + + + + + + + + + + + + Should point to ``.`` (the NeXus laboratory + frame). + + + + + + + + + The sample is at the origin of the beamline + coordinate system. Should point to + ``/entry/beamline_coordinate_system``. + + + + + + The incident X-ray beam. + + + Should point to + ``beam/transformations/beam_direction``. + + + + + + Beam direction in the beamline coordinate + system. The beam travels along +x. + + + + + + + + + Should point to + ``/entry/beamline_coordinate_system`` + or to ``/entry/sample``. + + + + + + + + + + + + + + + + + Detector measuring the incident beam intensity + :math:`I_0`, positioned upstream of the sample along + the beam direction. + + + + + + + + + Should point to + ``i0/transformations/i0_distance``. + + + + + + Distance from the sample to the I0 detector, + measured upstream along the beam (negative x + direction in the beamline frame). + + + + + + + + + + + + + + Should point to ``/entry/sample``. + + + + + + + + Crystal analyzer on the Rowland circle. For + multi-crystal spectrometers, use one group per + crystal (e.g. ``analyzer1``, ``analyzer2``). + + + + Type or material of the analyzer crystal + (Si, Ge, etc.). + + + + + Miller indices (hkl) values of the nominal + reflection. + + + + + + + + The spacing between crystal planes of the + reflection. + + + + + Bragg angle :math:`\theta_B` of the nominal + reflection. + + + + + Bending radius of the spherically bent crystal + analyzer. In Johann geometry this is :math:`2R_R` + (twice the Rowland radius). + + + + + Radius of the Rowland circle :math:`R_R`. The + sample, crystal center, and detector focus all + lie on this circle. + + + + + The energy bandwidth or resolution of the crystal + analyzer. + + + + + The type of crystal analyzer geometry. + + + + + + + + + Diameter of the crystal analyzer wafer. + + + + + Should point to the last transformation in the + chain, i.e. + ``transformations/analyzer_distance``. + + + + + Transformation chain placing the analyzer relative + to the sample: azimuthal angle, polar angle, + then distance. + + + + Sample-to-analyzer distance. + + + + + + + + + + + + + + + + + + + + Polar angle of the analyzer in the vertical + Rowland plane. Elevation from the horizontal + beam plane to the sample-analyzer direction. + + + + + + + + + + + + + + + + + + + + Azimuthal (horizontal) angle of the + spectrometer arm from the incident beam + direction. Rotation around the vertical + z-axis. Typically around 90 degrees to + minimize elastic scattering. + + + + + + + + + + + + + + Should point to ``/entry/sample``. + + + + + + + + Detector measuring the fluorescence intensity + :math:`I_f` diffracted by the crystal analyzer(s). + + + + + + + + + Should point to the last transformation in the + chain, i.e. + ``transformations/if_distance``. + + + + + Transformation chain placing the detector relative + to the sample: azimuthal angle, polar angle, + then distance. + + + + Distance from the sample to the detector. + + + + + + + + + + + + + + + + + + + + Polar angle of the detector in the vertical + Rowland plane. + + + + + + + + + + + + + + + + + + + + Azimuthal (horizontal) angle of the detector + from the incident beam direction. Should + match the analyzer azimuthal angle for + on-Rowland focusing. + + + + + + + + + + + + + + Should point to ``/entry/sample``. + + + + + + + + + Description of how :ref:`intensity + </NXxas/ENTRY/intensity-field>` was obtained from + the raw detector data (i0, if). + + + Name of the program used for processing. + + + Version of the program used for processing. + + + Date and time of processing. + + + + diff --git a/contributed_definitions/NXxas_pey.nxdl.xml b/contributed_definitions/NXxas_pey.nxdl.xml new file mode 100644 index 0000000000..f9338e572d --- /dev/null +++ b/contributed_definitions/NXxas_pey.nxdl.xml @@ -0,0 +1,109 @@ + + + + + + In partial electron yield (PEY), the XAS spectrum is measured by + collecting electrons above a certain kinetic energy threshold. A + retarding voltage (bias) is applied to discriminate against + low-energy secondary electrons, selecting only higher-energy Auger + or photoelectrons: + + .. math:: \mu(E) \propto I_{ey}/I_0 + + By selecting a specific energy range, PEY can enhance the surface + sensitivity and selectivity compared to total electron yield. + + The top-level :ref:`intensity </NXxas/ENTRY/intensity-field>` + field stores the ratio :math:`I_{ey}/I_0`. When the raw + detector data and processing steps are available, they can be stored + in the optional ``NXinstrument`` and ``NXprocess`` groups, + enabling full reproducibility of the data reduction. + + + + Official NeXus NXDL schema to which this file conforms. + + + + + + + The absorption coefficient :math:`\mu(E) \propto I_{ey}/I_0`, + where :math:`I_{ey}` is the partial electron yield signal + above the retarding voltage threshold. + + + + + + + + + Detector measuring the incident beam intensity + :math:`I_0`. + + + + + + + + + + Detector measuring the partial electron yield + :math:`I_{ey}`. + + + + + + + + + The retarding voltage (bias) applied to select + electrons above a kinetic energy threshold. + + + + + + + Description of how :ref:`intensity + </NXxas/ENTRY/intensity-field>` was obtained from + the raw detector data (i0, iey). + + + Name of the program used for processing. + + + Version of the program used for processing. + + + Date and time of processing. + + + + diff --git a/contributed_definitions/NXxas_pfy.nxdl.xml b/contributed_definitions/NXxas_pfy.nxdl.xml new file mode 100644 index 0000000000..c713545f24 --- /dev/null +++ b/contributed_definitions/NXxas_pfy.nxdl.xml @@ -0,0 +1,583 @@ + + + + + + + The symbol(s) listed here will be used below to coordinate datasets + with the same shape. + + + Number of energy data points + + + + Number of selected detector channels within the + emission energy window + + + + + Number of pixel rows in the region of interest (ROI) + on the grating-based spectrometer + + + + + Number of pixel columns in the region of interest (ROI) + on the grating-based spectrometer + + + + + In partial fluorescence yield (PFY), only a selected portion of the + fluorescence emission is detected, typically around a specific + fluorescence line of the absorbing element (e.g. :math:`K\alpha`). + Experimentally, this energy selectivity can be achieved in several ways: + + * **Energy-dispersive detector** (e.g. silicon-drift diode, + high-purity Ge detector, superconducting tunnel junction, etc.): + the detector bins photons by emission energy into channels; the + fluorescence line is isolated by selecting a channel range. + * **Grating spectrometer**: a diffraction grating disperses the + emitted photons by energy onto a 2D detector, providing + higher energy resolution. + + The top-level :ref:`intensity </NXxas/ENTRY/intensity-field>` + field stores the ratio :math:`I_f/I_0`, where :math:`I_f` is the + selected fluorescence intensity and :math:`I_0` is the incident beam + intensity. This ratio is proportional to the absorption coefficient: + + .. math:: \mu(E) \propto I_f/I_0 + + PFY may be affected by detector dead-time and self-absorption effects. + When the raw detector data and processing steps are available, they can be + stored in the optional ``NXinstrument``, ``NXcollection``, and + ``NXprocess`` groups, enabling full reproducibility of the data reduction. + + + + Official NeXus NXDL schema to which this file conforms. + + + + + + + The ratio :math:`I_f/I_0`, where :math:`I_f` is the selected + fluorescence intensity and :math:`I_0` is the incident beam + intensity. + + + + + + + + The emission line(s) selected for the partial fluorescence + yield measurement, whether via a channel range or a + grating-based spectrometer. + + + + + The lower and upper bounds :math:`[e_{min}, e_{max}]` of the + detected emission energy window. This is the energy range + over which fluorescence photons are accepted, whether + defined by a detector channel range or a spectrometer + region of interest. + + + + + + + + Beamline coordinate system with the sample at the origin: + x along the beam, y horizontal, z opposite to gravity. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Should point to + ``transformations/beam``. + + + + + Two rotations relating the beamline frame to + the NeXus laboratory frame, plus direction + vectors labeling beam and gravity. + + + + Direction of the incident beam in the beamline + coordinate system. + + + + + + + + + + + + + + + Direction of gravity in the beamline coordinate + system. + + + + + + + + + + + + + + + Active rotation moving gravity from the + beamline direction (-z) to the NeXus direction (-y). + + + + + + + + + + + + + + + + + + + + Active rotation moving the beam from the + beamline direction (+x) to the NeXus direction (+z). + + + + + + + + + + + + + + Should point to ``.`` (the NeXus laboratory + frame). + + + + + + + + + The sample is at the origin of the beamline + coordinate system. Should point to + ``/entry/beamline_coordinate_system``. + + + + + + The incident X-ray beam. + + + Should point to + ``beam/transformations/beam_direction``. + + + + + + Beam direction in the beamline coordinate + system. The beam travels along +x. + + + + + + + + + Should point to + ``/entry/beamline_coordinate_system`` + or to ``/entry/sample``. + + + + + + + + Detector measuring the incident beam intensity :math:`I_0`. + + + + + + + + + Should point to + ``i0/transformations/i0_distance``. + + + + + + Distance from the sample to the I0 detector, + measured upstream along the beam (negative x + direction in the beamline frame). + + + + + + + + + + + + + + Should point to ``/entry/sample``. + + + + + + + + Diffraction grating used to select the emission energy + in a grating-based spectrometer. Present only when a grating + spectrometer is used instead of an energy-dispersive + detector. + + The grating lies on the line connecting the sample and + the fluorescence detector (``if``): the azimuthal and + polar angles must therefore match those of + ``if/transformations``, and only the distance differs. + + + + Should point to the last transformation in the + chain, i.e. + ``transformations/grating_distance``. + + + + + Transformation chain placing the grating relative + to the sample. The azimuthal and polar angles must + be equal to those of the fluorescence detector + (``if``) to ensure colinearity. + + + + Distance from the sample to the grating along + the sample-to-detector direction. + + + + + + + + + + + + + + + + + + + + Polar (elevation) angle of the grating above + the horizontal beam plane. Must equal + ``if/transformations/if_polar_angle``. + + + + + + + + + + + + + + + + + + + + Azimuthal (horizontal) angle of the grating + from the incident beam direction. Must equal + ``if/transformations/if_azimuthal_angle``. + + + + + + + + + + + + + + Should point to ``/entry/sample``. + + + + + + + + Fluorescence detector measuring :math:`I_f`. When using an + energy-dispersive detector, ``data`` holds the intensity + integrated over the selected detector channels. When using a + grating-based spectrometer, ``data`` holds the ROI integrated + on the spectrometer detector. In both cases the data may be + corrected for dead-time and self-absorption. + + + + + + + + Detector dead time per energy point. + + + + + + + Detector live time per energy point. + + + + + + + + Should point to the last transformation in the + chain, i.e. + ``transformations/if_distance``. + + + + + Transformation chain placing the fluorescence + detector relative to the sample: azimuthal angle, + polar angle, then distance. These angles are + required to compute self-absorption corrections. + + + + Distance from the sample to the fluorescence + detector (or spectrometer entrance). + + + + + + + + + + + + + + + + + + + + Polar (elevation) angle of the detector above + the horizontal beam plane. A value of 0 means + the detector is in the horizontal plane; 90 + degrees means it is directly above the sample. + + + + + + + + + + + + + + + + + + + + Azimuthal (horizontal) angle of the detector + from the incident beam direction. Rotation + around the vertical z-axis. Typically around + 90 degrees to minimize elastic scattering + background. + + + + + + + + + + + + + + Should point to ``/entry/sample``. + + + + + + + + + Raw data as written by the acquisition software, + preserved without modification to allow independent + reprocessing. Either ``detector_channels`` or ``detector_roi`` + will be present depending on the detector type used; + not both simultaneously. + + + + Raw channel counts per incident energy point for the + selected channels of an energy-dispersive detector. + Only the channels within the emission energy window + are stored. Axis 0 is the energy scan axis; axis 1 + enumerates the selected channels. Each value is the + count in that channel for one energy point. + + + + + + + + + Raw detector image within the ROI per incident energy point. + Axis 0 is the energy scan axis; axes 1 and 2 span the 2D + pixel grid of the downstream detector (nY rows, nX columns). + + + + + + + + + + + Description of how :ref:`intensity + </NXxas/ENTRY/intensity-field>` was obtained from + the raw detector data (i0, if), including any applied correction, + e.g., dead-time or self-absorption. + + + Name of the program used for processing. + + + Version of the program used for processing. + + + Date and time of processing. + + + + diff --git a/contributed_definitions/NXxas_tey.nxdl.xml b/contributed_definitions/NXxas_tey.nxdl.xml new file mode 100644 index 0000000000..3fea61a58e --- /dev/null +++ b/contributed_definitions/NXxas_tey.nxdl.xml @@ -0,0 +1,102 @@ + + + + + + In total electron yield (TEY), the XAS spectrum is measured by + collecting all secondary electrons emitted from the sample surface. + The drain current or total electron current :math:`I_{ey}` is + proportional to the absorption coefficient: + + .. math:: \mu(E) \propto I_{ey}/I_0 + + TEY is inherently surface-sensitive because electrons are readily + absorbed by most materials, limiting the probing depth to a few + nanometers. + + The top-level :ref:`intensity </NXxas/ENTRY/intensity-field>` + field stores the ratio :math:`I_{ey}/I_0`. When the raw + detector data and processing steps are available, they can be stored + in the optional ``NXinstrument`` and ``NXprocess`` groups, + enabling full reproducibility of the data reduction. + + + + Official NeXus NXDL schema to which this file conforms. + + + + + + + The absorption coefficient :math:`\mu(E) \propto I_{ey}/I_0`, + where :math:`I_{ey}` is the total electron yield signal. + + + + + + + + + Detector measuring the incident beam intensity + :math:`I_0`. + + + + + + + + + + Detector measuring the total electron yield + :math:`I_{ey}` (drain current). + + + + + + + + + + + Description of how :ref:`intensity + </NXxas/ENTRY/intensity-field>` was obtained from + the raw detector data (i0, iey). + + + Name of the program used for processing. + + + Version of the program used for processing. + + + Date and time of processing. + + + + diff --git a/contributed_definitions/NXxas_tfy.nxdl.xml b/contributed_definitions/NXxas_tfy.nxdl.xml new file mode 100644 index 0000000000..732b4ac64e --- /dev/null +++ b/contributed_definitions/NXxas_tfy.nxdl.xml @@ -0,0 +1,100 @@ + + + + + + In total fluorescence yield (TFY), the absorption coefficient + :math:`\mu(E)` is proportional to the ratio of the total fluorescence + intensity :math:`I_f` and the incident beam intensity :math:`I_0`: + + .. math:: \mu(E) \propto I_f/I_0 + + The total fluorescence signal is measured with a detector such as a + photodiode that collects all emitted fluorescence without energy + discrimination. + + The top-level :ref:`intensity </NXxas/ENTRY/intensity-field>` + field contains the processed absorption coefficient. When the raw + detector data and processing steps are available, they can be stored + in the optional ``NXinstrument`` and ``NXprocess`` groups, + enabling full reproducibility of the data reduction. + + + + Official NeXus NXDL schema to which this file conforms. + + + + + + + The absorption coefficient :math:`\mu(E) \propto I_f/I_0`. + + + + + + + + + Detector measuring the incident beam intensity + :math:`I_0`. + + + + + + + + + + Detector measuring the total fluorescence emission + :math:`I_f`. + + + + + + + + + + + Description of how :ref:`intensity + </NXxas/ENTRY/intensity-field>` was obtained from + the raw detector data (i0, if). + + + Name of the program used for processing. + + + Version of the program used for processing. + + + Date and time of processing. + + + + diff --git a/applications/NXxas_new.nxdl.xml b/contributed_definitions/NXxas_trans.nxdl.xml similarity index 52% rename from applications/NXxas_new.nxdl.xml rename to contributed_definitions/NXxas_trans.nxdl.xml index 1c2df512ee..3908195251 100644 --- a/applications/NXxas_new.nxdl.xml +++ b/contributed_definitions/NXxas_trans.nxdl.xml @@ -2,9 +2,9 @@ - - - - The symbol(s) listed here will be used below to coordinate datasets with the same shape. - - - Number of energy data points - - - Number of electronic transitions - - - This is an application definition for X-ray absorption spectroscopy. + In transmission, the linear attenuation coefficient or absorption + coefficient :math:`\mu(E)` is given by the Beer-Lambert law: + + .. math:: \mu(E)t = -\ln(I/I_0) + + where :math:`I` is the intensity of the transmitted beam, :math:`I_0` is + the intensity of the incident beam, and :math:`t` is the thickness of the + sample. + + The top-level :ref:`intensity </NXxas/ENTRY/intensity-field>` + field contains the processed absorption coefficient. When the raw + detector data and processing steps are available, they can be stored + in the optional ``NXinstrument`` and ``NXprocess`` groups, + enabling full reproducibility of the data reduction. - Official NeXus NXDL schema to which this file conforms. TODO: replace NXxas + Official NeXus NXDL schema to which this file conforms. - + - - - - - Excited element - - - Absorption edge - - - Specify if the data commes from a calculation - - - TODO - - - - - TODO - - - - - - TODO + + The absorption coefficient :math:`\mu(E)t = -\ln(I/I_0)`. + - - - Descriptive name of the sample - - - - - Description on how :ref:`energy </NXxas_new/ENTRY/energy-field>` - and :ref:`intensity </NXxas_new/ENTRY/intensity-field>` were obtained - from the raw data. - - @@ -103,12 +71,15 @@ - + - spacing between crystal planes of the reflection + The spacing between crystal planes of the reflection - Type or material of monochromating substance (Si, Ge, Multilayer). + + Type or material of monochromating substance + (Si, Ge, Multilayer). + Miller indices (hkl) values of nominal reflection @@ -118,45 +89,57 @@ - + + + Detector measuring the incident beam intensity + :math:`I_0`. + - + + + Detector measuring the transmitted beam intensity + :math:`I`. + - - - XAS intensity versus energy plot - - - - - - Table like data structure common in the XAS domain. + + + Detector measuring the reference intensity + :math:`I_{ref}`, placed after a reference sample + (typically a metal foil). + - - - - - - - - - - + + + Description of how :ref:`intensity + </NXxas/ENTRY/intensity-field>` was obtained from the raw + detector data (i0, itrans, and iref). When present, it allows a + third party to fully reproduce the data reduction. + + + Name of the program used for processing. + + + Version of the program used for processing. + + + Date and time of processing. + +