Skip to content

Commit

Permalink
first refactored NXxas template
Browse files Browse the repository at this point in the history
  • Loading branch information
woutdenolf committed Feb 10, 2024
1 parent e1351c2 commit 17850c6
Show file tree
Hide file tree
Showing 3 changed files with 462 additions and 0 deletions.
230 changes: 230 additions & 0 deletions applications/NXxas_new.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,230 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl" ?>
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2008-2022 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# For further information, see http://www.nexusformat.org
-->
<definition
name="NXxas_new"
extends="NXobject"
type="group"
category="application"
xmlns="http://definition.nexusformat.org/nxdl/3.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd "
>
<symbols>
<doc>
The symbol(s) listed here will be used below to coordinate datasets with the same shape.
</doc>
<symbol name="nEnergy">
<doc>Number of energy data points</doc>
</symbol>
<symbol name="nTransitions">
<doc>Number of electronic transitions</doc>
</symbol>
</symbols>
<doc>
This is an application definition for X-ray absorption spectroscopy.
</doc>
<group type="NXentry">
<field name="definition">
<doc> Official NeXus NXDL schema to which this file conforms. TODO: replace NXxas </doc>
<enumeration>
<item value="NXxas_new"></item>
</enumeration>
</field>
<field name="mode" type="NX_CHAR">
<doc></doc>
<enumeration>
<item value="transmission">
<doc>
TODO
</doc>
</item>
<item value="fluorescence yield">
<doc>
TODO total or partial fluorescence yield
</doc>
</item>
<item value="herfd">
<doc>
TODO high energy resolution fluorescence detected
</doc>
</item>
<item value="electron yield">
<doc>
TODO total or partial electron yield
</doc>
</item>
<item value="luminescence">
<doc>
TODO
</doc>
</item>
<item value="calculated">
<doc>
TODO
</doc>
</item>
<item value="x-ray Raman">
<doc>
TODO
</doc>
</item>
<item value="electron energy loss">
<doc>
TODO
</doc>
</item>
<item value="dafs">
<doc>
TODO
</doc>
</item>
<item value="other">
<doc>
TODO
</doc>
</item>
</enumeration>
</field>
<group type="NXelement" name="element">
<doc>Excited element</doc>
<field name="symbol"></field>
</group>
<group type="NXelectron_level" name="absorption_edge">
<doc>Excited electron level</doc>
<field name="name"></field>
</group>
<field name="emission_line" type="NX_CHAR" optional="true">
<doc>
Emission lines relevant when :ref:`mode &lt;/NXxas_new/ENTRY/mode-field&gt;` is
`fluorescence yield` or `herfd`.

