Skip to content
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
1234 commits
Select commit Hold shift + click to select a range
58d7523
Further simplification of where and how to store aberrations
atomprobe-tc Aug 14, 2024
8b05200
change ellips name to optical spec
Aug 14, 2024
765626e
Use something from lensID
atomprobe-tc Aug 14, 2024
9186ed2
Correcting units for complex aberrations
atomprobe-tc Aug 14, 2024
1debcc9
Removed mandatory model for aberrations as clear for naming conventio…
atomprobe-tc Aug 14, 2024
7300b1c
Reference Rafal for aberration function
atomprobe-tc Aug 16, 2024
24d78d6
Fixed time(NX_TIME) bug
atomprobe-tc Aug 20, 2024
c12d7c5
fix_renaming_of_ellipsometry_to_optical_spec
Aug 26, 2024
08b7a86
add missed links
Aug 26, 2024
24b0d20
add missing #### in title...
Aug 26, 2024
9d4af2f
Merge pull request #279 from FAIRmat-NFDI/update_optical_spec_website
RonHildebrandt Aug 28, 2024
b259036
Merge branch 'fairmat' into sprint23_em_v3
atomprobe-tc Aug 30, 2024
a8cf2af
Clarified issues with depends_on, fixed typo pID for pfID in NXem_ebsd
atomprobe-tc Aug 30, 2024
132fc2a
Hooked in examples for usage of NXem_ebsd and NXem_eds into NXem
atomprobe-tc Aug 30, 2024
98d6784
Merge pull request #223 from FAIRmat-NFDI/namefit-docs
lukaspie Aug 30, 2024
41c61cb
Last cleaning for depends_on on this feature branch
atomprobe-tc Aug 30, 2024
71dcdda
<<<<Merge branch 'fairmat' into sprint23_em_v3
atomprobe-tc Aug 30, 2024
53f21ac
Initial draft of NXmpes_xps sub app-def
lukaspie Apr 25, 2023
16e94a4
Prepare NXmpes_xps for extending NXmpes
lukaspie May 4, 2023
65bfb91
Removed information already given in base classes
lukaspie May 4, 2023
d2d22f8
Removed some unneeded comments
lukaspie May 5, 2023
33492b8
Add description of instrument orientation
lukaspie May 5, 2023
b1e1039
Move orientation of instrument parts
lukaspie May 9, 2023
53fca26
Update transmission function information
lukaspie May 9, 2023
75a71e4
Update documentation, add comments for discussion
lukaspie May 9, 2023
11ff4da
Initial draft of NXmpes_xps sub app-def
lukaspie Apr 25, 2023
5cd71d7
Prepare NXmpes_xps for extending NXmpes
lukaspie May 4, 2023
5b76d23
Removed information already given in base classes
lukaspie May 4, 2023
27bf927
Removed some unneeded comments
lukaspie May 5, 2023
42f7f72
Add description of instrument orientation
lukaspie May 5, 2023
34e9046
Move orientation of instrument parts
lukaspie May 9, 2023
d60f860
Update transmission function information
lukaspie May 9, 2023
ffeb32c
Update documentation, add comments for discussion
lukaspie May 9, 2023
8880b42
fix NXmpes yaml
lukaspie Jan 4, 2024
0e2201c
update to current NXmpes status
lukaspie Jan 9, 2024
7600d27
refine NXtransformations
lukaspie Jan 9, 2024
563d4e9
add coordinate system and coordinate_system_set
lukaspie Jan 12, 2024
51b28b2
Adds mpes_xps to mpes structure
domna Jan 29, 2024
8029e66
rename to NXxps
lukaspie Feb 9, 2024
c0ee5a7
initial attempt at modeling XPS peak fitting
lukaspie Feb 13, 2024
8fd5c0c
add lineshape to NXpeak
lukaspie Feb 14, 2024
285de0c
update lineshape in NXpeak
lukaspie Feb 14, 2024
ac1f4e6
add NXbackground to NXfit_region
lukaspie Feb 14, 2024
a791fe5
add fitting method to NXpeak_model
lukaspie Feb 14, 2024
370f758
remove NXtransformations from NXcoordinate_system
lukaspie Feb 14, 2024
16be1b8
restructure NXfit with background and peaks
lukaspie Feb 15, 2024
ebae306
change to NXcoordinate_system_set, use NXfit in NXxps
lukaspie Feb 15, 2024
cbb06cd
add fit_function and parameters
lukaspie Feb 15, 2024
9bc7da8
use NXfit_function for peaks and backgrounds
lukaspie Feb 15, 2024
8f3856a
use NXdata in NXfit
lukaspie Feb 15, 2024
fb4652a
use new peak fitting in NXxps
lukaspie Feb 15, 2024
ecdafd3
add missing class name in NXxps
lukaspie Feb 15, 2024
45b9122
remove underscores from variable names in NXfit
lukaspie Feb 16, 2024
b0ff45c
update nyamls
lukaspie Feb 27, 2024
aa3d1a2
switch axes docs in NXfit
lukaspie Feb 27, 2024
4a0e293
use old nyaml dim notation for now
lukaspie Feb 27, 2024
b55affb
fix math notation
lukaspie Feb 27, 2024
1a70266
make nxdls
lukaspie Feb 28, 2024
5a96bfc
regenerate with nyaml==0.0.8
lukaspie Mar 4, 2024
435fe3c
make NXfit, NXpeak multi-dimensional
lukaspie Apr 10, 2024
15d4c51
redefine XPS coordinate system, small changes to XPS peak fitting
lukaspie Apr 10, 2024
7d1d9b0
required energy axis in XPS
lukaspie Apr 10, 2024
d9f01cf
fix dimensions issues
lukaspie Apr 10, 2024
25d0cb4
regenerate NXxps
lukaspie Apr 10, 2024
c9add02
make energy an NX_NUMBER
lukaspie Apr 10, 2024
097d889
remove unneeded depends_on enumerations
lukaspie Apr 19, 2024
6952cbb
align symbols across all fit-related definitions
lukaspie Apr 19, 2024
5b4410d
remove single and repeated parameters in fit
lukaspie May 2, 2024
4eab351
fix dimensions in NXpeak and NXfit_background
lukaspie May 22, 2024
f9304ba
use globlal_fit and error_function in NXfit, fix dimensions
lukaspie May 22, 2024
dbaca7e
docstring fixes in NXfit
lukaspie May 22, 2024
4b15fa3
NXfit extends NXprocess
lukaspie May 22, 2024
5b80901
fix math notation in NXfit_function
lukaspie May 22, 2024
123efd3
fix link in NXfit_function
lukaspie May 22, 2024
f4c0092
change requiredness for formulas in XPS fit
lukaspie May 22, 2024
7f37ded
small fixes for links
lukaspie May 22, 2024
c66c16e
fix issues with manual build
lukaspie May 22, 2024
8639de0
fix math notation
lukaspie May 22, 2024
c83cdc4
more math fixes
lukaspie May 22, 2024
6cc685f
regenerate NXxps and NXpeak nxdl files
lukaspie Jul 5, 2024
903d0e9
fix rebasing issues
lukaspie Jul 5, 2024
dfad4b5
make NXpeak spectrum-independent
lukaspie Aug 12, 2024
6ffb9d6
fix rebase conflicts
lukaspie Aug 30, 2024
fb0be54
fix nyaml-nxdl inconsistency
lukaspie Aug 30, 2024
e71ec46
add notes from both workshops
Sep 3, 2024
93033d6
added make nxdl and make local
Sep 3, 2024
db8b3ab
lowercase enumeration, source_type todo added, doc for ellipsometry_type
Sep 3, 2024
6a7efaf
HOW LONG? does it take to learn to make nxdl and local before commiti…
Sep 3, 2024
196f2a8
Fixes in EM
atomprobe-tc Sep 4, 2024
c7be812
Merging NXem_adf into NXem_img, enabling microstructure reconstructio…
atomprobe-tc Sep 4, 2024
073f941
Removal of non-standardized assumption that i, j, k can be used as co…
atomprobe-tc Sep 4, 2024
5659cc5
add missing elements in ellipsometry from specialized NXlens_opt
Sep 6, 2024
b6b6550
Add todo notes for beamsize and shape description
Sep 6, 2024
e1a9984
typo and note for possible rework/reconsideration of NXfabrication
Sep 6, 2024
6054ae7
Merge pull request #282 from FAIRmat-NFDI/add_workshop_notes_from_ell…
RonHildebrandt Sep 9, 2024
d2c213d
Merge branch 'fairmat' into sprint23_em_v3
atomprobe-tc Sep 9, 2024
5509209
Suggestions from lukaspie
atomprobe-tc Sep 9, 2024
788dd0b
Fixes apm
atomprobe-tc Sep 10, 2024
a5b46d4
Added undefined enum in NXidentifier
atomprobe-tc Sep 10, 2024
5a3e07d
Merge pull request #170 from FAIRmat-NFDI/158-xps-peak-fitting-in-nexus
lukaspie Sep 11, 2024
890c785
<Merge branch 'fairmat' into sprint23_em_v3
atomprobe-tc Sep 11, 2024
05df4f0
Merge pull request #278 from FAIRmat-NFDI/sprint23_em_v3
mkuehbach Sep 11, 2024
f0f7824
use NXidentifier in NXsample and NXfabrication
lukaspie Sep 10, 2024
d828f1f
rename sample name in NXoptical spectroscopy
lukaspie Sep 10, 2024
7f5cce6
make ellipsometer_type optional
lukaspie Sep 10, 2024
0b0538f
NXidentifier in NXoptical_spectroscopy instrument
lukaspie Sep 10, 2024
c40127f
remove NXsample name docs from NXoptical_spectroscopy
lukaspie Sep 10, 2024
0c6f1f9
add serial_number to NXfabrication
lukaspie Sep 11, 2024
3ceecff
use NXidentifier in NXmpes
lukaspie Sep 11, 2024
5058b2f
use NXidentifier consistently across all our contributed definitions
lukaspie Sep 11, 2024
cdc1719
decode binary strings in nxdl_utils.py
rettigl Sep 10, 2024
bbf8060
add function for decoding
rettigl Sep 10, 2024
7b03935
use NXidentifier in NXentry
lukaspie Sep 11, 2024
7f0c0c8
Merge pull request #283 from FAIRmat-NFDI/convert_binary_strings
lukaspie Sep 11, 2024
b6b3ba3
small changes to NXbeam and NXmonochromator
lukaspie Sep 11, 2024
f13e4a6
Merge pull request #285 from FAIRmat-NFDI/small-nxbeam-changes
lukaspie Sep 11, 2024
e147c24
typo fixes
lukaspie Sep 11, 2024
b90d494
Merge pull request #284 from FAIRmat-NFDI/use-nx-identifier
lukaspie Sep 11, 2024
0185e43
proper string decoding
lukaspie Sep 11, 2024
fb6c759
remove unneeded imports
lukaspie Sep 11, 2024
c543a14
black formatting
lukaspie Sep 11, 2024
4dec01e
remove code and move to pynxtools
lukaspie Sep 11, 2024
7bab9e2
remove unneeded requirements
lukaspie Sep 11, 2024
d6eabbb
escape black check
lukaspie Sep 11, 2024
e33d9a8
ignore flake8 issue
lukaspie Sep 11, 2024
f72c27f
isort imports
lukaspie Sep 11, 2024
9a9c70b
use less strict version of str decoding
lukaspie Sep 12, 2024
f40693e
slightly enhanced version of str decoding, test
lukaspie Sep 12, 2024
611af7c
remove flake error catching
lukaspie Sep 12, 2024
a2d1228
reset requirements.txt
lukaspie Sep 12, 2024
a9856f6
reformatting
lukaspie Sep 12, 2024
3039fe3
remove strict type checking
lukaspie Sep 12, 2024
b9e537c
add support for list of bytes
lukaspie Sep 12, 2024
c10e52a
formatting
lukaspie Sep 12, 2024
cf56332
Merge pull request #286 from FAIRmat-NFDI/strict-string-check
lukaspie Sep 13, 2024
6707259
add pulse_delay to NXbeam
lukaspie Sep 13, 2024
619e6f0
recreate nyaml file
lukaspie Sep 13, 2024
d3c5237
Merge pull request #288 from FAIRmat-NFDI/pulse-delay-in-nxbeam
lukaspie Sep 13, 2024
eae3eb1
Merge branch 'nexusformat/deifinitions/main' into fairmat-2024
lukaspie Sep 16, 2024
2a3e8bb
regenerate nyaml files
lukaspie Sep 16, 2024
b048270
various small fixes are merging main and fairmat
lukaspie Sep 16, 2024
1e50475
fix string No in NXelectron_level
lukaspie Sep 16, 2024
3faa2c6
remove unused MANIFEST.in
lukaspie Sep 16, 2024
5a28e07
manually reset NXem yaml file
lukaspie Sep 16, 2024
31f5e9d
format base classes and applications in accordance to existing NIAC v…
lukaspie Sep 16, 2024
2590928
revert changes to NXtransformations docs
lukaspie Sep 17, 2024
7ca8b20
add CSS tweak to hide summary
lukaspie Sep 18, 2024
b4aad7b
add css file
lukaspie Sep 18, 2024
08c4fcb
Merge pull request #293 from FAIRmat-NFDI/add-ccs-tweak-to-hide-summary
lukaspie Sep 18, 2024
09aa519
Suggestions from Lukas
atomprobe-tc Sep 19, 2024
139d664
fix dev_tools tests
lukaspie Sep 18, 2024
4abdc46
remove use of details_summary_hide
lukaspie Sep 18, 2024
d20af52
change refs in NXarpes
lukaspie Sep 19, 2024
101a093
move doc bundles to applications and base_classes
lukaspie Sep 19, 2024
4f52a8a
Merge commit '09aa5191d2e327d74f54e20aac091c94661b90fe' into fairmat-…
lukaspie Sep 19, 2024
5ac17fb
Reverting the proposal that NXmicrostructure is not just proposed for…
atomprobe-tc Sep 19, 2024
e430164
Merge commit '5ac17fba2c96b83b3aa40446ba3f57b877be93bf' into fairmat-…
lukaspie Sep 19, 2024
4e485a6
Revert one more microstructure
atomprobe-tc Sep 19, 2024
2b6e1c3
Merge commit '4e485a6cb4b185da158439b6e6c726e628eb1740' into fairmat-…
lukaspie Sep 19, 2024
81d927c
move new definitions to application and base_classes
lukaspie Sep 19, 2024
4bbc850
small update to mpes-structure
lukaspie Sep 19, 2024
69bc9dc
update category for NXxrd.nxdl. (#296)
RubelMozumder Sep 20, 2024
0200cd6
remove fairmat-specific files
lukaspie Sep 20, 2024
00645ff
remove nyaml files
lukaspie Sep 20, 2024
2287569
move NXdata_mpes* classes back to contributed
lukaspie Sep 20, 2024
1544232
revert small changes to the dev_tools
lukaspie Sep 20, 2024
105029a
change docs in NXcircuit
lukaspie Sep 20, 2024
257e37f
pull out modifications for fairmat-2024-apm
lukaspie Sep 24, 2024
8583dfd
remove classes from contributed that have been moved to base_classes
lukaspie Sep 24, 2024
111f9f7
update type in NXsource
lukaspie Sep 24, 2024
dc67a46
Merge remote-tracking branch 'upstream/main' into fairmat-2024-apm
lukaspie Dec 11, 2024
98f6cbe
remove double NXpositioner from NXaperture
lukaspie Dec 11, 2024
4687ce3
Merge remote-tracking branch 'upstream/main' into fairmat-2024-apm
atomprobe-tc Feb 3, 2025
0ebff2b
Correction on NXchamber
atomprobe-tc Feb 3, 2025
291a463
Merge remote-tracking branch 'upstream/main' into fairmat-2024-apm
atomprobe-tc Feb 3, 2025
23c1e1e
Refactored NXapm proposal according to the development version that w…
atomprobe-tc Feb 3, 2025
47e138b
Merge remote-tracking branch 'upstream/main' into fairmat-2024-apm
atomprobe-tc Mar 6, 2025
43baed6
Removing for now all documentation that points to apm-domain-specific…
atomprobe-tc Mar 6, 2025
9bd5e66
Revert white-space change on NXactuator
atomprobe-tc Mar 6, 2025
73b2ebb
reverting
atomprobe-tc Mar 6, 2025
a88d34c
Use upstream/main NXbeam
atomprobe-tc Mar 6, 2025
5c683d3
Use upstream/main NXcalibration, remove NXchamber
atomprobe-tc Mar 6, 2025
e83f628
Further removal/reverting of base classes not touched by this PR
atomprobe-tc Mar 6, 2025
3a10421
Reversions
atomprobe-tc Mar 6, 2025
fdf4468
Finished reversion of classes that the upstream/main merge brought in…
atomprobe-tc Mar 6, 2025
f719fe0
Edits on the appdef
atomprobe-tc Mar 6, 2025
e1cc412
Fixing issues that were spotted when syncing current fairmat state of…
atomprobe-tc Mar 9, 2025
6299e32
Synced back with the latest edits that we have done in FAIRmat includ…
atomprobe-tc Mar 13, 2025
86f68eb
Merge remote-tracking branch 'upstream/main' into fairmat-2024-apm
atomprobe-tc May 6, 2025
445f10a
Merge remote-tracking branch 'upstream/main' into fairmat-2024-apm, u…
atomprobe-tc May 12, 2025
c209646
Used prepared classes with the latest changes for the apm proposal fo…
atomprobe-tc May 12, 2025
b844d73
Moved NXcoordinate_system_set back to contributed as its removal can …
atomprobe-tc May 12, 2025
84485ce
Used prepared classes with the latest changes for the apm proposal fo…
atomprobe-tc May 12, 2025
78f6d1f
Used prepared classes with the latest changes for the apm proposal fo…
atomprobe-tc May 12, 2025
619bc75
Used prepared classes with the latest changes for the apm proposal fo…
atomprobe-tc May 12, 2025
d723867
Removed duplicated NXcs_computer
atomprobe-tc May 12, 2025
ad4aa02
Used prepared classes with the latest changes for the apm proposal fo…
atomprobe-tc May 12, 2025
7fd8ed0
Separating and docstring sharp single line message followed by more e…
atomprobe-tc May 13, 2025
a55a5d1
Fix inconsistent and wrong use of reserved keyword _errors, editing o…
atomprobe-tc May 13, 2025
d27b89a
Remaining edits on the NXapm and fixing the CI/CD
atomprobe-tc May 13, 2025
4c4a786
Left comment on how to name instances of NXcoordinate_system
atomprobe-tc May 13, 2025
f1cf83e
Fix incorrect math notation
atomprobe-tc May 13, 2025
4460b20
Further renaming of incorrectly copy-pasted name for specific id_offset
atomprobe-tc May 13, 2025
7655e18
Fixed formatting error
atomprobe-tc May 13, 2025
4ce59db
Changes on manual/source that were left due
atomprobe-tc May 14, 2025
0381a21
Using newest CI/CD workflows from the FAIRmat branch to make a mock P…
atomprobe-tc May 14, 2025
a153bc3
Merge remote-tracking branch 'upstream/main' into fairmat-2024-apm-do…
atomprobe-tc May 22, 2025
fefb70d
Implementation of feedback based on @benajamin review
atomprobe-tc May 23, 2025
2aa49d0
Further implementation of feedback based on @benajamin review
atomprobe-tc May 23, 2025
d9263fa
Additional implementation of feedback based on @benajamin review
atomprobe-tc May 23, 2025
bfe256a
Implementation of feedback based on @benajamin review, next steps, ma…
atomprobe-tc May 26, 2025
7d3f35f
Refactored NXapm_reconstruction to include more recommendations from …
atomprobe-tc May 27, 2025
01c560a
Reverted changes on NXion to the version of upstream/main commit 307e6a7
atomprobe-tc May 27, 2025
24a78e8
Remaining edits on the appdef and baseclasses based on @benajamin's r…
atomprobe-tc May 27, 2025
03818e7
Resolving comment on NXapm_measurement by @benajamin
atomprobe-tc May 27, 2025
c159247
Formatting of the mass_resolution molecular ion notation
atomprobe-tc May 27, 2025
5512ff1
cspell
atomprobe-tc May 27, 2025
0ec93e8
Editing top-level docstring, two-pager
atomprobe-tc May 28, 2025
2047f28
Modified part 1 of 2 for two-pager from NXem for NXapm§
atomprobe-tc May 28, 2025
2775190
Two-pager draft finished
atomprobe-tc May 28, 2025
ae413fa
Lower-bound pinning of nyaml that was previously unpinned. This fixes…
atomprobe-tc May 29, 2025
350d55d
Revert cspell and changes on CI/CD
atomprobe-tc May 29, 2025
a9dc6ba
Merge pull request #392 from FAIRmat-NFDI/fairmat-2024-apm-docs-for-r…
mkuehbach May 29, 2025
9e29f19
Working on further suggestions by @benajamin after having html artifa…
atomprobe-tc May 29, 2025
86f3c42
Comment resolving and further fixes
atomprobe-tc May 29, 2025
b4a218e
Comment resolving and further fixes
atomprobe-tc May 29, 2025
b5bcbc7
Cheatsheets remain
atomprobe-tc May 29, 2025
55625da
Manual fixes on top-level docstring for NXapm to please humans and th…
atomprobe-tc May 29, 2025
a4efddb
Formatting fix in NXapm top-level docstring
atomprobe-tc May 29, 2025
aed0308
Added comments from the second revision round with @benajamin, mainly…
atomprobe-tc Jun 3, 2025
ee474e8
One more clarification for source
atomprobe-tc Jun 3, 2025
18fc551
Reply and edits to remaining comments from @benajamin
atomprobe-tc Jun 3, 2025
ba9c1e8
One more suggestion on writing in NXapm
atomprobe-tc Jun 4, 2025
ac29496
Further edits
atomprobe-tc Jun 4, 2025
36a3540
Final round of edits prior the 04/06/2025 telco
atomprobe-tc Jun 4, 2025
0191abf
Refactoring of NXroi to NXroi_process and adding feedback from the te…
atomprobe-tc Jun 5, 2025
ec2d854
NXroi to NXroi_process
atomprobe-tc Jun 5, 2025
3ef0179
Fixing NXapm_ranging in NXapm
atomprobe-tc Jun 5, 2025
e4199af
Resolve bug in the hashing rule for NXatom and remove duplicated ment…
atomprobe-tc Jun 5, 2025
3ee8520
Edits on hashing rule
atomprobe-tc Jun 5, 2025
52b0736
Last edits wrt to open conversations
atomprobe-tc Jun 5, 2025
8780d90
Edit docstring of NXprocess to consider @PeterC-DLS comment on missin…
atomprobe-tc Jun 5, 2025
02c0c08
Docstring fixing in NXprocess
atomprobe-tc Jun 5, 2025
a71e96b
Merge branch 'main' into fairmat-2024-apm
mkuehbach Jun 5, 2025
99588fc
Replace single quote with double quote in XML header
atomprobe-tc Jun 9, 2025
7f62751
Merge remote-tracking branch 'upstream/main' into fairmat-2024-apm
atomprobe-tc Jun 17, 2025
cf9ed4b
Harmonized names for concepts number_of_processes, threads, and gpus
atomprobe-tc Jun 17, 2025
827e60d
Implemented suggestions from @paulmillar to remove parentheses in fav…
atomprobe-tc Jun 23, 2025
43445f6
Implemented remaining rephrasing suggestion from @paulmillar
atomprobe-tc Jun 23, 2025
47bfd85
Merge remote-tracking branch 'upstream/main' into fairmat-2024-apm
atomprobe-tc Jul 13, 2025
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
Empty file modified .github/workflows/ci.yaml
100755 → 100644
Empty file.
1,557 changes: 1,557 additions & 0 deletions applications/NXapm.nxdl.xml

Large diffs are not rendered by default.

159 changes: 159 additions & 0 deletions base_classes/NXapm_charge_state_analysis.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
<?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) 2024-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
# 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="NXapm_charge_state_analysis" extends="NXprocess" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<symbols>
<doc>
The symbols used in the schema to specify e.g. dimensions of arrays.
</doc>
<symbol name="n_cand">
<doc>
The number of (molecular) ion candidates.
Comment thread
mkuehbach marked this conversation as resolved.
Outdated
</doc>
</symbol>
<symbol name="n_ivec_max">
<doc>
Maximum number of allowed atoms per (molecular) ion (fragment).
Comment thread
mkuehbach marked this conversation as resolved.
Outdated
</doc>
</symbol>
<symbol name="n_variable">
<doc>
Number of entries
</doc>
</symbol>
</symbols>
<doc>
Base class to document the parameters (configuration) and results of a processing for recovering
Comment thread
mkuehbach marked this conversation as resolved.
Outdated
the charge state and nuclide composition of a (molecular) ion from ranging definitions as used
in the research field of atom probe microscopy.

