Skip to content

Commit

Permalink
#243 adding correctors
Browse files Browse the repository at this point in the history
# Conflicts:
#	contributed_definitions/NXaperture_em.nxdl.xml
#	contributed_definitions/NXcomponent_em.nxdl.xml
#	contributed_definitions/NXcorrector_cs.nxdl.xml
#	contributed_definitions/NXscanbox_em.nxdl.xml
#	contributed_definitions/nyaml/NXaperture_em.yaml
#	contributed_definitions/nyaml/NXcorrector_cs.yaml
#	contributed_definitions/nyaml/NXlens_em.yaml
#	contributed_definitions/nyaml/NXscanbox_em.yaml
  • Loading branch information
mkuehbach authored and lukaspie committed Sep 24, 2024
1 parent 6c13524 commit da09ead
Show file tree
Hide file tree
Showing 8 changed files with 1,091 additions and 94 deletions.
100 changes: 32 additions & 68 deletions base_classes/NXlens_em.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<!--
more consolidation to harvest from a generic component base class
with other research fields (MPES, XPS, OPT) could be useful-->
<definition xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="base" type="group" name="NXlens_em" extends="NXobject" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<definition xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="base" type="group" name="NXlens_em" extends="NXcomponent_em" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<doc>
Base class for an electro-magnetic lens or a compound lens.

Expand All @@ -35,40 +35,32 @@ with other research fields (MPES, XPS, OPT) could be useful-->
For details of electro-magnetic lenses in the literature
see e.g. `L. Reimer &lt;https://doi.org/10.1007/978-3-540-38967-5&gt;`_
</doc>
<field name="type" type="NX_CHAR">
<doc>
Qualitative type of lens with respect to the number of pole pieces.
</doc>
<enumeration>
<item value="single"/>
<item value="double"/>
<item value="quadrupole"/>
<item value="hexapole"/>
<item value="octupole"/>
</enumeration>
</field>
<!--purpose(NX_CHAR):
enumeration: [c1, c2, diffraction, etc.]-->
<field name="name" type="NX_CHAR">
<!--user perspective-->
<field name="value" type="NX_NUMBER" units="NX_ANY">
<doc>
Given name, alias, colloquial, or short name for the lens.
For manufacturer names and identifiers use respective manufacturer fields.
Descriptor for the lens excitation when the exact technical details
are unknown or not directly controllable as the control software of
the microscope does not enable or was not configured to display these
values (for end users).

Although this value does not document the exact physical voltage or
excitation, it can still give useful context to reproduce the lens
setting, provided a properly working instrument and software sets the lens
into a similar state to the technical level possible when no more
information is available physically or accessible legally.
</doc>
</field>
<!--manufacturer_name:
doc: |
Name of the manufacturer who built/constructed the lens.-->
<group type="NXfabrication"/>
<!--model:
doc: |
Hardware name, hash identifier, or serial number that was given by the
manufacturer to identify the lens.-->
<field name="description" type="NX_CHAR">
<field name="mode" type="NX_CHAR">
<doc>
Ideally an identifier, persistent link, or free text which
gives further details about the lens.
Descriptor for the operation mode of the lens when other details are not
directly controllable as the control software of the microscope
does not enable or is not configured to display these values.

Like value, the mode can only be interpreted for a specific microscope
but can still be useful to guide users as to how to repeat the measurement.
</doc>
</field>
<!--control level perspective-->
<field name="voltage" type="NX_NUMBER" units="NX_VOLTAGE">
<doc>
Excitation voltage of the lens.
Expand All @@ -82,48 +74,20 @@ with other research fields (MPES, XPS, OPT) could be useful-->
Excitation current of the lens.

For dipoles it is a single number.
For higher order multipoles, it is an array.
</doc>
</field>
<field name="value" type="NX_NUMBER" units="NX_ANY">
<doc>
This field should be used when the exact voltage or current of the lens is not
directly controllable as the control software of the microscope does not enable
or was not configured to display these values (for end users).

In this case this value field should be used and the value
from the control software stored as is.

