diff --git a/applications/NXarpes.nxdl.xml b/applications/NXarpes.nxdl.xml index 8d17472ad3..e506cd3d29 100644 --- a/applications/NXarpes.nxdl.xml +++ b/applications/NXarpes.nxdl.xml @@ -3,7 +3,7 @@ @@ -114,7 +135,7 @@ cannot be made required as for simulations you do not have a run number! should be stored as individual :ref:`NXentry` instances in one NeXus file. - + Either an identifier or an alias that is human-friendly so that scientists find that experiment again. For experiments usually this is the run_number but for simulation typically no run_numbers are issued. @@ -167,6 +188,11 @@ the appdef definition here is nothing else then the documentation of this for a when the atom probe session ended. + + + How long did the measurement take e.g. use CRunHeader.CAnalysis.fElapsedTime + + @@ -454,7 +480,7 @@ schema for heat treatment - + Set to hold different coordinate systems conventions. Inspect the description of the :ref:`NXcoordinate_system_set` @@ -512,162 +538,250 @@ schema for heat treatment - - - - + + + Base class for collecting a session with a real atom probe or field-ion microscope. + + Workflows used during experiments or simulations of atom probe and related field-evaporation + research should be documented in more detail and be better contextualized not only because of + ongoing developments and the tighter becoming connection between atom probe and other + methods for material characterization foremost electron microscopy see e.g.: + + * `T. Kelly et al. <https://doi.org/10.1017/S1431927620022205>`_ + * `C. Fleischmann et al. <https://doi.org/10.1016/j.ultramic.2018.08.010>`_ + * `W. Windl et al. <https://doi.org/10.1093/micmic/ozad067.294>`_ + * `C. Freysoldt et al. <https://doi.org/10.1103/PhysRevLett.124.176801>`_ + * `G. da Costa et al. <https://doi.org/10.1038/s41467-024-54169-2>`_ + + to mention but a few. + + To arrive at a design of base classes and an application definition that can be used + for both real and simulated atom probe experiments it is worthwhile to recall concepts that are + related to events and (molecular) ions: + + * Pulsing events which are used to trigger ion extraction events. + * Physical events and corresponding signal triggered by an ion hitting the detector. + Some of these events are not necessarily caused by or directly correlated with an identifiable pulsing event. + * Processed ion hits which are the result of an algorithm that took the physical and pulsing events as input + and qualified some of these events as to be of sufficiently high quality to call them (molecular) ions that are + wortwhile to be considered further and eventually included in the reconstructed volume. + * Calibration and signal filtering steps applied to these processed ion hits as input which results in actually + selected (molecular) ions based on which an instance of a reconstruction is created. + * Correlation of these ions with a statistics and theoretical model of mass-to-charge-state ratio values + and charge states of the (molecular) ions to substantiate that some of these ions can be considered + as rangable ions and hence an iontype can be assigned to these via running peak finding algorithms + and subsequent peak labeling. In the field of atom probe this these peak identification methods + are known as ranging definitions. + + Not only in AMETEK/Cameca's IVAS/APSuite software, which the majority of atom probers use, these concepts + are well distinguished. However, the algorithms used to transform correlations between pulses and physical events + into actual events (detector hits) ions is a proprietary one - the so-called hit finding algorithm. + + Due to this practical inaccessibility of details, virtually all atom probe studies currently use a reporting scheme + where the course of the specimen evaporation is documented such that quantities are a function of evaporation identifier + i.e. actual event/ion, i.e. after having the hit finding algorithm and correlations applied. + That is evaporation_identifier values take the role of an implicit time and course of the experiment given that + ion extraction physically is a sequential process. + + There is a number of research groups who build own instruments and share different aspects of their technical + specifications and approaches how they apply data processing e.g.: + + * `M. Monajem et al. <https://doi.org/10.1017/S1431927622003397>`_ + * `P. Stender et al. <https://doi.org/10.1017/S1431927621013982>`_ + * `I. Dimkou et al. <https://doi.org/10.1093/micmic/ozac051>`_ + + to name but a few. + + Despite some of these activities embrace practices of open-source development, they use essentially the same + workflow that has been proposed by AMETEK/Cameca and its forerunner company Imago: A graphical user interface + software is used to explore and thus analyze reconstructed atom probe datasets. + + Specifically, software is used to correlate and interpret pulsing and physical events into processed ion hits. + Some of these ion hits are reported as (molecular) ions with ranged iontypes to yield a dataset based on which + scientific conclusions about the characterized material volume are made. Also here a reconstruction is + point cloud that serves as the proxy for the characterized material volume, i.e. the reconstruction is a model. + + By contrast, simulations of field-evaporation have the luxury to document the flight path and allow a following of all + the whereabouts of each ion evaporated if this is desired. This level of detail is currently not characterizable in experiment. + Thus, there is a divide between schemas describing simulations of atom probe vs measurements of atom probe. + We argue that this divide can be bridged with realizing the above-mentioned context and the realization that + similar concepts are used in both research realms with many concepts not only being similar but being exactly the same. + + A further argument to support this view is that computer simulations of atom probe usually are compared to reconstructed + datasets, either to the input configuration that served as the virtual specimen or to a real world atom probe experiment + and reconstructions computed from these. In both cases, the recorded simulated physical events of simulated ions hitting + a simulated detector is not the end of the research workflow but typically the input to apply additional algorithms such as + (spatial) filtering and reconstruction algorithms. + + Only the practical need for making ranging definitions is (at least as of now) not as much needed in field-evaporation + simulations than it is in real world measurements because each ion has a prescribed iontype in the simulation. + Be it a specifically charged nuclid or a molecular ion whose flight path the simulation resolves. + Although, in principle simpler though, we have to consider that this is caused by many assumptions made in the simulations. + Indeed, the multi-scale (time and space) aspects of the challenge that is the simulating of field-evaporation often require + simplifications because of otherwise too high becoming computing resource demands and existent knowledge gaps + in how to deal with all quantum physics complexities. Molecular ion dissociation upon flight is one such complexity. + Also the complexity of simulation setups is typically defined simpler in simulation (e.g. straight flight path assumption) + than in a measurement with a real instrument. In addition, simulation often also ignore objects and fields in the flight path + such as local electrodes or physical obstacles and electric fields (controlled or stray fields). + + + + - + - + - - - - - - - + - + - + - - + + - - - - The wavelength of the radiation emitted by the source. - - - - - - - The space inside the atom probe along which ions pass nominally - when they leave the specimen and travel to the detector. - - - - - + + + + Free text field for additional comments. + + - - - + + + A statement whether the measurement was successful or failed prematurely. + + + + + CAnalysis.CResults.fQuality + + + + + + Group to hold instances of :ref:`NXevent_data_apm`. + + Which temporal granularity is adequate depends on the situation and research + question. Using a model which enables a collection of events offers the most + flexible way to cater for both atom probe experiments or simulation. + + To monitor the course of an ion extraction experiment (or simulation) + it makes sense to track time explicitly via time stamps or implicitly + via e.g. a clock inside the instrument, such as the clock of the pulser + and respective pulsing event identifier. + + As set and measured quantities typically change over time and we do not + yet know during the measurement which of the events have associated + (molecular) ions that will end up in the reconstructed volume, we must not + document quantities as a function of the evaporated_identifier but as a + function of the (pulsing) event_identifier. + + + + + - - - - + + + - - - - - - - - - + + + + + + + + + + + + + + + - - - + + + + + - - - - + + + + + - + + - - + + + - - - - + + + - + + + + + - - + + + Simulation of ion extraction from matter via laser and/or voltage pulsing. + + + A region-of-interest analyzed either during or after the session for which specific processed data of the measured or simulated data are available. - - + - SEM or TEM image of the initial specimen i.e. - ideally taken prior to the data acquisition. + SEM or TEM image of the initial specimen (ideally taken prior data acquisition). @@ -688,9 +802,17 @@ NEW ISSUE: make this rather an own subentry NXapm_ranging--> - + + + For almost atom probe instruments (meta)data about raw data follow proprietary semantics. + Therefore, this group can currently be used only to point to these digital artifacts + in an effort to document all step of an analysis workflow. + + The physical quantities measured in an atom probe experiment are time-of-flight and + tuples of arrival_time_pairs as a function of the event chain on the pulser. + From these tuples hits are computed in a process called hit_finding. + @@ -701,11 +823,46 @@ a time series of the specimen shape evolution--> - - + + + + + + The number of wires in the detector. + + + + + + + + + + Alias tuple (begin, end) of each DLD wire of the detector. + Order follows arrival_time_pairs. + + + + + + + + + Raw readings from the analog-to-digital-converter + timing circuits of the detector wires. + + + + + + + - + + + Configuration of and results obtained from a hit finding algorithm. + - - - - - + + + Evaluated ion impact coordinates on the detector. + Use the depends_on field to specify which reference + frame the positions are defined. + - + + + + Defines in which reference frame the positions are defined. + + + + + + CRunHeader.fTotalEventGolden + - + + + CRunHeader.fTotalEventIncomplete + + + + + CRunHeader.fTotalEventMultiple + + + + + CRunHeader.fTotalEventPartials + + + + + CRunHeader.fTotalEventRecords + + + + + Identifier used for each hit_quality type. + Following the order of hit_quality_types. + - + - + + + Hit quality identifier for each pulse. + Identifier have to be within hit_quality_identifier. + - + + + + + + This processing yields for each ion with how many others it evaporated + if these were collected on the same pulse. Extraction of multiple ions + on one pulse on different or even the same pixel of the detector are possible. + + Multiplicity must not be confused with how many atoms of the same element + a molecular ion contains. + + + - + dim: (n,) +pulse_identifier(NX_INT): + dim: (n,) +at this point the original set of events p has been filtered down to p_out--> @@ -810,8 +1012,14 @@ i number of hits after hits finding but prior calibrations--> - - + + + + Configuration of and results obtained from a voltage-and-bowl time-of-flight correction algorithm. + + The voltage-and-bowl correction is a data post-processing step to correct ion impact + positions for flight path differences, detector biases, and nonlinearities. + @@ -824,18 +1032,28 @@ i number of hits after hits finding but prior calibrations--> - + + + Raw time-of-flight data without corrections. + - + + + The parameter :math:`t_0`, CAnalysis.CCalibMass.fT0Estimate + + + + + Calibrated time-of-flight. + @@ -902,7 +1120,7 @@ results--> - + @@ -971,8 +1189,6 @@ results--> - - @@ -981,7 +1197,6 @@ results--> - @@ -1075,6 +1290,8 @@ in an e.g. work of A. London et al.--> + + diff --git a/contributed_definitions/NXapm_charge_state_analysis.nxdl.xml b/contributed_definitions/NXapm_charge_state_analysis.nxdl.xml index e0adb79803..3b6b342a0a 100644 --- a/contributed_definitions/NXapm_charge_state_analysis.nxdl.xml +++ b/contributed_definitions/NXapm_charge_state_analysis.nxdl.xml @@ -3,7 +3,7 @@ - - - - The symbols used in the schema to specify e.g. dimensions of arrays. - - - - Number of delay-line wires of the detector. - - - - - Number of hit qualities (hit types) distinguished. - - - - - 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 ions included in the reconstructed volume if an application - definition is used to store results of already reconstructed datasets. - - - - - Base class for the configuration and results from a hit finding algorithm. - - - - - - - The number of wires in the detector. - - - - - - - - - - Alias tuple (begin, end) of each DLD wire of the detector. - Order follows arrival_time_pairs. - - - - - - - - - Raw readings from the analog-to-digital-converter - timing circuits of the detector wires. - - - - - - - - - - - Evaluated ion impact coordinates on the detector. - Use the depends_on field to spec - - - - - - - - Defines in which reference frame the positions are defined. - - - - - - Name of the hit_qualities distinguished. - AMETEK/Cameca uses e.g. golden, multiple, partial, - irrecoverable, and multi-first and multi-late. - - - - - - - - Identifier used for each hit_quality type. - Following the order of hit_quality_types. - - - - - Hit quality identifier for each pulse. - Identifier have to be within hit_quality_identifier. - - - - - - - - This processing yields for each ion with how many others it evaporated - if these were collected on the same pulse. Extraction of multiple ions - on one pulse on different or even the same pixel of the detector are possible. - - Multiplicity must not be confused with how many atoms of the same element - a molecular ion contains (which is instead encoded with the - isotope_vector field of each :ref:`NXion` instance). - - - - - - - diff --git a/contributed_definitions/NXapm_msr.nxdl.xml b/contributed_definitions/NXapm_msr.nxdl.xml deleted file mode 100644 index fd1a520394..0000000000 --- a/contributed_definitions/NXapm_msr.nxdl.xml +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - The symbols used in the schema to specify e.g. dimensions of arrays. - - - - Number of pulses collected in between start_time and end_time - resolved by an instance of :ref:`NXevent_data_apm`. - - - - - Base class for collecting a session with a real atom probe or field-ion microscope. - - Ideally, we would like to describe the workflow of experiments and simulations of atom probe and - field-evaporation simulation research in more detail and contextualize better descriptions of - experiments and computer simulations for atom probe research. - - The main motivation for this is the ongoing development and tighter becoming connection between atom probe - and other material characterization techniques foremost electron microscopy (see `T. Kelly et al. <https://doi.org/10.1017/S1431927620022205>`_, `C. Fleischmann et al. <https://doi.org/10.1016/j.ultramic.2018.08.010>`_, and `W. Windl et al. <https://doi.org/10.1093/micmic/ozad067.294>`_ or `C. Freysoldt et al. <https://doi.org/10.1103/PhysRevLett.124.176801>`_ to mention but a few). - To arrive at a design of base classes and an application definition which can be used for both real and simulated atom probe experiments, it is worthwhile to recall concepts that are related to events and (molecular) ions: - - * Pulsing events which are used to trigger ion extraction events. - * Physical events and corresponding signal triggered by an ion hitting the detector. - Some of these events are not necessarily caused by or directly correlated with an identifiable pulsing event. - * Processed ion hits which are the result of an algorithm that took the physical and pulsing events as input - and qualified some of these events as to be of sufficiently high quality to call them (molecular) ions that are - wortwhile to be considered further and eventually included in the reconstructed volume. - * Calibration and signal filtering steps applied to these processed ion hits as input which results in actually - selected (molecular) ions based on which an instance of a reconstruction is created. - * Correlation of these ions with a statistics and theoretical model of mass-to-charge-state ratio values - and charge states of the (molecular) ions to substantiate that some of these ions are can be considered - as rangable ions and hence an iontype can be associated by running peak finding algorithms and labeling - i.e. algorithms for defining ranging definitions. - - Not only in AMETEK/Cameca's IVAS/APSuite software, which the majority of atom probers use, these concepts - are well distinguished. However, the algorithms used to transform correlations between pulses and physical events - into actual events (detector hits) ions is a proprietary one. Due to this practical inaccessibility of details, - virtually all atom probe studies currently use a reporting scheme where the course of the specimen evaporation - is documented such that quantities are a function of evaporation identifier i.e. actual event/ion, i.e. after having - the hits finding algorithm and correlations applied. That is evaporation_identifier values take the role of an implicit - time and course of the experiment given that ion extraction is a sequential physical process. - - There is a number of research groups who build own instruments and share different aspects of their technical - specifications and approaches how they apply data processing (e.g. `M. Monajem et al. <https://doi.org/10.1017/S1431927622003397>`_, `P. Stender et al. <https://doi.org/10.1017/S1431927621013982>`_ , or `I. Dimkou et al. <https://doi.org/10.1093/micmic/ozac051>`_ to name but a few). - Despite some of these activities embrace practices of open-source development, they use essentially the same - workflow that has been proposed by AMETEK/Cameca and its forerunner company Imago: A graphical user interface - software is used to explore and thus analyze reconstructed atom probe datasets. - - Specifically, software is used to correlate and interpret pulsing and physical events into processed ion hits. - Some of these ion hits are reported as (molecular) ions with ranged iontypes to yield a dataset based on which - scientific conclusions about the characterized material volume are made. - - By contrast, simulations of field-evaporation have the luxury to document the flight path and allow following the - whereabouts of each ion evaporated if needed. This level of detail is currently not characterizable in experiment. - Thus, there is a divide between schemas describing simulations of atom probe vs measurements of atom probe. - We argue that this divide can be bridged with realizing the above-mentioned context and the realization that - similar concepts are used in both research realms with many concepts not only being similar but exactly the same. - - A further argument to support this view is that computer simulations of atom probe usually are compared to reconstructed - datasets, either to the input configuration that served as the virtual specimen or to a real world atom probe experiment - and its reconstructions. In both cases, the recorded simulated physical events of simulated ions hitting a simulated detector - is not the end of the research workflow but typically the input to apply addition algorithms such as (spatial) filtering - and reconstruction algorithms. Only the practical need for making ranging definitions is (at least as of now) not as much needed - in field-evaporation simulations than it is in real world measurements because each ion has a prescribed iontype in the simulation. - Be it a specifically charged nuclid or a molecular ion whose flight path the simulation resolves. - Although, in principle simpler though, we have to consider that this is caused by many assumptions made in the simulations. - Indeed, the multi-scale (time and space) aspects of the challenge that is the simulating of field-evaporation are simplified - because of otherwise too high computing resource demands and knowledge gaps in how to deal with some complexities. - Molecular ion dissociation upon flight is one such complexity. Also the complexity of simulation setups is simpler e.g. the assumption of a straight flight path - instrument is used or details are ignored such as local electrodes or physical obstacles and electric fields (controlled or stray fields). - - To conclude, we thus propose two base classes :ref:`NXapm_msr` and :ref:`NXapm_sim` where the second one may become - obsolete in the future as people realize that a simulated atom probe is maybe equivalent in design and function to a - real atom probe if considering that the simulation is just stripped of many components. - - - - Metadata of the atom probe or field-ion microscope instrument, henceforth called - microscope or instrument, and the lab in which it stands. - - - - - Given name of the microscope as defined by the hosting lab. This is an alias. - Examples could be LEAP6000, Raptor, Oxcart, one atom at a time, etc. - - - - - Location of the lab or place where the instrument is installed. - Using GEOREF is preferred. - - - - - - - A counter electrode of the LEAP 6000 series atom probes. - - - - - - A local electrode guiding the ion flight path. - Also called counter or extraction electrode. - - - - - - Detector for taking raw time-of-flight and ion/hit impact positions data. - - - - - - - - - - - - - - - A statement whether the measurement was successful or failed prematurely. - - - - - - - - - - diff --git a/contributed_definitions/NXapm_paraprobe_clusterer_config.nxdl.xml b/contributed_definitions/NXapm_paraprobe_clusterer_config.nxdl.xml index 21897a43b9..d8b35b2d46 100644 --- a/contributed_definitions/NXapm_paraprobe_clusterer_config.nxdl.xml +++ b/contributed_definitions/NXapm_paraprobe_clusterer_config.nxdl.xml @@ -3,7 +3,7 @@ error models, were interpreted as ion types or not. + + + 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. + + + + + 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. <https://doi.org/10.1017/S1431927621012241>`_). + + diff --git a/contributed_definitions/NXapm_reconstruction.nxdl.xml b/contributed_definitions/NXapm_reconstruction.nxdl.xml index 03f5ff7091..ab97a90d79 100644 --- a/contributed_definitions/NXapm_reconstruction.nxdl.xml +++ b/contributed_definitions/NXapm_reconstruction.nxdl.xml @@ -3,7 +3,7 @@ - - - - Base class for simulating ion extraction from matter via laser and/or voltage - pulsing. - - - diff --git a/contributed_definitions/NXapm_volt_and_bowl.nxdl.xml b/contributed_definitions/NXapm_volt_and_bowl.nxdl.xml deleted file mode 100644 index 30bdbb0fde..0000000000 --- a/contributed_definitions/NXapm_volt_and_bowl.nxdl.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - The symbols used in the schema to specify e.g. dimensions of arrays. - - - - Number of ions spatially filtered from results of the hit_finding algorithm - :ref:`NXapm_hit_finding` from which an instance of a reconstructed volume - has been generated. These ions get new identifier assigned in the process - - the so-called evaporation_identifier, which must not be confused with - the pulse_identifier! - - - - - Base class for the configuration and results from a voltage-and-bowl ToF correction algorithm. - - The voltage-and-bowl correction is a ata post-processing step to correct for ion impact position - flight path differences, detector biases, and nonlinearities. - - - - - - - Raw time-of-flight data without corrections. - - - - - - - - Calibrated time-of-flight. - - - - - - diff --git a/contributed_definitions/NXatom_set.nxdl.xml b/contributed_definitions/NXatom_set.nxdl.xml index 0a1e208560..c3e2cae5d4 100644 --- a/contributed_definitions/NXatom_set.nxdl.xml +++ b/contributed_definitions/NXatom_set.nxdl.xml @@ -3,7 +3,7 @@ - - - - - Set point temperature to achieve during the measurement. - - - - - Average temperature (at the specimen base) during the measurement. - - - - - - The best estimate, at experiment time, for the temperature at the - sample base (furthest point along sample apex and holding assembly - that is removable from the sample stage). - - - - - - - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - - - - - - - - Average pressure in the analysis chamber during the measurement. - - - - - Pressure in the analysis chamber. - - - - - - - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - - - - - - - - Pressure in the analysis chamber. - - - - - - - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - - - - - - - - Pressure in the analysis chamber. - - - - - - - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - - - - - - + diff --git a/contributed_definitions/NXevent_data_apm_set.nxdl.xml b/contributed_definitions/NXevent_data_apm_set.nxdl.xml deleted file mode 100644 index 96670759b5..0000000000 --- a/contributed_definitions/NXevent_data_apm_set.nxdl.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Base class for a set of :ref:`NXevent_data_apm` instances. - - Members of the set are instances of :ref:`NXevent_data_apm`. - These have an associated time interval during which the conditions - of the instrument were considered stable and fit enough for purpose. - - Which temporal granularity is adequate depends on the situation and research - question. Using a model which enables a collection of events offers the most - flexible way to cater for both atom probe experiments or simulation. - - To monitor the course of an ion extraction experiment (or simulation) - it makes sense to track time explicitly via time stamps or implicitly - via e.g. a clock inside the instrument, such as the clock of the pulser - and respective pulsing event identifier. - - As set and measured quantities typically change over time and we do not - yet know during the measurement which of the events have associated - (molecular) ions that will end up in the reconstructed volume, we must not - document quantities as a function of the evaporated_identifier but as a - function of the (pulsing) event_identifier. - - - diff --git a/contributed_definitions/NXevent_data_em.nxdl.xml b/contributed_definitions/NXevent_data_em.nxdl.xml index 85f847e3da..19f91469fc 100644 --- a/contributed_definitions/NXevent_data_em.nxdl.xml +++ b/contributed_definitions/NXevent_data_em.nxdl.xml @@ -3,7 +3,7 @@ + + + + Base class to document an instrument used for atom probe microscopy. + + Inheriting from NXinstrument, this base class is designed to offer the same concepts about + instrument-centric metadata to be used in two places inside NXapm without demanding that + the application definition needs to define the concepts in two places as maintaining this is + prone to errors. This base class implements the key design idea behind the NXapm application + definition in that we would like to offer a design where all (meta)data which over the course + of a measurement remain static can be stored only once and without polluting the application + definition with another group with concepts that should be used for storing (meta)data about + the instrument during events that happen during the course of the measurement. + + This design was inspired by NXem and electron microscopy where typically the instrument is + used in sessions and dozens of logical sets of data are collected under not necessarily always + the same instrument conditions. We do not want to repeat therefore the static (meta)data, as + this is redundant storage by virtue of design. The typical example is an electron microscope + where hundreds of images are taken and all static instrument data stored with each image. + This makes sense in cases when the image is used as a digital artifact that is exchanged across + different software applications or research data management systems but as in NeXus there + is either all information bundled into one artifact or there is a coordinating master artifact + that references related artifacts there is no point to store hundreds of times that always the + same microscope with the same lens setup was used to collect these images. + + + + Which type of instrument. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Location of the lab or place where the instrument is installed. Using GEOREF is + preferred. + + + + + Device which reduces ToF differences of ions in ToF experiments. + + For atom probe the reflectron can be considered an energy compensation device. + Such a device can be realized technically for example with a Poschenrieder lens. + + Consult the following U.S. patents for further details: + + * 3863068 and 6740872 for the reflectron + * 8134119 for the curved reflectron + + + + Presence and status of the reflectron. + + + + + + + + + Given name/alias. + + + + + Free-text field to specify further details about the reflectron. + The field can be used to inform e. g. if the reflectron is flat or curved. + + + + + The maximum voltage applied to the reflectron, relative to system ground. + + + + + + Affine transformation(s) which detail where the reflectron is located + relative to e.g. the origin of the specimen space reference coordinate + system. This group can also be used for specifying how the reflectron + is rotated relative to a given axis in the instrument. + + + + + + A counter electrode of the LEAP 6000 series atom probes. + + + + + + A local electrode guiding the ion flight path. + Also called counter or extraction electrode. + + + + Acceleration voltage + + + + + + + Detector for taking raw time-of-flight and ion/hit impact positions data. + + + + Amplitude of the signal detected on the multi-channel plate (MCP). + + This field should be used for storing the signal amplitude quantity + within ATO files. The ATO file format is used primarily by the + atom probe groups of the GPM in Rouen, France. + + + + + + + + CRunHeader.fMcpEfficiency + + + + + CRunHeader.fMeshEfficiency + + + + + + + Laser- and/or voltage-pulsing device to trigger ion removal. + + + + + + Detail whereby ion extraction is triggered methodologically. + + + + + + + + + + + + + Frequency with which the pulser fire(s). + + + + Path to pulse_identifier + + + + + + Fraction of the pulse_voltage that is applied in addition + to the standing_voltage at peak voltage of a pulse. + + If a standing voltage is applied, this gives nominal pulse fraction + (as a function of standing voltage). Otherwise, this field should + not be present. + + + + Path to pulse_identifier + + + + + + + Pulsed voltage, in laser pulsing mode this field can be omitted. + + + + Path to pulse_identifier + + + + + + Absolute number of pulses starting from the beginning of the experiment. + + + + Path to pulse_identifier + + + + + + + Direct current voltage between the specimen and the (local electrode) in + the case of local electrode atom probe (LEAP) instrument. Otherwise, the + standing voltage applied to the sample, relative to system ground. + + + + Path to pulse_identifier + + + + + + Atom probe microscopes use controlled laser, voltage, or a combination of + pulsing strategies to trigger ion extraction via exciting and eventual field evaporation + field emission of ion at the specimen surface. + + + + + The wavelength of the radiation emitted by the source. + + + + + Nominal power of the laser source while illuminating the specimen. + + + + + Average energy of the laser at peak of each pulse. + + + + Path to pulse_identifier + + + + + + Details about specific positions along the laser beam + which illuminates the (atom probe) specimen. + + + + Track time-dependent settings over the course of the measurement + how the laser beam shines on the specimen, i.e. the mean vector + is parallel to the laser propagation direction. + + + + Path to pulse_identifier + + + + + + Track time-dependent settings over the course of the measurement + where the laser beam exits the focusing optics. + + + + Path to pulse_identifier + + + + + + Track time-dependent settings over the course of the + measurement where the laser hits the specimen. + + + + Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. + + + + + + + Affine transformations which describe the geometry how the + laser focusing optics/pinhole-attached coordinate system is + defined, how it has to be transformed so that it aligns with + the specimen coordinate system. + + + + + + + + CRunHeader.CAnalysis.fSpecimenTemperature + + + + + + + + The space inside the atom probe along which ions pass nominally + when they leave the specimen and travel to the detector. + + + + + CRunHeader.CLasHeader.fAnalysisPressure + + + + + + + + + + + Free-text field for additional comments. + + + + + Relevant quantities during a measurement with a LEAP system as were + suggested by `T. Blum et al. <https://doi.org/10.1002/9781119227250.ch18>`_. + + + + Parameter set typically in the GUI of the control software which + defines the rules and control loops whereby the pulser and other + components of the instrument are controlled during evaporation. + + + + + Control parameter set typically in the GUI relevant to assure that + the instrument internally controls its settings such to assure a + significant yet not too high ion influx on the detector to avoid + detection losses. + + + + diff --git a/contributed_definitions/NXinteraction_vol_em.nxdl.xml b/contributed_definitions/NXinteraction_vol_em.nxdl.xml index f8d8a669f2..ae0f63ccb2 100644 --- a/contributed_definitions/NXinteraction_vol_em.nxdl.xml +++ b/contributed_definitions/NXinteraction_vol_em.nxdl.xml @@ -3,7 +3,7 @@ - - - - The symbols used in the schema to specify e.g. dimensions of arrays. - - - - Number of pulses collected in between start_time and end_time - resolved by an instance of :ref:`NXevent_data_apm`. - - - - - Base class for a laser- and/or voltage-pulsing device used in atom probe - microscopy. - - - - - Detail whereby ion extraction is triggered methodologically. - - - - - - - - - - - Frequency with which the pulser fire(s). - - - - - - - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - - - - - - Fraction of the pulse_voltage that is applied in addition - to the standing_voltage at peak voltage of a pulse. - - If a standing voltage is applied, this gives nominal pulse fraction - (as a function of standing voltage). Otherwise, this field should - not be present. - - - - - - - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - - - - - - - Pulsed voltage, in laser pulsing mode this field can be omitted. - - - - - - - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - - - - - - Absolute number of pulses starting from the beginning of the experiment. - - - - - - - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - - - - - - - Direct current voltage between the specimen and the (local electrode) in - the case of local electrode atom probe (LEAP) instrument. Otherwise, the - standing voltage applied to the sample, relative to system ground. - - - - - - - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - - - - - - Atom probe microscopes use controlled laser, voltage, or a combination of - pulsing strategies to trigger ion extraction via exciting and eventual field evaporation - field emission of ion at the specimen surface. - - - - Given name/alias. - - - - - - Nominal wavelength of the laser radiation. - - - - - Nominal power of the laser source while illuminating the specimen. - - - - - Average energy of the laser at peak of each pulse. - - - - - - - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - - - - - - Details about specific positions along the laser beam - which illuminates the (atom probe) specimen. - - - - Track time-dependent settings over the course of the measurement - how the laser beam shines on the specimen, i.e. the mean vector - is parallel to the laser propagation direction. - - - - - - - - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - - - - - - Track time-dependent settings over the course of the measurement - where the laser beam exits the focusing optics. - - - - - - - - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - - - - - - Track time-dependent settings over the course of the - measurement where the laser hits the specimen. - - - - - - - - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - - - - - - - Affine transformations which describe the geometry how the - laser focusing optics/pinhole-attached coordinate system is - defined, how it has to be transformed so that it aligns with - the specimen coordinate system. - - - - - diff --git a/contributed_definitions/NXpump.nxdl.xml b/contributed_definitions/NXpump.nxdl.xml index 45a86edada..e1437713aa 100644 --- a/contributed_definitions/NXpump.nxdl.xml +++ b/contributed_definitions/NXpump.nxdl.xml @@ -3,7 +3,7 @@ - - - - The symbols used in the schema to specify e.g. dimensions of arrays. - - - - Number of pulses collected in between start_time and end_time - resolved by an instance of :ref:`NXevent_data_apm`. - - - - - Base class for a device which reduces ToF differences of ions in ToF experiments. - - For atom probe the reflectron can be considered an energy compensation device. - Such a device can be realized technically for example with a Poschenrieder lens. - - Consult the following U.S. patents for further details: - - * 3863068 and 6740872 for the reflectron - * 8134119 for the curved reflectron - - - - Status of eventual existence and potential usage of this reflectron. - - - - - - - - - - Given name/alias. - - - - - - Free-text field to specify further details about the reflectron. - The field can be used to inform e. g. if the reflectron is flat or curved. - - - - - The maximum voltage applied to the reflectron, relative to system ground. - - - - - - Affine transformation(s) which detail where the reflectron is located - relative to e.g. the origin of the specimen space reference coordinate - system. This group can also be used for specifying how the reflectron - is rotated relative to a given axis in the instrument. - - - - diff --git a/contributed_definitions/NXresolution.nxdl.xml b/contributed_definitions/NXresolution.nxdl.xml index 4197d55506..b01e1ecdce 100644 --- a/contributed_definitions/NXresolution.nxdl.xml +++ b/contributed_definitions/NXresolution.nxdl.xml @@ -3,7 +3,7 @@ +# +# +# A generic positioner such as a motor or piezo-electric transducer. +# +# +# +# symbolic or mnemonic name (one word) +# +# +# +# +# description of positioner +# +# +# +# +# best known value of positioner - need [n] as may be scanned +# +# +# +# +# +# +# +# raw value of positioner - need [n] as may be scanned +# +# +# +# +# +# +# +# targeted (commanded) value of positioner - need [n] as may be scanned +# +# +# +# +# +# +# +# maximum allowable difference between target_value and value +# +# +# +# +# +# +# +# minimum allowed limit to set value +# +# +# +# +# maximum allowed limit to set value +# +# +# +# +# velocity of the positioner (distance moved per unit time) +# +# +# +# +# time to ramp the velocity up to full speed +# +# +# +# +# Hardware device record, e.g. EPICS process variable, taco/tango ... +# +# +# +# +# .. index:: plotting +# +# Declares which child group contains a path leading +# to a :ref:`NXdata` group. +# +# It is recommended (as of NIAC2014) to use this attribute +# to help define the path to the default dataset to be plotted. +# See https://www.nexusformat.org/2014_How_to_find_default_data.html +# for a summary of the discussion. +# +# +# +# +# NeXus positions components by applying a set of translations and rotations +# to apply to the component starting from 0, 0, 0. The order of these operations +# is critical and forms what NeXus calls a dependency chain. The depends_on +# field defines the path to the top most operation of the dependency chain or the +# string "." if located in the origin. Usually these operations are stored in a +# NXtransformations group. But NeXus allows them to be stored anywhere. +# +# .. todo:: +# Add a definition for the reference point of a positioner. +# +# +# +# +# This is the group recommended for holding the chain of translation +# and rotation operations necessary to position the component within +# the instrument. The dependency chain may however traverse similar groups in +# other component groups. +# +# +# +# +# To clarify the frame laboratory frame. The scanning area in x, y, and z position in the +# frame. +# +# +# +# +# This controllers task is to continuously adjust the Z position of the stm tip in order +# to keep the selected control signal as close as possible to the Set Point. Different control +# signals lead to different contronller beahvior. +# +# +# +# +# Offset added to the initial averaged position Zaver before starting to swepp. +# +# +# +# +# Indicate the tip position Z between tip and sample. The tip position can also be varied when +# the controller is not running. +# +# +# +# +# Controller name. This name which will be displayed at places where you can select a +# controller. +# +# +# +# +# Set Point is the desired value of the control signal. It can be set by editing the number +# or using the slider bar. Click the "Set" button above the input field to use the actual +# value as Set Point. The slider shows the Set Point as well as the current value. +# +# +# +# +# Lifts the tip by the specified amount when then controller is switched off. This can be +# a positive or a negative number, i.e. the tip can also be moved towards the sample. Be +# careful with sign and value when using this feature. +# +# +# +# +# Use this parameter for a reproducible position when switching off the Z-controller. +# When >0 and the Z-controller is switched off, it doesn't switch off immediately but continues +# to run for the specified time and averages the Z position. +# +# +# +# +# (In bias spectroscopy) Select whether to set the Z-Controller on hold (i.e. disabled) during +# the sweep. It is selected by default. When deselected, Z-offset and Z control time parameters +# are disabled. +# +# +# +# +# The final z-position during the bias spectroscopy scan. The availability of values is +# related to the mode of scanning. +# +# +# +# +# +# Configure the scan frame like x position; y position; width; height. +# +# +# +# +# Scan resolution by setting the Lines equal to Pixels. +# +# +# +# +# Define the image resolution. +# +# +# +# +# Define the scan forward speed in the forward direction. +# +# +# +# +# Define the scan backward speed in the forward direction. +# +# +# +# +# Piezo calibration module is used to define the X Y Z piezos calibration. +# +# +# +# +# The name of calibration type. +# +# +# +# +# +# +# The Type switches controller parameters between :math:`P/I` (proportional gain/integral gain) and :math:`P/T` +# (proportional gain/time constant). The formula for the controller in the frequency domain is: +# :math:`G(s) = P + I/s = P(1 + 1/(Ts))`. +# The integral gain and time constant are related as follows: :math:`I = P/T`. +# +# +# +# +# The Type switches controller parameters between :math:`P/I` (proportional gain/integral gain) and +# P/T (proportional gain/time constant). The formula for the controller in the frequency +# domain is: :math:`G(s) = P + I/s = P(1 + 1/(Ts))`. The integral gain and time constant are related +# as follows: `:math:I = P/T`. +# +# +# +# +# The Type switches controller parameters between :math:`P/I` (proportional gain/integral gain) and +# :math:`P/T` (proportional gain/time constant). The formula for the controller in the frequency +# domain is: :math:`G(s) = P + I/s = P(1 + 1/(Ts))`. The integral gain and time constant are related +# as follows: :math:`I = P/T`. +# +# +# +# +# +# There are 2 parameters in X and Y directions. If you know them, you can enter the 2nd order +# piezo characteristics to compensate for it. The following equation shows the interpretation +# of the 2nd order correction parameter: For the X-piezo: +# :math:`Ux = 1/cx · X + cxx · X2`; with units: :math:`[V] = [V/m] · [m] + [V/m2] · [m2]` +# where cx is the calibration of the piezo X and cxx is the 2nd order correction. :math:`(V/m^2)` +# +# +# +# +# There are 2 parameters in X and Y directions. Define the drift speed for all three axes. +# When the compensation is on, the piezos will start to move at that speed. +# +# +# +# +# Use the button to turn on/off the drift compensation. +# +# +# diff --git a/contributed_definitions/nyaml/NXpulser_apm.yaml b/contributed_definitions/nyaml/NXpulser_apm.yaml deleted file mode 100644 index fbb3a8cf4c..0000000000 --- a/contributed_definitions/nyaml/NXpulser_apm.yaml +++ /dev/null @@ -1,134 +0,0 @@ -category: base -doc: | - Base class for a laser- and/or voltage-pulsing device used in atom probe microscopy. -symbols: - doc: | - The symbols used in the schema to specify e.g. dimensions of arrays. - p: | - Number of pulses collected in between start_time and end_time - resolved by an instance of :ref:`NXevent_data_apm`. -type: group -NXpulser_apm(NXobject): - (NXfabrication): - pulse_mode(NX_CHAR): - doc: | - Detail whereby ion extraction is triggered methodologically. - enumeration: [laser, voltage, laser_and_voltage] - pulse_frequency(NX_FLOAT): - doc: | - Frequency with which the pulser fire(s). - # the example of how the IFES APT TC's HDF format deals with such data conceptually, concepts are mixed into superconcepts interleaved tuple with different units: "PulseFrequency : Real array, 2xn (Hz) This is the frequency of the high voltage or laser pulser. first entry : first pulse number where the spacing between this and all subsequent pulses are considered to be at the selected frequency. Each first entry must be strictly increasing in value. The second entry contains the frequency value" as data can be compressed in this case very efficiently we go for with an array of length 1xn_ions - unit: NX_FREQUENCY - dim: (p,) - \@logged_against(NX_CHAR): - doc: | - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - pulse_fraction(NX_FLOAT): - doc: | - Fraction of the pulse_voltage that is applied in addition - to the standing_voltage at peak voltage of a pulse. - - If a standing voltage is applied, this gives nominal pulse fraction - (as a function of standing voltage). Otherwise, this field should - not be present. - unit: NX_DIMENSIONLESS - dim: (p,) - \@logged_against(NX_CHAR): - doc: | - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - pulse_voltage(NX_FLOAT): - doc: | - Pulsed voltage, in laser pulsing mode this field can be omitted. - # example of a conditional requirement that can be dealt with igorously by OWL but not by NeXus! - # as either pulse_voltage is required in an appdef but then that - # existence constraint is independent of other values. - unit: NX_VOLTAGE - dim: (p,) - \@logged_against(NX_CHAR): - doc: | - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - pulse_number(NX_UINT): - doc: | - Absolute number of pulses starting from the beginning of the experiment. - unit: NX_UNITLESS - dim: (p,) - \@logged_against(NX_CHAR): - doc: | - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - # eventually equivalent to pulse_identifier within NXevent_data_apm - standing_voltage(NX_FLOAT): - doc: | - Direct current voltage between the specimen and the (local electrode) in - the case of local electrode atom probe (LEAP) instrument. Otherwise, the - standing voltage applied to the sample, relative to system ground. - unit: NX_VOLTAGE - dim: (p,) - \@logged_against(NX_CHAR): - doc: | - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - (NXsource): - doc: | - Atom probe microscopes use controlled laser, voltage, or a combination of - pulsing strategies to trigger ion extraction via exciting and eventual field evaporation - field emission of ion at the specimen surface. - name(NX_CHAR): - doc: | - Given name/alias. - (NXfabrication): - wavelength(NX_FLOAT): - doc: | - Nominal wavelength of the laser radiation. - unit: NX_WAVELENGTH - power(NX_FLOAT): - doc: | - Nominal power of the laser source while illuminating the specimen. - unit: NX_POWER - pulse_energy(NX_FLOAT): - doc: | - Average energy of the laser at peak of each pulse. - unit: NX_ENERGY - dim: (p,) - \@logged_against(NX_CHAR): - doc: | - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - (NXbeam): - doc: | - Details about specific positions along the laser beam - which illuminates the (atom probe) specimen. - incidence_vector(NX_NUMBER): - doc: | - Track time-dependent settings over the course of the measurement - how the laser beam shines on the specimen, i.e. the mean vector - is parallel to the laser propagation direction. - unit: NX_LENGTH - dim: (p, 3) - \@logged_against(NX_CHAR): - doc: | - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - pinhole_position(NX_NUMBER): - doc: | - Track time-dependent settings over the course of the measurement - where the laser beam exits the focusing optics. - unit: NX_LENGTH - dim: (p, 3) - \@logged_against(NX_CHAR): - doc: | - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - spot_position(NX_NUMBER): - doc: | - Track time-dependent settings over the course of the - measurement where the laser hits the specimen. - unit: NX_LENGTH - dim: (p, 3) - \@logged_against(NX_CHAR): - doc: | - Path to pulse_identifier in an instance of :ref:`NXevent_data_apm`. - (NXtransformations): - doc: | - Affine transformations which describe the geometry how the - laser focusing optics/pinhole-attached coordinate system is - defined, how it has to be transformed so that it aligns with - the specimen coordinate system. - # A right-handed Cartesian coordinate system, the so-called laser space, - # should be assumed, whose positive z-axis points - # into the direction of the propagating laser beam. diff --git a/contributed_definitions/nyaml/NXreflectron.yaml b/contributed_definitions/nyaml/NXreflectron.yaml deleted file mode 100644 index bb8eb03b54..0000000000 --- a/contributed_definitions/nyaml/NXreflectron.yaml +++ /dev/null @@ -1,46 +0,0 @@ -category: base -doc: | - Base class for a device which reduces ToF differences of ions in ToF experiments. - - For atom probe the reflectron can be considered an energy compensation device. - Such a device can be realized technically for example with a Poschenrieder lens. - - Consult the following U.S. patents for further details: - - * 3863068 and 6740872 for the reflectron - * 8134119 for the curved reflectron - -symbols: - doc: | - The symbols used in the schema to specify e.g. dimensions of arrays. - p: | - Number of pulses collected in between start_time and end_time - resolved by an instance of :ref:`NXevent_data_apm`. -type: group -NXreflectron(NXobject): - status(NX_CHAR): - doc: | - Status of eventual existence and potential usage of this reflectron. - enumeration: [none, present, used] - name(NX_CHAR): - doc: | - Given name/alias. - (NXfabrication): - description(NX_CHAR): - doc: | - Free-text field to specify further details about the reflectron. - The field can be used to inform e. g. if the reflectron is flat or curved. - voltage(NX_FLOAT): - doc: | - The maximum voltage applied to the reflectron, relative to system ground. - unit: NX_VOLTAGE - # dim: (p,) - (NXtransformations): - doc: | - Affine transformation(s) which detail where the reflectron is located - relative to e.g. the origin of the specimen space reference coordinate - system. This group can also be used for specifying how the reflectron - is rotated relative to a given axis in the instrument. - # The purpose of these more detailed instrument descriptions - # is to support the creation of a digital twin of the instrument - # for computational science. diff --git a/manual/source/classes/contributed_definitions/apm-structure.rst b/manual/source/classes/contributed_definitions/apm-structure.rst index 2cbeaae4a3..2e4beb8df8 100644 --- a/manual/source/classes/contributed_definitions/apm-structure.rst +++ b/manual/source/classes/contributed_definitions/apm-structure.rst @@ -47,7 +47,7 @@ The following base classes are proposed to support modularizing the storage of p Base classes to describe different coordinate systems used and/or to be harmonized or transformed into one another when interpreting the dataset. - :ref:`NXion`: (about to become replaced by :ref:`NXatom_set`) + :ref:`NXion`: (about to become replaced by NXatom) A base class to describe molecular ions with an adjustable number of atoms/isotopes building each ion. For the usage in atom probe research the maximum number of atoms supported building a molecular ion is currently set to a maximum of 32. Suggestions made in reference `DOI: 10.1017/S1431927621012241 `_ are used to map isotope to hash values with @@ -65,13 +65,6 @@ The following base classes are proposed to support modularizing the storage of p :ref:`NXpump`: A base class to describe details about pump(s) used as components of an instrument. - :ref:`NXpulser_apm`: - A base class to describe the high-voltage and/or laser pulsing capabilities. - - :ref:`NXreflectron`: - A base class to describe a kinetic-energy-sensitive filtering device - for time-of-flight (ToF) mass spectrometry. - :ref:`NXstage_lab`: A base class to describe the specimen fixture including the cryo-head. Nowadays, stages of microscopes represent small-scale laboratory platforms. @@ -84,29 +77,12 @@ Microscopy experiments, not only taking into account those performed on commerci data processing steps. Some of them are frequently applied on-the-fly. For now we represent these steps with specifically named instances of the :ref:`NXprocess` base class. -Several base classes were defined to document processing of atom probe data with established algorithms: - - :ref:`NXapm_hit_finding`: - A base class to describe hit finding algorithm. - - :ref:`NXapm_volt_and_bowl`: - A base class to describe the voltage-and-bowl correction. - - :ref:`NXapm_charge_state_analysis`: - A base class to document the resolving of the charge_state. - - :ref:`NXapm_reconstruction`: - A base class to document the tomographic reconstruction algorithm. - - :ref:`NXapm_ranging`: - A base class to document the ranging process. - - :ref:`NXapm_msr`, :ref:`NXapm_sim`: - Respective base classes that serve as templates to compose the :ref:`NXapm` application definition from. - -These base classes are examples that substantiate that data processing steps are essential to transform atom probe measurements or simulations into knowledge. Therefore, these steps should be documented -to enable reproducible research, if possible even numerical reproducibility of the results, -and learn how pieces of information are connected. In what follows, an example is presented how an +Several instances of NXprocess were defined in NXapm to document processing of atom probe data +including hit finding, voltage-and-bowl correction, combinatorial recovery of charge states, reconstruction, +and ranging definitions. These base classes are examples that substantiate that data processing steps are +essential when transforming atom probe measurements or simulations into knowledge. Consequently, these +steps should be documented to enable reproducible research, if possible even numerical reproducibility +of the results, and to learn better the workflow. In what follows, an example is presented how an open-source community software can be modified to use descriptions of these computational steps. A detailed inspection of spatial and other type of filters frequently used in analysis of atom probe