A ranging definition classically reports only the mass-to-charge-state-ratio interval plus the
elemental composition, but not necessarily the nuclide that compose the (molecular) ion.

As the mass-resolving-power in an atom probe instrument is finite and typically lower
than for cutting edge tandem mass spectrometry it is possible that different combinations of nuclides
are indistinguishable and thus multiple (molecular) ions in eventually even different charge states
can be valid labels for a given mass-to-charge-state-ratio peak. Enumerating the possible combinations
is a programmatic approach that can help with peak identification.
</doc>
<group name="config" type="NXparameters">
<doc>
Parameters for the algorithm that tries to recover which combinations of nuclides
Comment thread
mkuehbach marked this conversation as resolved.
Outdated
have a mass and charge that matches a set of constraints.

Each parameter in this group is defines one constraint.
</doc>
<field name="nuclides" type="NX_UINT" units="NX_UNITLESS">
<doc>
Parameter that defines the elements considered in the combinatorial search.
The array contains nuclides as many times as their multiplicity and must not be empty.

Nuclides are encoded using the hashing rule that is defined in :ref:`NXatom`; an example:
A ranging definition H:2 O:1 is configured by setting nuclides to a list with entries
:math:`1 + 0 \cdot 256`, :math:`1 + 0 \cdot 256`, :math:`8 + 0 \cdot 256`.
Using 0 for the number of neutrons of an oxygen atom allows to encode that
isotopes of oxygen in general are meant, i.e. the element oxygen.

