diff --git a/contributed_definitions/NXafm.nxdl.xml b/applications/NXafm.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXafm.nxdl.xml
rename to applications/NXafm.nxdl.xml
diff --git a/contributed_definitions/NXsensor_scan.nxdl.xml b/applications/NXsensor_scan.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXsensor_scan.nxdl.xml
rename to applications/NXsensor_scan.nxdl.xml
diff --git a/contributed_definitions/NXspm.nxdl.xml b/applications/NXspm.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXspm.nxdl.xml
rename to applications/NXspm.nxdl.xml
diff --git a/contributed_definitions/NXstm.nxdl.xml b/applications/NXstm.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXstm.nxdl.xml
rename to applications/NXstm.nxdl.xml
diff --git a/contributed_definitions/NXsts.nxdl.xml b/applications/NXsts.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXsts.nxdl.xml
rename to applications/NXsts.nxdl.xml
diff --git a/contributed_definitions/NXamplifier.nxdl.xml b/base_classes/NXamplifier.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXamplifier.nxdl.xml
rename to base_classes/NXamplifier.nxdl.xml
diff --git a/contributed_definitions/NXlockin.nxdl.xml b/base_classes/NXlockin.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXlockin.nxdl.xml
rename to base_classes/NXlockin.nxdl.xml
diff --git a/contributed_definitions/NXphase_lock_loop.nxdl.xml b/base_classes/NXphase_lock_loop.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXphase_lock_loop.nxdl.xml
rename to base_classes/NXphase_lock_loop.nxdl.xml
diff --git a/contributed_definitions/NXrcs.nxdl.xml b/base_classes/NXrcs.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXrcs.nxdl.xml
rename to base_classes/NXrcs.nxdl.xml
diff --git a/contributed_definitions/NXspm_bias_spectroscopy.nxdl.xml b/base_classes/NXspm_bias_spectroscopy.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXspm_bias_spectroscopy.nxdl.xml
rename to base_classes/NXspm_bias_spectroscopy.nxdl.xml
diff --git a/contributed_definitions/NXspm_cantilever.nxdl.xml b/base_classes/NXspm_cantilever.nxdl.xml
similarity index 57%
rename from contributed_definitions/NXspm_cantilever.nxdl.xml
rename to base_classes/NXspm_cantilever.nxdl.xml
index 54cdbae4d4..24644fd929 100644
--- a/contributed_definitions/NXspm_cantilever.nxdl.xml
+++ b/base_classes/NXspm_cantilever.nxdl.xml
@@ -1,10 +1,10 @@
-
+
-
-
- A base class to describe the cantilever used in Atomic Force Microscopy (AFM).
-
-
+
+
- The oscillator of the cantilever.
+ The symbols used in the schema to specify e.g. dimensions of arrays.
-
-
+
+
+ Computer science description of a storage object in an input/output system.
+
+
- The configuration parameters of the cantilever used in scanning probe
- microscopy.
+ Qualifier for the type of storage medium used.
-
-
+
+
+
+
+
+
+
+
- The phase positioner of the cantilever.
+ Total amount of data which the medium can hold.
-
-
+
+
+
- The amplitude positioner of the cantilever.
+ Given name to the I/O unit.
-
+
+
diff --git a/contributed_definitions/NXspm_cantilever_config.nxdl.xml b/base_classes/NXspm_cantilever_config.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXspm_cantilever_config.nxdl.xml
rename to base_classes/NXspm_cantilever_config.nxdl.xml
diff --git a/contributed_definitions/NXspm_cantilever_oscillator.nxdl.xml b/base_classes/NXspm_cantilever_oscillator.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXspm_cantilever_oscillator.nxdl.xml
rename to base_classes/NXspm_cantilever_oscillator.nxdl.xml
diff --git a/contributed_definitions/NXspm_piezo_config.nxdl.xml b/base_classes/NXspm_piezo_config.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXspm_piezo_config.nxdl.xml
rename to base_classes/NXspm_piezo_config.nxdl.xml
diff --git a/contributed_definitions/NXspm_piezo_sensor.nxdl.xml b/base_classes/NXspm_piezo_sensor.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXspm_piezo_sensor.nxdl.xml
rename to base_classes/NXspm_piezo_sensor.nxdl.xml
diff --git a/contributed_definitions/NXspm_piezoelectric_material.nxdl.xml b/base_classes/NXspm_piezoelectric_material.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXspm_piezoelectric_material.nxdl.xml
rename to base_classes/NXspm_piezoelectric_material.nxdl.xml
diff --git a/contributed_definitions/NXspm_positioner.nxdl.xml b/base_classes/NXspm_positioner.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXspm_positioner.nxdl.xml
rename to base_classes/NXspm_positioner.nxdl.xml
diff --git a/contributed_definitions/NXspm_scan_control.nxdl.xml b/base_classes/NXspm_scan_control.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXspm_scan_control.nxdl.xml
rename to base_classes/NXspm_scan_control.nxdl.xml
diff --git a/contributed_definitions/NXspm_scan_pattern.nxdl.xml b/base_classes/NXspm_scan_pattern.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXspm_scan_pattern.nxdl.xml
rename to base_classes/NXspm_scan_pattern.nxdl.xml
diff --git a/contributed_definitions/NXspm_scan_region.nxdl.xml b/base_classes/NXspm_scan_region.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXspm_scan_region.nxdl.xml
rename to base_classes/NXspm_scan_region.nxdl.xml
diff --git a/contributed_definitions/NXspm_temperature_sensor.nxdl.xml b/base_classes/NXspm_temperature_sensor.nxdl.xml
similarity index 100%
rename from contributed_definitions/NXspm_temperature_sensor.nxdl.xml
rename to base_classes/NXspm_temperature_sensor.nxdl.xml
diff --git a/dev_tools/docs/nxdl_index.py b/dev_tools/docs/nxdl_index.py
index 7e655b6872..fd7e167221 100644
--- a/dev_tools/docs/nxdl_index.py
+++ b/dev_tools/docs/nxdl_index.py
@@ -23,6 +23,7 @@
"mpes",
"optical-spectroscopy",
"tof",
+ "spm",
],
"base_classes": [
"core",
@@ -35,6 +36,7 @@
"em",
"mpes",
"optical-spectroscopy",
+ "spm",
],
"contributed_definitions": [
"sample",
@@ -44,7 +46,6 @@
"optical-spectroscopy",
"transport",
"micro",
- "spm",
],
}
@@ -281,6 +282,8 @@ def get_nxclass_description(nxdl_file: Path, namespaces) -> str:
:ref:`Optical Spectroscopy `
+ :ref:`Scanning Probe Microscopy `
+
:ref:`Time-of-Flight Techniques `
""",
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -317,8 +320,6 @@ def get_nxclass_description(nxdl_file: Path, namespaces) -> str:
:ref:`Optical Spectroscopy `
- :ref:`Scanning Probe Microscopy `
-
:ref:`Transport Measurements `
:ref:`Microstructures Characterization and Representation `
diff --git a/manual/source/classes/contributed_definitions/spm-structure.rst b/manual/source/classes/applications/spm-structure.rst
similarity index 99%
rename from manual/source/classes/contributed_definitions/spm-structure.rst
rename to manual/source/classes/applications/spm-structure.rst
index 2518e33948..167d521c61 100644
--- a/manual/source/classes/contributed_definitions/spm-structure.rst
+++ b/manual/source/classes/applications/spm-structure.rst
@@ -1,4 +1,4 @@
-.. _CC-Spm-Structure:
+.. _AppDef-Spm-Structure:
===============================
Scanning Probe Microscopy
diff --git a/manual/source/classes/base_classes/spm-structure.rst b/manual/source/classes/base_classes/spm-structure.rst
new file mode 100644
index 0000000000..371ee6379c
--- /dev/null
+++ b/manual/source/classes/base_classes/spm-structure.rst
@@ -0,0 +1,72 @@
+.. _BC-Spm-Structure:
+
+=========================
+Scanning Probe Microscopy
+=========================
+
+.. index::
+ BC-Spm-Introduction
+ BC-Spm-Classes
+
+.. _BC-Spm-Introduction:
+
+Introduction
+############
+
+These are the base classes to describe components of a scanning probe microscope (SPM)
+and its associated experimental configurations. These base classes are used within the
+SPM-related :ref:`application definitions `, specifically in
+:ref:`NXspm`, :ref:`NXstm`, :ref:`NXsts`, and :ref:`NXafm`.
+
+.. _BC-Spm-Classes:
+
+Base Classes
+############
+
+:ref:`NXamplifier`:
+ A base class to describe an amplifier instrument.
+
+:ref:`NXlockin`:
+ A base class to describe a lock-in amplifier instrument.
+
+:ref:`NXphase_lock_loop`:
+ A base class to describe a phase lock loop in AFM experiments.
+
+:ref:`NXrcs`:
+ A base class to describe a remote control system.
+
+:ref:`NXspm_bias_spectroscopy`:
+ A base class to describe bias spectroscopy measurement to measure I/V curves in STS experiments.
+
+:ref:`NXspm_cantilever`:
+ A base class to characterize the cantilever used in AFM experiments.
+
+:ref:`NXspm_cantilever_config`:
+ A base class to describe cantilever configuration in AFM experiments.
+
+:ref:`NXspm_cantilever_oscillator`:
+ A base class to describe the cantilever oscillator in AFM experiments.
+
+:ref:`NXspm_piezo_config`:
+ A base class to describe piezo configuration in SPM experiments.
+
+:ref:`NXspm_piezo_sensor`:
+ A base class to describe a piezo sensor in SPM experiments.
+
+:ref:`NXspm_piezoelectric_material`:
+ A base class to describe piezoelectric material properties used in a cantilever tip.
+
+:ref:`NXspm_positioner`:
+ A base class to describe a PID positioner in SPM experiments.
+
+:ref:`NXspm_scan_control`:
+ A base class to characterize the movement of a scan probe in a multi-dimensional phase space.
+
+:ref:`NXspm_scan_pattern`:
+ A base class to define the pattern of a scan in a given scan region.
+
+:ref:`NXspm_scan_region`:
+ A base class to define the phase space or sub-phase space for a scan in SPM experiments.
+
+:ref:`NXspm_temperature_sensor`:
+ A base class to describe a temperature sensor in SPM experiments.