The emission lines are described as a list of names of the form
*"INITIAL-FINAL"* where *INITAL* and *FINAL* are electron levels
as listed for :ref:`here &lt;/NXelectron_level/name-field&gt;`.
</doc>
<dimensions rank="1">
<dim index="1" value="nTransitions"/>
</dimensions>
</field>
<field name="energy" type="NX_FLOAT" units="NX_ENERGY">
<doc>TODO</doc>
<dimensions rank="1">
<dim index="1" value="nEnergy" />
</dimensions>
</field>
<field name="intensity" type="NX_FLOAT" units="NX_ANY">
<doc>TODO</doc>
<dimensions rank="1">
<dim index="1" value="nEnergy" />
</dimensions>
</field>
<field name="intensity_errors" type="NX_FLOAT" units="NX_ANY">
<doc>TODO</doc>
<dimensions rank="1">
<dim index="1" value="nEnergy" />
</dimensions>
</field>
<group type="NXsample">
<field name="name">
<doc>Descriptive name of the sample</doc>
</field>
</group>
<group type="NXprocess" optional="true">
<doc>
Description on how :ref:`energy &lt;/NXxas_new/ENTRY/energy-field&gt;`
and :ref:`intensity &lt;/NXxas_new/ENTRY/intensity-field&gt;` were obtained
from the raw data.
</doc>
</group>
<group type="NXinstrument" optional="true">
<group type="NXsource">
<field name="type"/>
<field name="name"/>
<field name="probe">
<enumeration>
<item value="x-ray"/>
</enumeration>
</field>
</group>
<group type="NXmonochromator" name="monochromator" optional="true">
<field name="energy" type="NX_FLOAT" units="NX_ENERGY" optional="true">
<dimensions rank="1">
<dim index="1" value="nEnergy" />
</dimensions>
</field>
<group type="NXcrystal" name ="crystal" optional="true">
<field name="d_spacing" type="NX_FLOAT" units="NX_LENGTH">
<doc>spacing between crystal planes of the reflection</doc>
</field>
<field name="type">
<doc>Type or material of monochromating substance (Si, Ge, Multilayer).</doc>
</field>
<field name="reflection" type="NX_INT" units="NX_UNITLESS">
<doc>Miller indices (hkl) values of nominal reflection</doc>
<dimensions><dim index="1" value="3"/></dimensions>
</field>
</group>
</group>
<group type="NXdetector" minOccurs="0" maxOccurs="unbounded">
<field name="data" type="NX_NUMBER">
<dimensions rank="1">
<dim index="1" value="nEnergy" />
</dimensions>
</field>
</group>
<group type="NXdetector" name="i0" optional="true">
<field name="data" type="NX_NUMBER">
<dimensions rank="1">
<dim index="1" value="nEnergy" />
</dimensions>
</field>
</group>
</group>
<group type="NXdata" optional="true">
<doc>XAS intensity versus energy plot</doc>
<link name="energy" target="/NXentry/energy"/>
<link name="intensity" target="/NXentry/intensity"/>
</group>
<group type="NXCollection" optional="true">
<group type="NXdata" optional="true">
<doc>Table like data structure common in the XAS domain.</doc>
<field name="data" type="NX_NUMBER">
<dimensions rank="2">
<dim index="1" value="nChan" />
<dim index="2" value="nEnergy" />
</dimensions>
</field>
<field name="columns" type="NX_CHAR">
<dimensions rank="1">
<dim index="1" value="nEnergy" />
</dimensions>
</field>
<group type="NXuser" name="data_collector" optional="true">
<field name="name"></field>
<field name="orcid"></field>
</group>
</group>
</group>
</group>
</definition>
61 changes: 61 additions & 0 deletions base_classes/NXelectron_level.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl" ?>
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2008-2022 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# For further information, see http://www.nexusformat.org
-->
<definition
name="NXelectron_level"
type="group"
extends="NXobject"
category="base"
xmlns="http://definition.nexusformat.org/nxdl/3.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd"
>
<doc>TODO ??? levels of electrons in atoms.</doc>
<field name="name" type="NX_CHAR" optional="false">
<doc>
TODO Name of the atomic orbital in IUPAC or X-ray notation.

The corresponding atomic notation *nlj* is also given, where *n* the principal quantum number,
*l* the orbital angular momentum quantum number (expressed with letters s, p, d, ...) and *j = l + s*
(*s=±½* the spin quantum number).
</doc>
<enumeration>
<item value="K1"> <doc>1s1/2</doc> </item>
<item value="L1"> <doc>2s1/2</doc> </item>
<item value="L2"> <doc>2p1/2</doc> </item>
<item value="L3"> <doc>2p3/2</doc> </item>
<item value="M1"> <doc>3s1/2</doc> </item>
<item value="M2"> <doc>3p1/2</doc> </item>
<item value="M3"> <doc>3p3/2</doc> </item>
<item value="M4"> <doc>3d3/2</doc> </item>
<item value="M5"> <doc>3d5/2</doc> </item>
<item value="N1"> <doc>4s1/2</doc> </item>
<item value="N2"> <doc>4p1/2</doc> </item>
<item value="N3"> <doc>4p3/2</doc> </item>
<item value="N4"> <doc>4d3/2</doc> </item>
<item value="N5"> <doc>4d5/2</doc> </item>
<item value="N6"> <doc>4f5/2</doc> </item>
<item value="N7"> <doc>4f7/2</doc> </item>
</enumeration>
</field>
</definition>
Loading

0 comments on commit 17850c6

Please sign in to comment.