Constraining the elements or nuclides instead of providing all nuclides
reduces the time to perform an exhaustive combinatorial search.
</doc>
<dimensions rank="1">
<dim index="1" value="n_variable"/>
</dimensions>
</field>
<field name="mass_to_charge_range" type="NX_FLOAT" units="NX_ANY">
<doc>
Parameter that defines the interval :math:`[{m/q}_{min}, {m/q}_{max}]` within which
(molecular) ions with given mass-to-charge-state-ratio qualify as candidates.
</doc>
<dimensions rank="1">
<dim index="1" value="2"/>
</dimensions>
</field>
<field name="min_half_life" type="NX_FLOAT" units="NX_TIME">
<doc>
Parameter that defines the minimum half life for how long each nuclide of each
(molecular) ion needs to be stable such that the ion qualifies as a candidate.
</doc>
</field>
<field name="min_abundance" type="NX_FLOAT" units="NX_DIMENSIONLESS">
<doc>
Parameter that defines the minimum natural abundance of each nuclide of each
(molecular) ion such that the ion qualifies as a candidate.
</doc>
</field>
<field name="sacrifice_isotopic_uniqueness" type="NX_BOOLEAN">
<doc>
If the value is false, it means that non-unique solutions are accepted.
These are solutions where multiple candidates have been built from
different nuclide instances but the charge_state of all the ions is the same.
</doc>
</field>
</group>
<field name="charge_state" type="NX_INT" units="NX_UNITLESS">
<doc>
Signed charge, i.e. integer multiple of the elementary
charge of each candidate.
</doc>
<dimensions rank="1">
<dim index="1" value="n_cand"/>
</dimensions>
</field>
<field name="nuclide_hash" type="NX_UINT" units="NX_UNITLESS">
<doc>
Table of nuclide instances of which each candidate is composed.
Each row vector is sorted in descending order.
Unused entries in the matrix should be set to 0.
</doc>
<dimensions rank="2">
<dim index="1" value="n_cand"/>
<dim index="2" value="n_ivec_max"/>
</dimensions>
</field>
<field name="mass" type="NX_FLOAT" units="NX_MASS">
<doc>
Accumulated mass of the nuclides in each candidate.
Not corrected for quantum effects.
</doc>
<dimensions rank="1">
<dim index="1" value="n_cand"/>
</dimensions>
</field>
<field name="natural_abundance_product" type="NX_FLOAT" units="NX_DIMENSIONLESS">
<doc>
The product of the natural abundances of the nuclides for each candidate.
</doc>
<dimensions rank="1">
<dim index="1" value="n_cand"/>
</dimensions>
</field>
<field name="shortest_half_life" type="NX_FLOAT" units="NX_TIME">
Comment thread
mkuehbach marked this conversation as resolved.
<doc>
For each candidate the half life of the nuclide that has the
shortest half life.
</doc>
<dimensions rank="1">
<dim index="1" value="n_cand"/>
</dimensions>
</field>
</definition>
70 changes: 70 additions & 0 deletions base_classes/NXapm_measurement.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<?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) 2025-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
# 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="NXapm_measurement" extends="NXobject" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<doc>
Base class for collecting a run with a real or a simulated atom probe or field-ion microscope.

