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

Fairmat 2024: proposal on atom probe microscopy (APM) #1422

Open
wants to merge 1,160 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1160 commits
Select commit Hold shift + click to select a range
2f06550
fix mpes-structure.rst
lukaspie Jul 4, 2024
17399f1
Merge pull request #249 from FAIRmat-NFDI/246-finalize-nxxps
lukaspie Jul 4, 2024
28c3726
Merge pull request #260 from FAIRmat-NFDI/sprint22_clear_duplicates_f…
mkuehbach Jul 4, 2024
71ea669
Merge branch 'fairmat' into sprint22_corrector
Jul 4, 2024
fe64f3d
Remove previous deleted file
Jul 4, 2024
0e96bf4
make geometries and source recommended in xps
lukaspie Jul 8, 2024
9e8dc2f
Merge pull request #264 from FAIRmat-NFDI/small-xps-fixes
lukaspie Jul 8, 2024
1ff2e2e
change docs in NXcollectioncolumn
lukaspie Jul 8, 2024
2f8dbdd
regenerate nxdl files
lukaspie Jul 9, 2024
26d4faa
Merge pull request #265 from FAIRmat-NFDI/docs-in-nxcollectioncolumn
lukaspie Jul 9, 2024
8cd2d5c
small modifications to clarify NXmpes
lukaspie Jul 9, 2024
b45e417
Base class refactoring for NXms proposal removing too small base clas…
atomprobe-tc Jul 9, 2024
ddfbd01
Following @lukaspie suggestion to rename the base classes related to …
atomprobe-tc Jul 9, 2024
a56552b
remove changes to polarization in NXbeam
lukaspie Jul 9, 2024
4456194
remove changes to final_polarization in NXbeam
lukaspie Jul 9, 2024
87bd254
Removed remaining references to NXms and renamed NXslip_system_set
atomprobe-tc Jul 9, 2024
0beac13
Removed the two tiny base classes NXmicrostructure_snapshot and *_set
atomprobe-tc Jul 9, 2024
171e23a
Refactored NXmicrostructure_feature_set to map to NXmicrostructure_re…
atomprobe-tc Jul 9, 2024
612c550
Removed NXmicrostructure_recon
atomprobe-tc Jul 9, 2024
f88f38d
Fix documentation generation
atomprobe-tc Jul 9, 2024
9b23f4e
Continuing on NXmicrostructure
atomprobe-tc Jul 9, 2024
e92255b
Finished NXmicrostructure
atomprobe-tc Jul 10, 2024
78ddc2a
Fix docs CI to only keep orphan branch
lukaspie Jul 10, 2024
d1442c3
Finalized data model for NXmicrostructure_imm
atomprobe-tc Jul 10, 2024
19172d2
Finished data model example for NXmicrostructure_kanapy
atomprobe-tc Jul 10, 2024
d1e8958
add step to remove build artifacts
lukaspie Jul 10, 2024
2af174c
Activate .github/workflows/fairmat-build-pages.yaml
lukaspie Jul 10, 2024
32afbb1
readd units to NXbeam polarization
lukaspie Jul 10, 2024
6d55dc1
move existing docs before making orphan branch
lukaspie Jul 10, 2024
f8f256a
reactivate ci workflow
lukaspie Jul 10, 2024
c034f39
modify moving of existing docs
lukaspie Jul 10, 2024
2cf1f20
remove commented CI code that is not needed anymore
lukaspie Jul 10, 2024
bce9eb6
Merge pull request #268 from FAIRmat-NFDI/237-repository-extremely-large
lukaspie Jul 10, 2024
fe38c94
Opened NXem_conventions for usage in methods other than electron micr…
atomprobe-tc Jul 11, 2024
293161a
Consolidated based classes related to NXem_conventions into NXcoordin…
atomprobe-tc Jul 11, 2024
bf5c6d5
Refactored NXmicrostructure_score_config
atomprobe-tc Jul 11, 2024
87ef8ed
Refactored NXmicrostructure_gragles_config
atomprobe-tc Jul 11, 2024
028bce9
Even make html runs through locally
atomprobe-tc Jul 11, 2024
b19701c
remove _source build artifacts before docs deployment
lukaspie Jul 11, 2024
5ff3ed6
Merge pull request #266 from FAIRmat-NFDI/mpes-clarifications
lukaspie Jul 11, 2024
34aed4a
Merge pull request #269 from FAIRmat-NFDI/remove-build-artifacts-duri…
lukaspie Jul 11, 2024
f9c55a9
Finished NXmicrostructure_score_results and hope that commenting out …
atomprobe-tc Jul 11, 2024
ad8385c
Fixed the too stiff name of microstructure1
atomprobe-tc Jul 11, 2024
e36bd85
Initial version of NXmicrostructure_gragles_results
atomprobe-tc Jul 11, 2024
5dba9e3
Fixed grammar issue
atomprobe-tc Jul 11, 2024
9510a0c
Finished NXmicrostructure_gragles_results
Jul 11, 2024
9fba728
Implemented suggestions from @lukaspie
atomprobe-tc Jul 12, 2024
cc18a27
nxdl
atomprobe-tc Jul 12, 2024
a60bac2
NXdata linking of signal (#205)
domna Jul 15, 2024
2928374
Merge branch 'fairmat' into sprint22_microstructure
atomprobe-tc Jul 15, 2024
80bc77d
Merge branch 'fairmat' into sprint22_corrector
atomprobe-tc Jul 15, 2024
6086874
Roll back changes to NXmpes/instrument/pressure_gauge
lukaspie Jul 16, 2024
1d7000f
Merge pull request #271 from FAIRmat-NFDI/mpes-pressure-gauge
lukaspie Jul 16, 2024
20344e5
fix 2theta and use NXobject instead of collection.
RubelMozumder Jul 19, 2024
3e63e69
reproducibity check.
RubelMozumder Jul 22, 2024
cb28e27
Merge pull request #272 from FAIRmat-NFDI/XRD_2thta_fix
RubelMozumder Jul 22, 2024
9a9c006
add radius to NXenergydispersion
lukaspie Jul 23, 2024
3503580
Merge pull request #273 from FAIRmat-NFDI/add-energydispersion-radius
lukaspie Jul 23, 2024
f75a298
Xrd modification (#274)
RubelMozumder Jul 26, 2024
df05bd4
Merge branch 'fairmat' into sprint22_microstructure
atomprobe-tc Jul 30, 2024
4769817
Merge branch 'fairmat' into sprint22_corrector
atomprobe-tc Jul 30, 2024
bc15717
Merge pull request #275 from FAIRmat-NFDI/sprint22_corrector
mkuehbach Jul 30, 2024
be26bdf
Implementing suggestions from lukaspie
atomprobe-tc Jul 30, 2024
e907edb
Refactored NXcoordinate_system_em_ebsd into NXem_ebsd
atomprobe-tc Jul 30, 2024
3ff26a8
Merge branch 'sprint23_em_v3' into sprint22_microstructure
atomprobe-tc Jul 30, 2024
1fb6b46
Merge pull request #276 from FAIRmat-NFDI/sprint22_microstructure
mkuehbach Jul 30, 2024
f773a95
Fix naming bug for monochromator_em
atomprobe-tc Aug 6, 2024
5d93521
Bug fixes in images and spectrum and renaming of groups, refining pre…
atomprobe-tc Aug 9, 2024
20b9207
Add circuit to component
atomprobe-tc Aug 13, 2024
7a42b65
Adding routine tests for py3.12
atomprobe-tc Aug 13, 2024
0e1e39f
Added circuit and corrected laziness error
atomprobe-tc Aug 13, 2024
44a21ae
Editing NXem for aberrations in event data
atomprobe-tc Aug 13, 2024
03499a7
Extension of Doc for Optical spectroscopy and Raman
Aug 13, 2024
bcbe708
Update webpage for optical spectroscopy
Aug 13, 2024
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
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
1,321 changes: 1,321 additions & 0 deletions applications/NXapm.nxdl.xml

Large diffs are not rendered by default.

56 changes: 56 additions & 0 deletions base_classes/NXactivity.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?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="NXactivity" extends="NXobject" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<doc>
A planned or unplanned action that has a temporal extension and for some time depends on some entity.

This class is planned be used in the future as the super class for all other activities if inheritance
in base classes is supported in NeXus.
</doc>
<field name="start_time" type="NX_DATE_TIME">
<doc>
ISO 8601 formatted time code (with local time zone offset to UTC information
included) when this activity started.
</doc>
</field>
<field name="end_time" type="NX_DATE_TIME">
<doc>
ISO 8601 formatted time code (with local time zone offset to UTC information
included) when this activity ended.
</doc>
</field>
<field name="description">
<doc>
Short description of the activity.
</doc>
</field>
<group name="notes" type="NXnote">
<doc>
This can be any data or other descriptor acquired during the activity
(NXnote allows to add pictures, audio, movies). Alternatively, a
reference to the location or a unique identifier or other metadata file. In the
case these are not available, free-text description.
</doc>
</group>
</definition>
2 changes: 1 addition & 1 deletion base_classes/NXactuator.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,4 @@
</doc>
</group>
<group type="NXfabrication"/>
</definition>
</definition>
168 changes: 168 additions & 0 deletions base_classes/NXapm_charge_state_analysis.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
<?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-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 also possible but different (molecular) ions.
</doc>
</symbol>
<symbol name="n_ivec_max">
<doc>
Maximum number of allowed atoms per (molecular) ion (fragment).
</doc>
</symbol>
<symbol name="n_variable">
<doc>
Number of entries
</doc>
</symbol>
</symbols>
<doc>
Base class to document an algorithm for recovering charge state and nuclide composition of a (molecular) ion.

Currently ranging definitions in the research field of atom probe face have limitations:

1. A ranging definition maps all signal within a mass-to-charge-state-ratio value interval
on one iontype. Facing limited mass-resolving-power, there are mass-to-charge-state-ratio
values, though, for which not only multiple (molecular) ions are indistinguishable but
also for which the current practice of documenting classical ranging definitions is incomplete.
2. Indeed, ranging definitions often report only (for each interval) the
mass-to-charge-state-ratio intervals surplus the composition of elements
that build the (molecular) ion.
3. Therefore, classical ranging definitions demand a post-processing with an algorithm
which can identify nuclides from which the (molecular) ion is constructed
and a charge state possibly recovered. Combinatorial algorithms are used for this purpose.

This base class documents the configuration and results of such an algorithm.
</doc>
<!--Details and results of the combinatorial analyses of a ranging definition
to clarify (if possible) the charge_state of an ion and its (not necessarily)
unique combination of nuclides contained including their multiplicity.
input/config-->
<field name="nuclides" type="NX_UINT" units="NX_UNITLESS">
<doc>
Input constraint, list of nuclide_hash for typically elements used for the
ranging definition of the ion whose charge state the analyses covered.
The list contains each hash as many times as its multiplicity.
Nuclides are encoded using the hashing rule that is defined in :ref:`NXion`.

As 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`.
An empty list does not release the constraint. Instead, a list with all elements
in the periodic table (encoded as nuclide_hash values) should be used, i.e.
:math:`1 + 0 \cdot 256`, :math:`2 + 0 \cdot 256`, and so on and so forth.

Keep in mind that with a weakly constrained parameter space the combinatorial
analysis may become very time consuming!
</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>
Input constraint, interval within which (molecular) ions need to have the
mass-to-charge-state-ratio such that an ion qualifies as a candidate.
</doc>
<dimensions rank="2">
<dim index="1" value="1"/>
<dim index="2" value="2"/>
</dimensions>
</field>
<field name="min_half_life" type="NX_FLOAT" units="NX_TIME">
<doc>
Input constraint, 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>
Input constraint, 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>
<!--min_abundance_product(NX_FLOAT):
doc: |
For each candidate TO BE DEFINED.
unit: NX_DIMENSIONLESS
dim: (n_cand,)-->
<!--output/results
the n_cand can be 1 in which case all quantities below are scalar-->
<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 values are nullified.
</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">
<doc>
For each candidate the half life of that nuclide which has the shortest half
life.
</doc>
<dimensions rank="1">
<dim index="1" value="n_cand"/>
</dimensions>
</field>
</definition>
111 changes: 111 additions & 0 deletions base_classes/NXapm_ranging.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
<?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-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 a certain interval.
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="NXserialized"/>
<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, increment, and largest mass-to-charge-state ratio value.
</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>
To begin with we use a free-text field to learn how
atom probers define a background model. Future versions
of NXapm_ranging can then use this information to parameterize
these models.
</doc>
</field>
</group>
<!--NEW ISSUE: add parameters of the background model in an e.g.
NXcollection as these are specific to every background model
NEW ISSUE: touching upon i.e. research activities by Andrew London et al.
substantiating the need for a clearer description how peak/signals were
eventually processed via deconvolution methods-->
<group name="peak_search_and_deconvolution" type="NXprocess">
<doc>
How where peaks in the background-corrected in the histogram
of mass-to-charge-state ratio values 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 reserve value. Consequently,
iontypes start counting 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.
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="NXion"/>
</group>
</definition>
Loading
Loading