Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

em proposal #996

Merged
merged 5 commits into from
Jun 21, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions contributed_definitions/NXaberration.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<definition category="base" extends="NXobject" name="NXaberration" type="group" 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>
Models for aberrations of electro-magnetic lenses in electron microscopy.

The notation follows `O. Krivanek et al. (1999) &lt;https://doi.org/10.1016/S0304-3991(99)00013-3&gt;`_
and `O. Krivanek et al. (2003) &lt;https://doi.org/10.1016/S0304-3991(03)00090-1&gt;`_
See also `S. J. Pennycock and P. D. Nellist &lt;https://doi.org/10.1007/978-1-4419-7200-2&gt;`_ (page 44ff, and page 118ff)
for further details, additional literature, and the unit of the coefficients.
Consult Table 7-2 of Ibid. publication on how to convert between
conventions of different groups/vendors.
</doc>
<field name="c_1_0" type="NX_FLOAT" units="NX_LENGTH">
<doc>
Defocus
</doc>
</field>
<field name="c_1_2_a" type="NX_FLOAT" units="NX_LENGTH">
<doc>
Two-fold astigmatism
</doc>
</field>
<field name="c_1_2_b" type="NX_FLOAT" units="NX_LENGTH">
<doc>
Two-fold astigmatism
</doc>
</field>
<field name="c_2_1_a" type="NX_FLOAT" units="NX_LENGTH">
<doc>
Second-order axial coma
</doc>
</field>
<field name="c_2_1_b" type="NX_FLOAT" units="NX_LENGTH">
<doc>
Second-order axial coma
</doc>
</field>
<field name="c_2_3_a" type="NX_FLOAT" units="NX_LENGTH">
<doc>
Threefold astigmatism
</doc>
</field>
<field name="c_2_3_b" type="NX_FLOAT" units="NX_LENGTH">
<doc>
Threefold astigmatism
</doc>
</field>
<field name="c_3_0" type="NX_FLOAT" units="NX_LENGTH">
<doc>
Spherical aberration
</doc>
</field>
<field name="c_3_2_a" type="NX_FLOAT" units="NX_LENGTH">
<doc>
Star aberration
</doc>
</field>
<field name="c_3_2_b" type="NX_FLOAT" units="NX_LENGTH">
<doc>
Star aberration
</doc>
</field>
<field name="c_3_4_a" type="NX_FLOAT" units="NX_LENGTH">
<doc>
Fourfold astigmatism
</doc>
</field>
<field name="c_3_4_b" type="NX_FLOAT" units="NX_LENGTH">
<doc>
Fourfold astigmatism
</doc>
</field>
<field name="c_5_0" type="NX_FLOAT" units="NX_LENGTH">
<doc>
Fifth-order spherical aberration
</doc>
</field>
</definition>
37 changes: 37 additions & 0 deletions contributed_definitions/NXaperture_em.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<definition category="base" extends="NXobject" name="NXaperture_em" type="group" 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>
Details of an individual aperture for electron beams.
</doc>
<field name="name" type="NX_CHAR">
<doc>
Given name/alias of the aperture.
</doc>
</field>
<group type="NXmanufacturer"/>
<field name="value" type="NX_NUMBER" units="NX_ANY">
<doc>
Relevant value from the control software.

This is not always just the diameter of (not even in the case)
of a circular aperture. Usually it is a mode setting value which
is selected in the control software.
Which settings are behind the value should be defined
for now in the description field, if these are known
in more detail.
</doc>
</field>
<field name="description" type="NX_CHAR">
<doc>
Ideally, a (globally) unique persistent identifier, link, or text to a
resource which gives further details. Alternatively a free-text field.
</doc>
</field>
<group type="NXtransformations">
<doc>
Affine transformation which detail the arrangement in the
microscope relative to the optical axis and beam path.
</doc>
</group>
</definition>
19 changes: 19 additions & 0 deletions contributed_definitions/NXchamber.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<definition category="base" extends="NXobject" name="NXchamber" type="group" 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>
Component of an instrument to store or place objects and specimens.
</doc>
<field name="name" type="NX_CHAR">
<doc>
Given name/alias.
</doc>
</field>
<group type="NXmanufacturer"/>
<field name="description" type="NX_CHAR">
<doc>
Free-text field for describing details about the chamber.
For example out of which material was the chamber built.
</doc>
</field>
</definition>
62 changes: 62 additions & 0 deletions contributed_definitions/NXcoordinate_system_set.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<definition category="base" extends="NXobject" name="NXcoordinate_system_set" type="group" 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>
Container to hold different coordinate systems conventions.

It is the purpose of this base class to define these conventions and
offer a place to store mappings between different coordinate systems
which are relevant for the interpretation of the data described
by the application definition and base class instances.

For each Cartesian coordinate system users should use a set of
NXtransformations:

* These should define the three base vectors.
* The location of the origin.
* The affine transformations which bring each axis of this coordinate system
into registration with the McStas coordinate system.
* Equally, affine transformations should be given for the inverse mapping.