The term run is understood as an exact synonym for session, i.e. the usage of a real or simulated
tomograph or microscope for a certain amount of time during which one characterizes a single specimen.

Research workflows for experiments and simulations of atom probe and related field-evaporation
evolve continuously and become increasingly connected with other methods used for material
characterization specifically electron microscopy. A few examples in this direction are:

* `T. Kelly et al. &lt;https://doi.org/10.1017/S1431927620022205&gt;`_
* `C. Fleischmann et al. &lt;https://doi.org/10.1016/j.ultramic.2018.08.010&gt;`_
* `W. Windl et al. &lt;https://doi.org/10.1093/micmic/ozad067.294&gt;`_
* `C. Freysoldt et al. &lt;https://doi.org/10.1103/PhysRevLett.124.176801&gt;`_
* `G. da Costa et al. &lt;https://doi.org/10.1038/s41467-024-54169-2&gt;`_

The majority of atom probe research is performed using the so-called Local Electrode Atom Probe (LEAP) instruments
from AMETEK/Cameca. In addition, several research groups have built their own instruments and shared different
aspects of the technical specifications and approaches including how these groups apply data processing e.g.:

* `M. Monajem et al. &lt;https://doi.org/10.1017/S1431927622003397&gt;`_
* `P. Stender et al. &lt;https://doi.org/10.1017/S1431927621013982&gt;`_
* `I. Dimkou et al. &lt;https://doi.org/10.1093/micmic/ozac051&gt;`_

