Skip to content
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
37 changes: 21 additions & 16 deletions src/nexusformat/definitions/applications/NXapm.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
<symbol name="p">
<doc>
Number of pulses collected in between start_time and end_time resolved by an
instance of :ref:`NXevent_data_apm`. If this is not defined, p is the number of
instance of :ref:`NXapm_event_data`. If this is not defined, p is the number of
ions included in the reconstructed volume if the application definition is used
to store results of an already reconstructed dataset.
</doc>
Expand Down Expand Up @@ -84,7 +84,7 @@
is considered as a narrow synonym for crystal defects.

The aim of the NXapm application definition is to provide a general yet specific enough
solution to serialize artifacts for virtually all atom probe and field-ion microcopy experiments.
solution to serialize artifacts for virtually all atom probe and field-ion microscopy experiments.

Before summarizing the design of the base classes and the parts of the NXapm application definition,
it is worthwhile to recall and distinguish concepts that are related to atom extraction
Expand Down Expand Up @@ -149,7 +149,7 @@
or a new file. Removing the specimen from the instrument is an interruption. Changing evaporation conditions
while the specimen is remains in the analysis_chamber and resuming thereafter the measurement
is not considered as an interruption. It is a common strategy to probe the evaporation process for different
instrument parameters. Each individual collection should then though be stored in an own NXevent_data_apm
instrument parameters. Each individual collection should then though be stored in an own NXapm_event_data
group. Parking the specimen to the buffer_chamber and resuming the measurement at a later stage is an interruption.
During a run, the microscope is used for a certain amount of time to characterize a single specimen.
- The groups ``sample`` and ``specimen`` provide concepts for storing metadata about the sample and the specimen,
Expand Down Expand Up @@ -187,7 +187,7 @@
NXapm defines constraints on the existence and cardinality of concepts and its concept branches but seeks to
offer a compromise. The key design pattern followed is that most branches are made optional or at most recommended
but their child concepts are conditionally required. Thereby, NXapm can cover a variety of simple but also complex
use cases. An example of this parent-optional-but-childs-stronger-restricted design is the combination of the
use cases. An example of this parent-optional-but-children-stronger-restricted design is the combination of the
optional group ``measurement`` with its required child ``measurement/instrument``:
Users which report simulations are not forced to document the instrument but users which have characterized
a specimen are motivated to report about the instrument. They are though not necessarily required to report all
Expand All @@ -203,7 +203,7 @@
events that can be time-stamped individually.
Each instance of a group ``measurement/eventID`` contains ``measurement/instrument`` whose purpose is to
store those specific state and settings of the instrument that was present during the collection of the event.
Thereby, changing conditions such as compaigns with different target detection rate can be stored.
Thereby, changing conditions such as campaigns with different target detection rate can be stored.

Noteworthy, such an approach of the atom probe detecting groups of events and storing these as groups has also
been in use in the proprietary software via CamecaRoot, a set of customized data structures and file formats that use
Expand All @@ -215,7 +215,7 @@
considered best practice by AMETEK/Cameca, ``raw_data`` for delay-line timing data, ``hit_finding`` for details of the
hit finding algorithm, ``hit_spatial_filtering`` a process that filters hits of too low quality and those laying outside the about
to be computed reconstruction volume. Furthermore, group ``voltage_and_bowl`` offers a place for documenting calibrations
and processing non-linearities. Group ``mass_to_charge_conversion`` is used to document the mass calibration and the
and processing nonlinearities. Group ``mass_to_charge_conversion`` is used to document the mass calibration and the
conversion from time-of-flight to mass-to-charge-state-ratio values.

Finally, the groups ``reconstruction`` and ``ranging`` were designed to match and document the classical approaches how
Expand Down Expand Up @@ -340,7 +340,7 @@

More detailed timing data over the course of the experiment have to be
collected to compute this event chain during the experiment. For this
purpose the :ref:`NXevent_data_apm` instance should be used.
purpose the :ref:`NXapm_event_data` instance should be used.
</doc>
</field>
<field name="end_time" type="NX_DATE_TIME" recommended="true">
Expand All @@ -361,6 +361,11 @@
</doc>
</field>
<group name="citeID" type="NXcite" minOccurs="0" maxOccurs="unbounded" nameType="partial">
<field name="author" type="NX_CHAR" optional="true">
<doc>
The author(s) of that reference.
</doc>
</field>
<field name="doi" type="NX_CHAR"/>
</group>
<group name="noteID" type="NXnote" minOccurs="0" maxOccurs="unbounded" nameType="partial">
Expand Down Expand Up @@ -673,7 +678,7 @@
</enumeration>
</field>
</group>
<group name="NAMED_reference_frame" type="NXcoordinate_system" minOccurs="1" maxOccurs="unbounded" nameType="partial">
<group name="NAMED_reference_frameID" type="NXcoordinate_system" minOccurs="1" maxOccurs="unbounded" nameType="partial">
<doc>
A coordinate system. Multiple instances require unique names.

