Skip to content

Commit d18b8e2

Browse files
mkuehbachlukaspiemarkus.kuehbachRubelMozumderdomna
authored
Fairmat 2025: adding SPM to contributed definitions (#1589)
Co-authored-by: Lukas Pielsticker <50139597+lukaspie@users.noreply.github.com> Co-authored-by: markus.kuehbach <markus.kuehbach@hu-berlin.de> Co-authored-by: Markus Kühbach <mkuehbach@users.noreply.github.com> Co-authored-by: RubelMozumder <32923026+RubelMozumder@users.noreply.github.com> Co-authored-by: Rubel <rubel.mozumder@outlook.com> Co-authored-by: domna <florian.dobener@physik.hu-berlin.de> Co-authored-by: Florian Dobener <florian.dobener@physik.hu-berlin.de> Co-authored-by: kuehbachm <kuehbacm@hu-berlin.de> Co-authored-by: mkuehbach <markus.kuehbach@physik.hu-berlin.de> Co-authored-by: Pete R Jemian <prjemian@gmail.com> Co-authored-by: RubelMozumder <rubelmozumder@outlook.com> Co-authored-by: Sherjeel Shabih <shabihsherjeel@gmail.com> Co-authored-by: lukaspie <lukaspie@github.com>
1 parent 6abbd50 commit d18b8e2

25 files changed

Lines changed: 3445 additions & 5 deletions
Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
3+
<!--
4+
# NeXus - Neutron and X-ray Common Data Format
5+
#
6+
# Copyright (C) 2024-2025 NeXus International Advisory Committee (NIAC)
7+
#
8+
# This library is free software; you can redistribute it and/or
9+
# modify it under the terms of the GNU Lesser General Public
10+
# License as published by the Free Software Foundation; either
11+
# version 3 of the License, or (at your option) any later version.
12+
#
13+
# This library is distributed in the hope that it will be useful,
14+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16+
# Lesser General Public License for more details.
17+
#
18+
# You should have received a copy of the GNU Lesser General Public
19+
# License along with this library; if not, write to the Free Software
20+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21+
#
22+
# For further information, see http://www.nexusformat.org
23+
-->
24+
<definition xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="application" type="group" name="NXafm" extends="NXspm" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
25+
<doc>
26+
An application definition to describe atomic force microscopy (AFM).
27+
</doc>
28+
<group type="NXentry">
29+
<field name="definition">
30+
<doc>
31+
Name of the definition that is used for the application.
32+
</doc>
33+
<enumeration>
34+
<item value="NXafm"/>
35+
</enumeration>
36+
</field>
37+
<field name="experiment_technique">
38+
<doc>
39+
The AFM technique.
40+
</doc>
41+
<enumeration>
42+
<item value="AFM"/>
43+
</enumeration>
44+
</field>
45+
<field name="scan_mode">
46+
<doc>
47+
The mode of the scan.
48+
49+
contact mode: Cantilever attempts to move on the sample surface in very close contact with the sample.
50+
The cantilever deflection is usually employed to control the cantilever position using a PID feedback loop.
51+
non-contact mode: Cantilever attempts to oscillate above the sample surface. Cantilever attempts to stay in the
52+
interaction (atomic force) zone therefore cantilever oscillator amplitude and frequency are deformed.
53+
The cantilever frequency or oscillation amplitude is usually employed to control the cantilever position using a PID feedback loop.
54+
tapping mode: Resembles to the non-contact mode, but at every point of scan the cantilever tip comes closer
55+
to the sample surface ("taps it").
56+
The cantilever oscillation amplitude is usually employed to control the cantilever position using a PID feedback loop.
57+
peak force tapping mode: Like the tapping mode, but at each point of the scan force-distance curve is recorded.
58+
The maximum force is usually employed to control the cantilever position using a PID feedback loop.
59+
</doc>
60+
<enumeration open="true">
61+
<item value="contact mode"/>
62+
<item value="tapping mode"/>
63+
<item value="non-contact mode"/>
64+
<item value="peak force tapping mode"/>
65+
</enumeration>
66+
</field>
67+
<group type="NXinstrument">
68+
<group name="photo_detector" type="NXdetector" optional="true">
69+
<doc>
70+
Information about the quadrant photodiode deflection detector or interferometer.
71+
</doc>
72+
<group type="NXsensor" optional="true">
73+
<doc>
74+
The sensor information for the photodiode or interferometer.
75+
</doc>
76+
</group>
77+
</group>
78+
<group type="NXspm_cantilever" recommended="true">
79+
<doc>
80+
The cantilever information.
81+
</doc>
82+
<group name="cantilever_oscillator" type="NXspm_cantilever_oscillator" recommended="true">
83+
<doc>
84+
When a cantilever is oscillated close to its resonance, this describes the oscillator properties.
85+
86+
A cantilever can be used in direct contact mode to detect interaction forces or oscillated close to its
87+
resonance frequency. Changes in the oscillation amplitude, phase (between oscillated tail and moving tip)
88+
or resonance frequency are very sensitive to changes in the interaction potential field, giving rise of
89+
various measurement modes, such as non-contact or intermittent-contact (tapping) modes.
90+
</doc>
91+
<field name="reference_amplitude" type="NX_NUMBER" units="NX_LENGTH" recommended="true"/>
92+
<field name="reference_frequency" type="NX_NUMBER" units="NX_FREQUENCY" recommended="true"/>
93+
<field name="reference_phase" type="NX_NUMBER" units="NX_ANGLE" recommended="true"/>
94+
</group>
95+
<group name="phase_positioner" type="NXpositioner" recommended="true">
96+
<doc>
97+
The phase positioner of the cantilever.
98+
</doc>
99+
</group>
100+
<group name="amplitude_positioner" type="NXpositioner" recommended="true">
101+
<doc>
102+
The amplitude positioner of the cantilever.
103+
</doc>
104+
</group>
105+
</group>
106+
<group name="phase_lock_loop" type="NXphase_lock_loop" recommended="true">
107+
<doc>
108+
Phase locked loop for cantilever lock-in device.
109+
</doc>
110+
</group>
111+
<group name="SCAN_ENVIRONMENT" type="NXenvironment" nameType="any">
112+
<doc>
113+
The environment information.
114+
</doc>
115+
<group name="XYpiezo_sensor" type="NXspm_piezo_sensor" nameType="partial" optional="true">
116+
<doc>
117+
This should be a link to the concept
118+
entry/instrument/xy_piezo_sensor.
119+
</doc>
120+
</group>
121+
<group name="head_temperature_sensor" type="NXsensor" optional="true">
122+
<doc>
123+
This should be a link to the concept
124+
entry/instrument/head_temperature_sensor.
125+
</doc>
126+
</group>
127+
</group>
128+
<group name="head_temperature_sensor" type="NXsensor" optional="true">
129+
<doc>
130+
The temperature of the scan environment or head of the cantilever.
131+
</doc>
132+
</group>
133+
</group>
134+
<group name="reproducibility_indicators" type="NXcollection" optional="true">
135+
<doc>
136+
The group of indicators (links to the existing fields in different groups) that measure
137+
the reproducibility of the experiment.
138+
</doc>
139+
<field name="head_temperature" type="NX_NUMBER" optional="true">
140+
<doc>
141+
This should be a link to
142+
/entry/instrument/scan_environment/head_temperature
143+
</doc>
144+
</field>
145+
<field name="cryo_bottom_temperature" type="NX_NUMBER" optional="true">
146+
<doc>
147+
This should be a link to
148+
/entry/instrument/scan_environment/cryo_bottom_temperature
149+
</doc>
150+
</field>
151+
<field name="cryo_shield_temperature" type="NX_NUMBER" optional="true">
152+
<doc>
153+
This should be a link to
154+
/entry/instrument/scan_environment/cryo_shield_temperature
155+
</doc>
156+
</field>
157+
<group name="cantilever_oscillator" type="NXspm_cantilever_oscillator" optional="true">
158+
<doc>
159+
This should be a link to
160+
/entry/instrument/cantilever_spm/cantilever_oscillator
161+
</doc>
162+
</group>
163+
</group>
164+
<group name="resolution_indicators" type="NXcollection" optional="true">
165+
<doc>
166+
The group of indicators (links to the existing fields in different groups) that
167+
</doc>
168+
<field name="head_temperature" type="NX_NUMBER" optional="true">
169+
<doc>
170+
This should be a link to
171+
/entry/instrument/scan_environment/head_temperature
172+
</doc>
173+
</field>
174+
<field name="cryo_bottom_temperature" type="NX_NUMBER" optional="true">
175+
<doc>
176+
This should be a link to
177+
/entry/instrument/scan_environment/cryo_bottom_temperature
178+
</doc>
179+
</field>
180+
<field name="cryo_shield_temperature" type="NX_NUMBER" optional="true">
181+
<doc>
182+
This should be a link to
183+
/entry/instrument/scan_environment/cryo_shield_temperature
184+
</doc>
185+
</field>
186+
<field name="cantilever_config" type="NX_NUMBER" optional="true">
187+
<doc>
188+
This should be a link to
189+
/entry/instrument/cantilever_spm/cantilever_config
190+
</doc>
191+
</field>
192+
<field name="amplitude_excitation" type="NX_NUMBER" optional="true">
193+
<doc>
194+
This should be a link to
195+
/entry/instrument/phase_lock_loop/amplitude_excitation
196+
</doc>
197+
</field>
198+
</group>
199+
</group>
200+
</definition>
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
3+
<!--
4+
# NeXus - Neutron and X-ray Common Data Format
5+
#
6+
# Copyright (C) 2023-2025 NeXus International Advisory Committee (NIAC)
7+
#
8+
# This library is free software; you can redistribute it and/or
9+
# modify it under the terms of the GNU Lesser General Public
10+
# License as published by the Free Software Foundation; either
11+
# version 2 of the License, or (at your option) any later version.
12+
#
13+
# This library is distributed in the hope that it will be useful,
14+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16+
# Lesser General Public License for more details.
17+
#
18+
# You should have received a copy of the GNU Lesser General Public
19+
# License along with this library; if not, write to the Free Software
20+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21+
#
22+
# For further information, see http://www.nexusformat.org
23+
-->
24+
<definition xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="base" type="group" name="NXamplifier" extends="NXcomponent" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
25+
<doc>
26+
Base classed definition for amplifier devices.
27+
</doc>
28+
<field name="classification">
29+
<doc>
30+
Type of the amplifier base on the response on frequency.
31+
</doc>
32+
<enumeration open="true">
33+
<item value="low-pass">
34+
<doc>
35+
A low-pass filter is a filter that passes signals
36+
with a frequency lower than a certain cutoff frequency and
37+
attenuates signals with frequencies higher than the cutoff frequency.
38+
</doc>
39+
</item>
40+
<item value="high-pass">
41+
<doc>
42+
A high-pass filter is a filter that passes signals
43+
with a frequency higher than a certain cutoff frequency and
44+
attenuates signals with frequencies lower than the cutoff frequency.
45+
</doc>
46+
</item>
47+
<item value="band-pass">
48+
<doc>
49+
A band-pass filter is a filter that passes signals
50+
within a certain frequency range and attenuates signals outside that range.
51+
</doc>
52+
</item>
53+
<item value="band-stop">
54+
<doc>
55+
A band-stop filter is a filter (opposite to the band-pass) that attenuates signals
56+
within a certain frequency range and passes signals outside that range.
57+
</doc>
58+
</item>
59+
<item value="broadband">
60+
<doc>
61+
A broadband filter is a filter that passes signals
62+
over a wide range of frequencies with minimal attenuation.
63+
</doc>
64+
</item>
65+
</enumeration>
66+
</field>
67+
<group name="hardware" type="NXfabrication">
68+
<doc>
69+
(IC, device) (NXmanufacturer?)
70+
</doc>
71+
</group>
72+
<field name="num_of_channels" type="NX_NUMBER">
73+
<doc>
74+
The number of preamplifier channels are assigned.
75+
</doc>
76+
</field>
77+
<field name="active_channels" type="NX_NUMBER">
78+
<doc>
79+
The number of preamplifier channels are ready to be used. (array for active
80+
channels)
81+
</doc>
82+
</field>
83+
<field name="openloop_amplification" type="NX_NUMBER">
84+
<doc>
85+
The output signal does not go through a feedback loop to adjust the
86+
amplification of the amplifier. (array for active channels)
87+
</doc>
88+
</field>
89+
<!--amplification(NX_NUMBER):
90+
doc: !!! The ratio of the amplitude of the output signal to the amplitude of the input signal. (array for active channels) # From google.-->
91+
<field name="signal_over_noise" type="NX_NUMBER">
92+
<doc>
93+
The ratio of the amplitude of the target signal to the amplitude of the noise in
94+
the output signal of the amplifier. S/N=V_signal/V_noise. (array for active
95+
channels)
96+
</doc>
97+
</field>
98+
<field name="crosstalk_factor" type="NX_NUMBER" units="db">
99+
<doc>
100+
The unwanted coupling between different channels (if active &gt;1).
101+
In ideal amplifier, channels are independent of each other, But due to different resources
102+
sharing (e.g., same power supply, electromagnetic interference), there may have some
103+
unwanted coupling between different channels, which is called crosstalk.
104+
</doc>
105+
</field>
106+
<field name="crosstalk_compensation" type="NX_BOOLEAN">
107+
<doc>
108+
If measures are taken for reducing interferences between different signalling
109+
pathways.
110+
</doc>
111+
</field>
112+
<field name="bandwidth" type="NX_NUMBER" units="NX_FREQUENCY">
113+
<doc>
114+
The spectrum of frequency it can amplify, from its lowest to highest frequency
115+
limits. If it is difference of the frequencies, please also provide :ref:
116+
`center_frequency &lt;/NXamplifier/center_frequency-field&gt;`.
117+
</doc>
118+
</field>
119+
<field name="center_frequency" type="NX_NUMBER" units="NX_FREQUENCY">
120+
<doc>
121+
The frequency in the middle of the bandwidth.
122+
</doc>
123+
</field>
124+
<field name="lower_cutoff_frequency" type="NX_NUMBER" units="NX_FREQUENCY">
125+
<doc>
126+
The lower frequency point of the bandwidth where gain drops significantly (e.g.,
127+
-3dB point).
128+
</doc>
129+
</field>
130+
<field name="upper_cutoff_frequency" type="NX_NUMBER" units="NX_FREQUENCY">
131+
<doc>
132+
The upper frequency point of the bandwidth where gain drops significantly (e.g.,
133+
-3dB point).
134+
</doc>
135+
</field>
136+
<field name="gain" type="NX_NUMBER">
137+
<doc>
138+
The ratio of the output signal to the input signal of the amplifier.
139+
</doc>
140+
</field>
141+
</definition>

0 commit comments

Comments
 (0)