to name but a few.
</doc>
<field name="status" type="NX_CHAR">
<doc>
A statement whether the measurement completed successfully, or was aborted.
</doc>
<enumeration>
<item value="success"/>
<item value="aborted"/>
</enumeration>
</field>
<field name="quality" type="NX_CHAR">
<doc>
Statement about the quality of the measurement.

The value can be extracted from the CAnalysis.CResults.fQuality
field of a CamecaRoot ROOT file.
</doc>
</field>
<group type="NXinstrument_apm"/>
<group type="NXevent_data_apm"/>
</definition>
Comment thread
benajamin marked this conversation as resolved.
110 changes: 110 additions & 0 deletions base_classes/NXapm_ranging.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
<?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) 2024-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
# 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="NXapm_ranging" extends="NXprocess" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<doc>
Base class for the configuration and results of ranging definitions.

Ranging is a data post-processing step used in the research field of
atom probe during which elemental, isotopic, and/or molecular identities
are assigned to mass-to-charge-state ratios within certain intervals.
The documentation of these steps is based on ideas that
have been described in the literature:

* `M. K. Miller &lt;https://doi.org/10.1002/sia.1719&gt;`_
* `D. Haley et al. &lt;https://doi.org/10.1017/S1431927620024290&gt;`_
* `M. Kühbach et al. &lt;https://doi.org/10.1017/S1431927621012241&gt;`_
</doc>
<group type="NXprogram"/>
<group type="NXnote"/>
<group name="mass_to_charge_distribution" type="NXprocess">
<doc>
Specifies the mass-to-charge-state ratio histogram.
</doc>
<group type="NXprogram"/>
<field name="min_incr_max" type="NX_FLOAT" units="NX_ANY">
<doc>
Smallest :math:`{\frac{m}{q}}_{min}`, increment :math:`{\frac{m}{q}}_{incr}`, and
largest mass-to-charge-state ratio :math:`{\frac{m}{q}}_{max}` value respectively.