As an example one may take an experiment or computer simulation where
there is a laboratory (lab) coordinate system, a sample/specimen coordinate
system, a crystal coordinate system, and additional coordinate systems,
which are eventually attached to components of the instrument.

If no additional transformation is specified in this group or if an
instance of an NXcoordinate_system_set is absent it should be assumed
the so-called McStas coordinate system is used.

Many application definitions in NeXus refer to this `McStas &lt;https://mailman2.mcstas.org/pipermail/mcstas-users/2021q2/001431.html&gt;`_ coordinate system.
This is a Cartesian coordinate system whose z axis points along the neutron
propagation axis. The systems y axis is vertical up, while the x axis points
left when looking along the z-axis. Thus, McStas is a right-handed coordinate system.

Within each NXtransformations a depends_on section is required. The depends_on
field specifies if the coordinate system is the root/reference
(which is indicated by writing &quot;.&quot; in the depends_on section.)
</doc>
<group type="NXtransformations">
<doc>
A group of transformations which specify:

* Three base vectors of the coordinate system.
* Origin of the coordinate system.
* A depends_on keyword. Its value can be &quot;.&quot; or the name of an
NXtransformations instance which needs to exist in the
NXcoordinate_system_set instance.
* If the coordinate system is the reference one it has to be named
reference.

In case of having more than one NXtransformations there has to be for
each additional coordinate system, i.e. the one not the reference:

* A set of translations and rotations which map each base vector to the reference.
* A set of translations and rotations which map each reference base vector
to the coordinate system.

The NXtransformations for these mappings need to be formatted
according to the descriptions in NXtransformations.
</doc>
</group>
</definition>
40 changes: 40 additions & 0 deletions contributed_definitions/NXcorrector_cs.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<definition category="base" extends="NXobject" name="NXcorrector_cs" type="group" 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>
Corrector for aberrations in an electron microscope.

Different vendors use a different naming schemes for aberration coefficients.
It is the users responsibility to map to the best matching values.

In transmission electron microscopes the spherical aberration corrector is
a component that is controlled via instructing the microscope to achieve
set point values. The corrector is composed of multiple lenses and other
parts with vendor-specific details which are often undisclosed.

In the case of Nion Co. microscopes the coefficients of the corrector can be
retrieved via NionSwift, which is why currently the Nion convention for the
aberration coefficients is used.
</doc>
<field name="applied" type="NX_BOOLEAN">
<doc>
Was the corrector used?
</doc>
</field>
<field name="name" type="NX_CHAR">
<doc>
Given name/alias.
</doc>
</field>
<group type="NXmanufacturer"/>
<field name="description" type="NX_CHAR">
<doc>
Ideally, a (globally) unique persistent identifier, link,
or text to a resource which gives further details. If this does not exist
a free-text field to report further details about the corrector.
</doc>
</field>
<group type="NXaberration"/>
<group type="NXlens_em"/>
<group type="NXtransformations"/>
</definition>
82 changes: 82 additions & 0 deletions contributed_definitions/NXebeam_column.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<definition category="base" extends="NXobject" name="NXebeam_column" type="group" 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>
Container for components to form a controlled electron beam.
</doc>
<group type="NXmanufacturer"/>
<group name="electron_gun" type="NXsource">
<doc>
The source which creates the electron beam.
</doc>
<field name="name" type="NX_CHAR">
<doc>
Given name/alias.
</doc>
</field>
<group type="NXmanufacturer"/>
<field name="voltage" type="NX_FLOAT" units="NX_VOLTAGE">
<doc>
Voltage relevant to compute the energy of the electrons
immediately after they left the gun.
</doc>
</field>
<field name="probe" type="NX_CHAR">
<doc>
Type of radiation.
</doc>
<enumeration>
<item value="electron"/>
</enumeration>
</field>
<field name="emitter_type" type="NX_CHAR">
<doc>
Emitter type used to create the beam.

If the emitter type is other, give further details
in the description field.
</doc>
<enumeration>
<item value="filament"/>
<item value="schottky"/>
<item value="cold_cathode_field_emitter"/>
<item value="other"/>
</enumeration>
</field>
<field name="emitter_material" type="NX_CHAR">
<doc>
Material of which the emitter is build, e.g. the filament material.
</doc>
</field>
<field name="description" type="NX_CHAR">
<doc>
Ideally, a (globally) unique persistent identifier, link,
or text to a resource which gives further details.
</doc>
</field>
<group type="NXtransformations">
<doc>
Affine transformation which detail the arrangement in the
microscope relative to the optical axis and beam path.
</doc>
</group>
</group>
<group type="NXaperture_em"/>
<group type="NXlens_em"/>
<group type="NXcorrector_cs"/>
<group type="NXstage_lab"/>
<group type="NXsensor">
<doc>
A sensor used to monitor an external or internal condition.
</doc>
</group>
<group type="NXbeam">
<doc>
Individual ocharacterization results for the position, shape,
and characteristics of the electron beam.

NXtransformations should be used to specify the location
of the position at which the beam was probed.
</doc>
</group>
</definition>
Loading