erlab.analysis.xps¶
Functions
|
Get the photoionization cross section curves for a given element. |
|
Get the x-ray absorption edges for a given element. |
|
Get the total photoionization cross section curve for a given element. |
Classes
|
Absorption edge and harmonic kinetic energies for one core level. |
- class erlab.analysis.xps.CoreLevelEdge(edge, kinetic_energies)[source]¶
Bases:
objectAbsorption edge and harmonic kinetic energies for one core level.
- Variables:
edge – Absorption edge in eV.
kinetic_energies – Mapping from harmonic order to photoelectron kinetic energy in eV.
Examples
>>> import erlab.analysis as era >>> au_4f = era.xps.CoreLevelEdge.from_edge( ... 84.0, hv=1486.6, workfunction=4.5, max_harmonic=3 ... ) >>> au_4f.edge 84.0 >>> au_4f.kinetic_energies {1: 1398.1, 2: 2884.7}
- classmethod from_edge(edge, *, hv, workfunction=0.0, max_harmonic=1)[source]¶
Build a
CoreLevelEdgefrom an absorption edge value.- Parameters:
edge (
float) – Absorption edge in eV.hv (
float) – Fundamental photon energy in eV.workfunction (
float, default:0.0) – Work function in eV subtracted from each harmonic kinetic energy.max_harmonic (
int, default:1) – Highest harmonic order to include. The returned mapping contains orders1throughmax_harmonic.
- Returns:
CoreLevelEdge– A record containing the absorption edge and the per-harmonic kinetic energies.- Return type:
Examples
>>> import erlab.analysis as era >>> edge = era.xps.CoreLevelEdge.from_edge( ... 706.8, hv=1486.6, workfunction=4.5, max_harmonic=2 ... ) >>> edge.kinetic_energies[1] 775.3
- erlab.analysis.xps.get_cross_section(element)[source]¶
Get the photoionization cross section curves for a given element.
Data are based on the Elettra WebCrossSections service, which is based on Yeh and Lindau [1985].
- Parameters:
element (
str|int) – The element symbol, name, or atomic number. For example,"Fe","Iron", or26.- Returns:
dict– A dictionary mapping subshell orbital labels to 1D DataArrays with coordinatehv(photon energy in eV).- Return type:
Examples
>>> import numpy as np >>> import erlab.analysis as era >>> curves = era.xps.get_cross_section("Cu") >>> list(curves.keys()) ['2s', '2p', '3s', '3p', '3d', '4s']
- erlab.analysis.xps.get_edge(element, *, hv=None, work_function=0.0, max_harmonic=1)[source]¶
Get the x-ray absorption edges for a given element.
The values are taken from
xraydb[Newville et al., 2023] which is based on the compilation described by Elam et al. [2002]. The values for core level edges can be treated as the binding energies of the corresponding electrons. Whenhvis provided, a conversion to kinetic energies is performed for each edge and its harmonics up tomax_harmonic, using the provided work function.- Parameters:
element (
str|int) – The element symbol, name, or atomic number. For example,"Fe","Iron", or26.hv (
float|None, default:None) – Optional photon energy in eV. When provided, the returned mapping containsCoreLevelEdgerecords with kinetic energies computed from each edge for the fundamental and higher harmonics up tomax_harmonic.work_function (
float, default:0.0) – Work function in eV used for the kinetic-energy conversion. Only valid whenhvis provided.max_harmonic (
int, default:1) – Highest harmonic order to include in the kinetic-energy calculation. Harmonics are computed as integer multiples ofhvfrom1throughmax_harmonic. Only valid whenhvis provided.
- Returns:
dict– A dictionary mapping subshell labels to absorption edges in eV whenhvis omitted. Whenhvis provided, the mapping values areCoreLevelEdgeobjects containing the absorption edge and per-harmonic kinetic energies.- Return type:
Notes
The returned values come from
xraydb. In many XPS contexts these numbers are close to, and interpreted similarly to, core-level binding energies.Examples
>>> import erlab.analysis as era >>> edges = era.xps.get_edge("Fe") >>> edges["2p3/2"] 706.8 >>> edges["3p3/2"] 52.7
>>> edges_ke = era.xps.get_edge("Fe", hv=1486.6, work_function=4.5, max_harmonic=2) >>> fe_2p = edges_ke["2p3/2"] >>> fe_2p.edge 706.8 >>> fe_2p.kinetic_energies {1: 775.3, 2: 2261.9}
- erlab.analysis.xps.get_total_cross_section(element)[source]¶
Get the total photoionization cross section curve for a given element.
Data are based on the Elettra WebCrossSections service, which is based on Yeh and Lindau [1985].