X-ray Photoelectron Spectroscopy (XPS)¶
X-ray Photoelectron Spectroscopy is a surface-sensitive technique for determining elemental composition, chemical states, and electronic structure of materials. XPS probes the top ~10 nm of a surface.
Overview¶
This schema package defines:
- DTUXpsMeasurement - XPS measurements with survey and high-resolution scans, peak fitting, and composition analysis
XPS measurements extend BaseMeasurement, providing:
- Links to measured samples and instrument
- X-ray source configuration (Al Kα, Mg Kα, monochromatic)
- Scan parameters (survey, high-resolution regions)
- Peak positions, binding energies, chemical shifts
- Quantitative composition and oxidation states
Typical Usage¶
- Select samples: Reference samples to analyze
- Prepare surface: Document any cleaning (Ar sputtering, etc.)
- Survey scan: Wide binding energy range for elemental identification
- High-resolution scans: Narrow regions for chemical state analysis
- Peak fitting: Identify components, oxidation states, bonding environments
- Quantification: Calculate atomic percentages from peak areas
Surface Composition at Sample Positions
XPS measurements target specific sample positions defined by coordinates on combinatorial libraries. For composition gradient libraries, measuring multiple positions enables surface composition mapping across the parameter space. Cleaved pieces can be measured individually while maintaining their position coordinate references.
What XPS Tells You¶
- Elemental composition: What elements are present (except H, He)
- Chemical states: Oxidation states (e.g., Cu⁰, Cu⁺, Cu²⁺)
- Bonding environment: Chemical shifts from electronegativity
- Depth profiling: With Ar sputtering, composition vs. depth
- Surface contamination: Adventitious carbon, oxide layers
- Electronic structure: Valence band, work function
Common XPS Regions¶
- Survey scan: 0-1200 eV, identifies all elements present
- C 1s: ~285 eV, carbon bonding, calibration reference
- O 1s: ~530 eV, oxygen states, oxides
- N 1s: ~400 eV, nitrogen bonding, nitrides
- Metal peaks: Core levels specific to each element
Key Parameters¶
- X-ray source: Al Kα (1486.6 eV), Mg Kα (1253.6 eV), monochromatic
- Pass energy: Energy resolution vs. signal (lower = better resolution)
- Step size: Binding energy increment (0.1 eV for high-res)
- Charge neutralization: Electron flood gun for insulators
- Sputtering: For depth profiling or surface cleaning
XPS Challenges¶
- Charging: Insulators shift binding energies (need calibration)
- Surface sensitivity: Only top ~10 nm analyzed
- Beam damage: X-rays can modify sensitive materials
- Quantification accuracy: Depends on cross-sections, mean free paths
Related Schemas¶
- Measured samples: Samples from Sputtering, Thermal Evaporation
- Instrument: DTUInstrument (XPS system)
- Complementary: XRD for structure, EDX for bulk composition
- Analysis: Jupyter Analysis for peak fitting, quantification
Schema Documentation¶
XpsFittedPeak¶
inherits from: nomad.datamodel.data.ArchiveSection
properties:
| name | type | |
|---|---|---|
| origin | str |
The peak type |
| be_position | float |
The position of the peak in binding energy unit= kilogram * meter ** 2 / second ** 2 |
| intensity | float |
The intensity of the peak unit= 1 / second |
| fwhm | float |
The full width at half maximum of the peak unit= kilogram * meter ** 2 / second ** 2 |
| area | float |
The area of the peak unit= kilogram * meter ** 2 / second ** 3 |
| atomic_percent | float |
The atomic percent of the peak |
normalization:
The normalizer for the PLMappingResult class.
Args: archive (EntryArchive): The archive containing the section that is being normalized. logger (BoundLogger): A structlog logger.
XpsDerivedComposition¶
inherits from: nomad.datamodel.data.ArchiveSection
properties:
| name | type | |
|---|---|---|
| element | str |
The element of the composition |
| atomic_percent | float |
The atomic percent of the element |
normalization:
The normalizer for the PLMappingResult class.
Args: archive (EntryArchive): The archive containing the section that is being normalized. logger (BoundLogger): A structlog logger.
XpsMappingResult¶
inherits from: nomad_measurements.mapping.schema.MappingResult
properties:
| name | type | |
|---|---|---|
| peaks | XpsFittedPeak |
The fitted peaks of the XPS spectrum sub-section, repeats |
| composition | XpsDerivedComposition |
The composition according to the XPS analysis by element sub-section, repeats |
normalization:
The normalizer for the PLMappingResult class.
Args: archive (EntryArchive): The archive containing the section that is being normalized. logger (BoundLogger): A structlog logger.
XpsMetadata¶
inherits from: nomad.datamodel.data.ArchiveSection
normalization:
The normalizer for the PLMetadata class.
Args: archive (EntryArchive): The archive containing the section that is being normalized. logger (BoundLogger): A structlog logger.
DTUXpsMeasurement¶
inherits from: nomad_dtu_nanolab_plugin.schema_packages.basesections.DtuNanolabMeasurement, nomad.datamodel.metainfo.plot.PlotSection, nomad.datamodel.data.EntryData
properties:
| name | type | |
|---|---|---|
| native_file | str |
|
| spectra_file | str |
|
| analysis_file | str |
|
| metadata | XpsMetadata |
The metadata of the ellipsometry measurement sub-section |
| results | XpsMappingResult |
The PL results. sub-section, repeats |
normalization:
The normalize function of the DTUXRDMeasurement section.
Args: archive (EntryArchive): The archive containing the section that is being normalized. logger (BoundLogger): A structlog logger.