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

NXsource: type extended, previous_source added #299

Merged
merged 4 commits into from
Sep 24, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions base_classes/NXsource.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,22 @@
<item value="Ion Source"/>
<item value="UV Plasma Source"/>
<item value="Metal Jet X-ray"/>
<item value="Laser"/>
<item value="Dye-Laser"/>
<item value="Broadband Tunable Light Source"/>
<item value="Halogen lamp"/>
<item value="LED"/>
<item value="Mercury Cadmium Telluride"/>
<item value="Deuterium Lamp"/>
<item value="Xenon Lamp"/>
<item value="Globar"/>
<item value="Other"/>
</enumeration>
<field name="type_other" optional="true">
<doc>
Specification of type, may also go to name.
</doc>
</field>
</field>
<field name="probe">
<doc>
Expand Down Expand Up @@ -270,6 +285,18 @@
"Engineering" location of source.
</doc>
</group>
<field name="previous_source">
<doc>
Single instance or list of instances of NXsource pointing to the sources from which a beam originated to reach this source.

This can be used, for example, for secondary sources to describe which other source(s) they are derived from.

An example is is the white light source in transient absorption spectroscopy, which is a supercontinuum crystal that is pumped by a
another laser.

In case of a primary source, this field should not be filled.
</doc>
</field>
<group type="NXaperture">
<doc>
The size and position of an aperture inside the source.
Expand Down
45 changes: 43 additions & 2 deletions base_classes/nyaml/NXsource.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@ NXsource(NXobject):
type:
doc: |
type of radiation source (pick one from the enumerated list and spell exactly)
enumeration: [Spallation Neutron Source, Pulsed Reactor Neutron Source, Reactor Neutron Source, Synchrotron X-ray Source, Pulsed Muon Source, Rotating Anode X-ray, Fixed Tube X-ray, UV Laser, Free-Electron Laser, Optical Laser, Ion Source, UV Plasma Source, Metal Jet X-ray]
enumeration: [Spallation Neutron Source, Pulsed Reactor Neutron Source, Reactor Neutron Source, Synchrotron X-ray Source, Pulsed Muon Source, Rotating Anode X-ray, Fixed Tube X-ray, UV Laser, Free-Electron Laser, Optical Laser, Ion Source, UV Plasma Source, Metal Jet X-ray, Laser, Dye-Laser, Broadband Tunable Light Source, Halogen lamp, LED, Mercury Cadmium Telluride, Deuterium Lamp, Xenon Lamp, Globar, Other]
type_other:
exists: optional
doc: |
Specification of type, may also go to name.
probe:
doc: |
type of radiation probe (pick one from the enumerated list and spell exactly)
Expand Down Expand Up @@ -165,6 +169,16 @@ NXsource(NXobject):
Use the field `depends_on` and :ref:`NXtransformations` to position the source and NXoff_geometry to describe its shape instead
doc: |
"Engineering" location of source.
previous_source:
doc: |
Single instance or list of instances of NXsource pointing to the sources from which a beam originated to reach this source.

This can be used, for example, for secondary sources to describe which other source(s) they are derived from.

An example is is the white light source in transient absorption spectroscopy, which is a supercontinuum crystal that is pumped by a
another laser.

In case of a primary source, this field should not be filled.
(NXaperture):
doc: |
The size and position of an aperture inside the source.
Expand Down Expand Up @@ -215,7 +229,7 @@ NXsource(NXobject):
other component groups.

# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++
# 2e2112dcd5b309b4339af1ac92e7ff2d12e639c98146519a85e6f4bdd85adbb2
# 85aeee60c481b19706ad2a9cfe0369016cb5915b471dfa74d752efe51d8400ee
# <?xml version='1.0' encoding='UTF-8'?>
# <?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
# <!--
Expand Down Expand Up @@ -281,7 +295,22 @@ NXsource(NXobject):
# <item value="Ion Source"/>
# <item value="UV Plasma Source"/>
# <item value="Metal Jet X-ray"/>
# <item value="Laser"/>
# <item value="Dye-Laser"/>
# <item value="Broadband Tunable Light Source"/>
# <item value="Halogen lamp"/>
# <item value="LED"/>
# <item value="Mercury Cadmium Telluride"/>
# <item value="Deuterium Lamp"/>
# <item value="Xenon Lamp"/>
# <item value="Globar"/>
# <item value="Other"/>
# </enumeration>
# <field name="type_other" optional="true">
# <doc>
# Specification of type, may also go to name.
# </doc>
# </field>
# </field>
# <field name="probe">
# <doc>
Expand Down Expand Up @@ -488,6 +517,18 @@ NXsource(NXobject):
# "Engineering" location of source.
# </doc>
# </group>
# <field name="previous_source">
# <doc>
# Single instance or list of instances of NXsource pointing to the sources from which a beam originated to reach this source.
#
# This can be used, for example, for secondary sources to describe which other source(s) they are derived from.
#
# An example is is the white light source in transient absorption spectroscopy, which is a supercontinuum crystal that is pumped by a
# another laser.
#
# In case of a primary source, this field should not be filled.
# </doc>
# </field>
# <group type="NXaperture">
# <doc>
# The size and position of an aperture inside the source.
Expand Down
117 changes: 59 additions & 58 deletions contributed_definitions/NXoptical_spectroscopy.nxdl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
04/2024
Extension of the Draft Version (05/2023) of a NeXus application definition which
serves as a template for various optical spectroscopy experiments

TODO:
- Add NXlens_opt and NXwaveplate to NXinstrument?
- Make polfilter_TYPE(NXbeam_device) own base class -\-> rework NXpolarizer_opt. and add them to NXinstrument.
Expand Down Expand Up @@ -59,7 +58,7 @@ TODO:
</symbol>
</symbols>
<doc>
A general application definition of optical spectroscopy elements, which may
A general application definition of optical spectroscopy elements, which may
be used as a template to derive specialized optical spectroscopy experiments.

Possible specializations are ellipsometry, Raman spectroscopy, photoluminescence,
Expand Down Expand Up @@ -228,7 +227,7 @@ TODO:
Contact information and eventually details of at persons who
performed the measurements. This can be for example the principal
investigator or student. Examples are: name, affiliation, address, telephone
number, email, role as well as identifiers such as orcid or similar.
number, email, role as well as identifiers such as orcid or similar.
It is recommended to add multiple users if relevant.

Due to data privacy concerns, there is no minimum requirement.
Expand Down Expand Up @@ -264,7 +263,7 @@ TODO:
If this beam is the output of a source, chose the same
name appendix as for the NXsource instance (e.g. TYPE=532nm)
</doc>
<field name="parameter_reliability" optional="false">
<field name="parameter_reliability">
<doc>
Select the reliability of the respective beam characteristics. Either,
the parameters are measured via another device or method or just given
Expand Down Expand Up @@ -349,31 +348,30 @@ TODO:
possible.
</doc>
<!--Define a similar convention for NXoptical_spectroscopy? Or only for NXraman, NXellipsometry and NXphotoluminescence?
Fields should be named according to new following convention:

- **pixel_x**: Detector pixel in x direction.
- **pixel_y**: Detector pixel in y direction.
- **energy**: (Un)calibrated energy (kinetic or binding energy). Unit category: NX_ENERGY (e.g., eV).
- **kx**: (Un)calibrated x axis in k-space. Unit category: NX_ANY (e.g., 1/Angström).
- **ky**: (Un)calibrated y axis in k-space. Unit category: NX_ANY (1/Angström).
- **kz**: (Un)calibrated z axis in k-space. Unit category: NX_ANY (1/Angström).
- **angular0**: Fast-axis angular coordinate (or second slow axis if angularly integrated).
Unit category: NX_ANGLE
- **angular1**: Slow-axis angular coordinate (or second fast axis if simultaneously dispersed in 2 dimensions)
Unit category: NX_ANGLE
- **spatial0**: Fast-axis spatial coordinate (or second slow axis if spatially integrated)
Unit category: NX_LENGTH
- **spatial1**: Slow-axis spatial coordinate (or second fast axis if simultaneously dispersed in 2 dimensions)
Unit category: NX_LENGTH
- **delay**: Calibrated delay time. Unit category: NX_TIME (s).
- **polarization_angle**: Linear polarization angle of the incoming or
outgoing beam.
Unit category: NX_ANGLE (° or rad)
- **ellipticity**: Ellipticity of the incoming or outgoing beam.
Unit category: NX_ANGLE (° or rad)
- **time_of_flight**: Total time of flight. Unit category: NX_TIME_OF_FLIGHT
- **time_of_flight_adc**: Time-of-flight values, analog-to-digital converted.
- **external_AXIS**: Describes an axis which is coming from outside the detectors scope.-->
Fields should be named according to new following convention:
- **pixel_x**: Detector pixel in x direction.
- **pixel_y**: Detector pixel in y direction.
- **energy**: (Un)calibrated energy (kinetic or binding energy). Unit category: NX_ENERGY (e.g., eV).
- **kx**: (Un)calibrated x axis in k-space. Unit category: NX_ANY (e.g., 1/Angström).
- **ky**: (Un)calibrated y axis in k-space. Unit category: NX_ANY (1/Angström).
- **kz**: (Un)calibrated z axis in k-space. Unit category: NX_ANY (1/Angström).
- **angular0**: Fast-axis angular coordinate (or second slow axis if angularly integrated).
Unit category: NX_ANGLE
- **angular1**: Slow-axis angular coordinate (or second fast axis if simultaneously dispersed in 2 dimensions)
Unit category: NX_ANGLE
- **spatial0**: Fast-axis spatial coordinate (or second slow axis if spatially integrated)
Unit category: NX_LENGTH
- **spatial1**: Slow-axis spatial coordinate (or second fast axis if simultaneously dispersed in 2 dimensions)
Unit category: NX_LENGTH
- **delay**: Calibrated delay time. Unit category: NX_TIME (s).
- **polarization_angle**: Linear polarization angle of the incoming or
outgoing beam.
Unit category: NX_ANGLE (° or rad)
- **ellipticity**: Ellipticity of the incoming or outgoing beam.
Unit category: NX_ANGLE (° or rad)
- **time_of_flight**: Total time of flight. Unit category: NX_TIME_OF_FLIGHT
- **time_of_flight_adc**: Time-of-flight values, analog-to-digital converted.
- **external_AXIS**: Describes an axis which is coming from outside the detectors scope.-->
<attribute name="signal">
<enumeration>
<item value="raw"/>
Expand All @@ -387,7 +385,7 @@ TODO:
</group>
<field name="additional_detector_hardware" optional="true">
<doc>
Specify respective hardware which was used for the detector. For
Specify respective hardware which was used for the detector. For
example special electronics required for time-correlated single photon
counting (TCSPC).
</doc>
Expand All @@ -397,18 +395,25 @@ TODO:
<group name="source_TYPE" type="NXsource" recommended="true">
<field name="type" recommended="true">
<enumeration>
<item value="laser"/>
<item value="dye-laser"/>
<item value="broadband tunable light source"/>
<item value="X-ray Source"/>
<item value="arc lamp"/>
<item value="halogen lamp"/>
<item value="Synchrotron X-ray Source"/>
<item value="Pulsed Muon Source"/>
<item value="Rotating Anode X-ray"/>
<item value="Fixed Tube X-ray"/>
<item value="UV Laser"/>
<item value="Optical Laser"/>
<item value="Ion Source"/>
<item value="Metal Jet X-ray"/>
<item value="Laser"/>
<item value="Dye-Laser"/>
<item value="Broadband Tunable Light Source"/>
<item value="X-ray Source Lamp"/>
<item value="Halogen lamp"/>
<item value="LED"/>
<item value="mercury cadmium telluride"/>
<item value="deuterium lamp"/>
<item value="xenon lamp"/>
<item value="globar"/>
<item value="other"/>
<item value="Mercury Cadmium Telluride"/>
<item value="Deuterium Lamp"/>
<item value="Xenon Lamp"/>
<item value="Globar"/>
<item value="Other"/>
</enumeration>
</field>
<field name="type_other" optional="true">
Expand Down Expand Up @@ -454,7 +459,7 @@ TODO:
plane#1 = spanned by incidence beam and detection
and detection. If Chi=0°, then plane#1 is the plane of
incidence in reflection setups)
- Phi (inplane rotation of sample, rotation axis is the samples
- Phi (inplane rotation of sample, rotation axis is the samples
surface normal)


Expand Down Expand Up @@ -604,7 +609,7 @@ TODO:
</group>
<field name="lateral_focal_point_offset" type="NX_NUMBER" optional="true" units="NX_LENGTH">
<doc>
Specify if there is a lateral offset on the sample surface, between the focal
Specify if there is a lateral offset on the sample surface, between the focal
points of the incident beam and the detection beam.
</doc>
</field>
Expand Down Expand Up @@ -659,7 +664,7 @@ TODO:
<group type="NXopt_window" optional="true"/>
<group name="polfilter_TYPE" type="NXbeam_device" optional="true">
<doc>
polarization filter to prepare light to be measured or to be incident
polarization filter to prepare light to be measured or to be incident
on the sample.
Genereric polarization filter porperties may be implemented via NXfilter_pol
at a later stage.
Expand Down Expand Up @@ -740,9 +745,9 @@ TODO:
</group>
<!--Later for rework of specific optical elements
(NXbeam_splitter):
exists: optional
doc: |
Can be used to describe a beam splitter as optical element.-->
exists: optional
doc: |
Can be used to describe a beam splitter as optical element.-->
<group type="NXbeam_transfer_matrix_table" optional="true">
<doc>
Allows description of beam properties via matrices, which relate ingoing with
Expand Down Expand Up @@ -777,7 +782,7 @@ TODO:
<group name="transformations" type="NXtransformations" optional="true">
<doc>
This allows a description of the stages relation or orientation and
position with respect to the sample or beam, if an laboratory or
position with respect to the sample or beam, if an laboratory or
an stage coordinate system is defined.
</doc>
</group>
Expand All @@ -786,7 +791,7 @@ TODO:
Description of relation of the beam with the sample. How dit the
sample hit the beam, e.g. 'center of sample, long edge parallel
to the plane of incidence'.
Is redundent, if a full orientation description is done via the
Is redundent, if a full orientation description is done via the
stages "transformations" entry.
</doc>
</field>
Expand Down Expand Up @@ -1065,15 +1070,13 @@ TODO:
</enumeration>
</field>
</group>
<!--
Make something like NXlayer_structure_sample?
-->
<!--Make something like NXlayer_structure_sample?-->
<field name="thickness" type="NX_NUMBER" optional="true" units="NX_LENGTH">
<doc>
(Measured) sample thickness.

The information is recorded to qualify if the light used was likely
able to shine through the sample.
able to shine through the sample.

In this case the value should be set to the actual thickness of
the specimen viewed for an illumination situation where the nominal
Expand All @@ -1086,9 +1089,7 @@ Make something like NXlayer_structure_sample?
determined.
</doc>
</field>
<!--
Maybe consider here to include NXsample_component_set.
-->
<!--Maybe consider here to include NXsample_component_set.-->
<field name="layer_structure" optional="true">
<doc>
Qualitative description of the layer structure for the sample,
Expand Down Expand Up @@ -1116,7 +1117,7 @@ Maybe consider here to include NXsample_component_set.
Here generic types of data may be saved.. This may refer to data derived
from single or multiple raw measurements (i.e. several intensities are
evaluated for different parameters: ellipsometry -&gt; psi and delta) -
i.e. non-raw data.
i.e. non-raw data.
As well plotable data may be stored/linked here, which provides the most suitable
representation of the data (for the respective community).

Expand Down Expand Up @@ -1149,7 +1150,7 @@ psi and delta values), will be done later after the NXopt workshop.-->
<group name="derived_parameters" type="NXprocess" optional="true">
<!--
>>>This section is transfered from the first NXoptical_spectroscopy version and might
require a reqwork.<<<
require a reqwork.<<<
-->
<doc>
Parameters that are derived from the measured data.
Expand Down
Loading
Loading