Expand Down Expand Up @@ -740,7 +745,7 @@
<group name="measurement" type="NXapm_measurement" optional="true">
<field name="status" type="NX_CHAR" recommended="true"/>
<field name="quality" type="NX_CHAR" recommended="true"/>
<group name="instrument" type="NXinstrument_apm">
<group name="instrument" type="NXapm_instrument">
<field name="type" type="NX_CHAR" recommended="true"/>
<field name="location" type="NX_CHAR" recommended="true"/>
<field name="flight_path" type="NX_FLOAT" recommended="true"/>
Expand All @@ -752,7 +757,7 @@
<group name="reflectron" type="NXcomponent" optional="true">
<field name="applied" type="NX_BOOLEAN"/>
</group>
<group name="local_electrode" type="NXlens_em" recommended="true">
<group name="local_electrode" type="NXelectromagnetic_lens" recommended="true">
<field name="name" type="NX_CHAR"/>
<group name="fabrication" type="NXfabrication" optional="true">
<field name="vendor" type="NX_CHAR"/>
Expand Down Expand Up @@ -832,14 +837,14 @@
</group>
</group>
</group>
<group name="eventID" type="NXevent_data_apm" nameType="partial" minOccurs="0" maxOccurs="unbounded">
<group name="eventID" type="NXapm_event_data" nameType="partial" minOccurs="0" maxOccurs="unbounded">
<field name="start_time" type="NX_DATE_TIME" recommended="true"/>
<field name="end_time" type="NX_DATE_TIME" recommended="true"/>
<group name="instrument" type="NXinstrument_apm" recommended="true">
<group name="instrument" type="NXapm_instrument" recommended="true">
<group name="reflectron" type="NXcomponent" recommended="true">
<field name="voltage" type="NX_FLOAT"/>
</group>
<group name="local_electrode" type="NXlens_em" recommended="true">
<group name="local_electrode" type="NXelectromagnetic_lens" recommended="true">
<field name="voltage" type="NX_FLOAT"/>
</group>
<group name="pulser" type="NXcomponent" recommended="true">
Expand Down Expand Up @@ -979,7 +984,7 @@

In the case of an open-source instrument, like P. Felfer's Oxcart or G. Schmitz's
M-TAP instruments, also use program1, program2, ... with program1 representing
the control software e.g. `M. Monajem and P. Felfer pyCCAPT &lt;https://pyccapt.readthedocs.io/en/latest/&gt;`_.
the control software e.g. `M. Monajem and P. Felfer PYCCAPT &lt;https://pyccapt.readthedocs.io/en/latest/&gt;`_.
Further instances (program2, ...) can be used to list the dependencies, the
python virtual environment.
</doc>
Expand Down Expand Up @@ -1260,7 +1265,7 @@
<field name="checksum" type="NX_CHAR" recommended="true"/>
<field name="algorithm" type="NX_CHAR" recommended="true"/>
</group>
<group name="config" type="NXparameters">
<group name="config" type="NXparameters" recommended="true">
<field name="mass_calibration" type="NX_FLOAT" recommended="true" units="NX_ANY">
<doc>
Mass calibration with unit peaks/interp. as mentioned by `T. Blum et al.
Expand Down Expand Up @@ -1308,7 +1313,7 @@
<field name="name" type="NX_CHAR"/>
</group>
</group>
<field name="mass_to_charge" type="NX_FLOAT">
<field name="mass_to_charge" type="NX_FLOAT" units="NX_ANY">
<dimensions rank="1">
<dim index="1" value="n"/>
</dimensions>
Expand Down
4 changes: 2 additions & 2 deletions src/nexusformat/definitions/applications/NXarchive.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2008-2024 NeXus International Advisory Committee (NIAC)
# Copyright (C) 2008-2025 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
Expand Down Expand Up @@ -85,7 +85,7 @@
<field name="role" type="NX_CHAR">
<doc>role of the user</doc></field>
<field name="facility_user_id" type="NX_CHAR">
<doc>ID of the user in the facility burocracy database</doc>
<doc>ID of the user in the facility bureaucracy database</doc>
</field>
</group>
<group type="NXinstrument" name="instrument">
Expand Down
Loading