Skip to content

Commit

Permalink
Add new application definition for PEEM experiments
Browse files Browse the repository at this point in the history
This extends NXmpes and adds some new groups and fields and also adjusts some existing fields' classes
  • Loading branch information
PeterC-DLS committed Jan 15, 2024
1 parent 7977c7e commit 228a4c6
Show file tree
Hide file tree
Showing 2 changed files with 315 additions and 0 deletions.
201 changes: 201 additions & 0 deletions contributed_definitions/NXmpes_peem.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
<?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-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 xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="application" type="group" extends="NXmpes" name="NXmpes_peem" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<doc>
This is a general application definition for a photo-electron emission or low
energy electron microscopy/diffraction experiment.
</doc>
<group type="NXentry">
<field name="definition">
<attribute name="version" />
<enumeration>
<item value="NXmpes_peem" />
</enumeration>
</field>
<group type="NXmonitor" recommended="true" />
<group type="NXinstrument">
<group type="NXinsertion_device" optional="true" />
<group type="NXmonochromator" recommended="true" />
<group type="NXbeam" name="beam_probe" optional="true">
<attribute name="flux" />
<field name="incident_energy" type="NX_FLOAT" />
<field name="incident_polarization_stokes" type="NX_NUMBER" />
<field name="depends_on" />
<group type="NXtransformations">
<group name="direction" type="NX_number">
<doc>
default is [0,0,1]
</doc>
</group>
<field name="reference_plane" type="NX_NUMBER">
<doc>
defined as normal to the plane used to measure azimuth. Default is [0,1,0]
through the origin
</doc>
</field>
</group>
</group>
<group type="NXoptical_system_em">
<field name="field_of_view" type="NX_FLOAT">
<doc>
One or two values for size of image on sample or in another space along slow and
fast pixel dimensions.
</doc>
<attribute name="units" />
</field>
<field name="working_distance" type="NX_FLOAT" />
<field name="magnification" type="NX_FLOAT" />
</group>
<group type="NXelectronanalyser">
<group type="NXcollectioncolumn">
<field name="scheme">
<doc>
Scheme of the electron collection column.
</doc>
<enumeration>
<item value="standard" />
<item value="angular dispersive" />
<item value="selective area" />
<item value="deflector" />
<item value="PEEM" />
<item value="PEEM dark-field" />
<item value="LEEM" />
<item value="LEEM dark-field" />
<item value="LEED" />
<item value="dispersive plane" />
<item value="momentum microscope" />
</enumeration>
</field>
<field name="mode" recommended="true">
<doc>
Labelling of the lens setting in use
</doc>
</field>
<field name="projection">
<doc>
The space projected in the angularly dispersive direction
</doc>
<enumeration>
<item value="real" />
<item value="reciprocal" />
<item value="energy" />
</enumeration>
</field>
<group name="extractor_voltage" type="NXlens_em" />
<group name="objective_lens" type="NXlens_em">
<doc>
list of electromagnetic lenses of the microscope column.
</doc>
</group>
</group>
<!--other EM lenses in column-->
<group type="NXebeam_column" name="electron_gun" optional="true">
<group name="field_aperture" type="NXaperture_em" />
<group name="beam" type="NXbeam" />
</group>
<group type="NXenergydispersion" optional="true">
<group name="entrance_slit" type="NXaperture_em" optional="true">
<doc>
Size, position and shape of the entrance slit in dispersive analyzers. To add
additional or other slits use an APERTURE group in this group.
</doc>
</group>
<group name="exit_slit" type="NXaperture_em" optional="true">
<doc>
Size, position and shape of the exit slit in dispersive analyzers. To add
additional or other slits use an APERTURE group in this group.
</doc>
</group>
<field name="energy_interval" type="NX_FLOAT">
<doc>
only in dispersive mode
</doc>
</field>
<field name="center_energy" type="NX_FLOAT">
<doc>
Center of the energy window (only in dispersive mode)
</doc>
</field>
</group>
<group type="NXdetector">
<field name="depends_on" />
<group name="transformations" type="NXtransformations">
<doc>
Virtual transformations to sample that map the pixels onto sample coordinates.
</doc>
</group>
<group type="NXdetector_module">
<doc>
For detectors with irregular pixel sizes or composed by modules tiled together.
</doc>
</group>
<field name="dark_image" type="NX_NUMBER">
<doc>
external link to a dark image file.
</doc>
</field>
<field name="flatfield_image" type="NX_NUMBER">
<doc>
external link to a flat field image.
</doc>
</field>
<field name="data" type="NX_NUMBER" />
</group>
<group type="NXmanipulator">
<doc>
Manipulator for positioning and rotating of the sample.
</doc>
<group type="NXpositioner">
<doc>
One of a group of sample positioners
</doc>
</group>
<!--other NXpositioners-->
<field name="sample_bias" type="NX_FLOAT">
<doc>
Start voltage (sample retarding potential).
</doc>
</field>
</group>
</group>
</group>
<group name="coordinate_system_set" type="NXcoordinate_system_set">
<doc>
Collection of useful coordinate system. The common reference system should be
the sample with all the positioner set to zero. Define at least the beam
reference at sample position and the gravity direction. Add the crystal cell
orientation if necessary.
</doc>
</group>
<group type="NXsample">
<field name="depends_on" />
<group type="NXtransformations">
<doc>
The origin is at the sample position in the center of the detector field of
view, with all the manipulator positioners set to zero.
</doc>
</group>
</group>
</group>
</definition>
114 changes: 114 additions & 0 deletions contributed_definitions/yaml/NXmpes_peem.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
category: application
doc: |
This is a general application definition for a photo-electron emission or low energy electron microscopy/diffraction experiment.
type: group
(NXmpes)NXmpes_peem:
(NXentry):
definition:
\@version:
enumeration: [NXmpes_peem]
(NXmonitor):
exists: recommended
(NXinstrument):
(NXinsertion_device):
exists: optional # only when PEEM uses synchrotron light
(NXmonochromator): # incoming_beam_monochromator
exists: recommended
(NXbeam)beam_probe:
exists: optional # as we record it in NXsample
\@flux: # that will point to the NXmonitor data field
incident_energy(NX_FLOAT): # link to monochromator energy
incident_polarization_stokes(NX_NUMBER):
depends_on:
(NXtransformations):
direction(NX_number):
doc:
default is [0,0,1]
reference_plane(NX_NUMBER): #how is that for our AC-PEEM?
doc:
defined as normal to the plane used to measure azimuth. Default is [0,1,0] through the origin
(NXoptical_system_em):
field_of_view(NX_FLOAT):
doc: |
One or two values for size of image on sample or in another space along slow and fast pixel dimensions.
\@units:
working_distance(NX_FLOAT):
magnification(NX_FLOAT):
(NXelectronanalyser):
(NXcollectioncolumn): # supplement base application definition
scheme:
doc: |
Scheme of the electron collection column.
enumeration: [standard, angular dispersive, selective area, deflector, PEEM, PEEM dark-field, LEEM, LEEM dark-field, LEED, dispersive plane, momentum microscope]
mode:
exists: recommended
doc:
Labelling of the lens setting in use
projection:
doc:
The space projected in the angularly dispersive direction
enumeration: [real, reciprocal, energy]
extractor_voltage(NXlens_em):
objective_lens(NXlens_em):
doc:
list of electromagnetic lenses of the microscope column.
# other EM lenses in column
(NXebeam_column)electron_gun:
exists: optional # when doing LEEM/LEED
field_aperture(NXaperture_em):
beam(NXbeam):
(NXenergydispersion):
exists: optional
entrance_slit(NXaperture_em): # changed from NXaperture
exists: optional
doc: |
Size, position and shape of the entrance slit in dispersive analyzers. To add
additional or other slits use an APERTURE group in this group.
exit_slit(NXaperture_em): # changed from NXaperture
exists: optional
doc: |
Size, position and shape of the exit slit in dispersive analyzers. To add
additional or other slits use an APERTURE group in this group.
energy_interval(NX_FLOAT):
doc:
only in dispersive mode
center_energy(NX_FLOAT):
doc:
Center of the energy window (only in dispersive mode)
(NXdetector):
depends_on:
transformations(NXtransformations):
doc:
Virtual transformations to sample that map the pixels onto sample coordinates.
(NXdetector_module):
doc:
For detectors with irregular pixel sizes or composed by modules tiled together.
dark_image(NX_NUMBER):
doc:
external link to a dark image file.
flatfield_image(NX_NUMBER):
doc:
external link to a flat field image.
data(NX_NUMBER):
(NXmanipulator):
doc: |
Manipulator for positioning and rotating of the sample.
(NXpositioner):
doc: |
One of a group of sample positioners
# other NXpositioners
sample_bias(NX_FLOAT):
doc:
Start voltage (sample retarding potential).
coordinate_system_set(NXcoordinate_system_set):
doc:
Collection of useful coordinate system. The common reference system should
be the sample with all the positioner set to zero. Define at least the beam
reference at sample position and the gravity direction.
Add the crystal cell orientation if necessary.
(NXsample):
depends_on:
(NXtransformations): # links to fields in NXmanipulator
doc:
The origin is at the sample position in the center of the detector field of view,
with all the manipulator positioners set to zero.

0 comments on commit 228a4c6

Please sign in to comment.