Although this value does not document the exact physical voltage or
excitation, it can still give useful context to reproduce the lens setting,
provided a properly working instrument and software sets the lens
into a similar state to the technical level possible when no more
information is available physically or accessible legally.
For higher-order multipoles, it is an array.
</doc>
</field>
<field name="mode" type="NX_CHAR">
<!--technical design perspective-->
<field name="type" type="NX_CHAR">
<doc>
This field should be used when the exact operation mode of the lens
is not directly controllable as the control software of the microscope
does not enable or was not configured to display these values.

Like value the mode can only be interpreted for a specific microscope
but can still be useful to guide users as to how to repeat the measurement.
Qualitative type of lens with respect to the number of pole pieces.
</doc>
<enumeration>
<item value="single"/>
<item value="double"/>
<item value="quadrupole"/>
<item value="hexapole"/>
<item value="octupole"/>
</enumeration>
</field>
<attribute name="depends_on" type="NX_CHAR">
<doc>
Specifies the position of the lens by pointing to the last transformation in the
transformation chain in the NXtransformations group.
</doc>
</attribute>
<group type="NXtransformations">
<doc>
Collection of axis-based translations and rotations to describe the
location and geometry of the lens as a component in the instrument.
Typically, the components of a system should all be related relative to
each other and only one component should relate to the reference
coordinate system.
</doc>
</group>
</definition>
4 changes: 2 additions & 2 deletions contributed_definitions/NXaperture_em.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<!--
# NeXus - Neutron and X-ray Common Data Format
#
#
# Copyright (C) 2014-2024 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
Expand Down
62 changes: 62 additions & 0 deletions contributed_definitions/NXcorrector_ax.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?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) 2014-2024 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 xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="base" type="group" name="NXcorrector_ax" extends="NXcomponent_em" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<doc>
Base class for a corrector reshaping an ellipse-shaped electron beam to a circular one.

* `L. Reimer 1998, Springer, 1998 &lt;https://dx.doi.org/10.1007/978-3-540-3896&gt;`_
* `JEOL Electron Microscopy Glossary &lt;https://www.jeol.com/words/semterms/20201020.111014.php#gsc.tab=0&gt;`_

Stigmator is an exact synonym.
</doc>
<!--user perspective-->
<field name="applied" type="NX_BOOLEAN">
<doc>
Was the corrector used?
</doc>
</field>
<field name="value_x" type="NX_NUMBER" units="NX_ANY">
<doc>
Descriptor for the correction strength along the first direction when
exact technical details are unknown or not directly controllable as the
control software of the microscope does not enable or was not configured
to display these values (for end users).
</doc>
</field>
<field name="value_y" type="NX_NUMBER">
<doc>
Descriptor for the correction strength along the second direction when
exact technical details are unknown or not directly controllable as the
control software of the microscope does not enable or was not configured
to display these values (for end users).
</doc>
</field>
<!--control level perspective
strength(NX_NUMBER):
axial component(NX_NUMBER):
technical design perspective-->
<group type="NXlens_em"/>
<!--(NXaperture_em):
(NXdeflector):-->
</definition>
51 changes: 51 additions & 0 deletions contributed_definitions/NXcorrector_cc.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?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) 2014-2024 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 xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="base" type="group" name="NXcorrector_cc" extends="NXcomponent_em" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<doc>
Base class for corrector reducing chromatic aberrations in an electron microscope.

Examples are Wien or Omega filter.
</doc>
<!--user perspective-->
<field name="applied" type="NX_BOOLEAN">
<doc>
Was the corrector used?
</doc>
</field>
<field name="type" type="NX_CHAR">
<doc>
Qualitative type of the corrector.
</doc>
<enumeration>
<item value="wien_filter"/>
<item value="omega_filter"/>
</enumeration>
</field>
<!--control level perspective
technical components of the corrector-->
<group type="NXlens_em"/>
<group type="NXaperture_em"/>
<group type="NXdeflector"/>
<group type="NXcrystal"/>
</definition>
Loading

0 comments on commit da09ead

Please sign in to comment.