The bounds :math:`{\frac{m}{q}}_{min}` and :math:`{\frac{m}{q}}_{max}` are inclusive.
The increment should be obey :math:`{\frac{m}{q}}_{max} = {\frac{m}{q}}_{min} + n \cdot :math:`{\frac{m}{q}}_{incr}` with :math:`n` a positive integer.
Comment thread
mkuehbach marked this conversation as resolved.
Outdated
</doc>
<dimensions rank="1">
<dim index="1" value="3"/>
</dimensions>
</field>
<group name="mass_spectrum" type="NXdata">
<doc>
A default histogram aka mass spectrum of
the mass-to-charge-state ratio values.
</doc>
</group>
</group>
<group name="background_quantification" type="NXprocess">
<doc>
Details of the background model that was used to
correct the total counts per bin into counts.
</doc>
<group type="NXprogram"/>
<field name="description" type="NX_CHAR">
<doc>
Free-text field to describe how atom probers define a background model.

Thereby, community feedback can be collected to inform an improved
version of this base class in the future.
</doc>
</field>
</group>
<group name="peak_search_and_deconvolution" type="NXprocess">
<doc>
How were peaks in the mass-to-charge-state ratio histogram identified.
</doc>
<group type="NXprogram"/>
<group type="NXpeak"/>
</group>
<group name="peak_identification" type="NXprocess">
<doc>
Details about how peaks, with taking into account
error models, were interpreted as ion types or not.
</doc>
<group type="NXprogram"/>
<field name="number_of_ion_types" type="NX_UINT" units="NX_UNITLESS">
<doc>
How many ion types are distinguished. If no ranging was performed, each
ion is of the special unknown type. The iontype ID of this unknown type
is 0 representing a reserved value.

Consequently, start counting iontypes from 1.
</doc>
</field>
<field name="maximum_number_of_atoms_per_molecular_ion" type="NX_UINT" units="NX_UNITLESS">
<doc>
Assumed maximum value that suffices to store all relevant molecular ions,
even the most complicated ones that one can typically observe and distinguish
typically. Currently, a value of 32 is used (see M. Kühbach et al. &lt;https://doi.org/10.1017/S1431927621012241&gt;`_).
</doc>
</field>
<group type="NXatom"/>
</group>
</definition>
Loading