4.8. Chapter 4 Spectroscopy#


4.9. Introduction to X-Rays#

Download

OpenInColab

part of

MSE672: Introduction to Transmission Electron Microscopy

Spring 2024

Gerd Duscher Khalid Hattar
Microscopy Facilities Tennessee Ion Beam Materials Laboratory
Materials Science & Engineering Nuclear Engineering
Institute of Advanced Materials & Manufacturing
The University of Tennessee, Knoxville

Background and methods to analysis and quantification of data acquired with transmission electron microscopes.

4.9.1. Load relevant python packages#

4.9.1.1. Check Installed Packages#

import sys
import importlib.metadata
def test_package(package_name):
    """Test if package exists and returns version or -1"""
    try:
        version = importlib.metadata.version(package_name)
    except importlib.metadata.PackageNotFoundError:
        version = '-1'
    return version

if test_package('pyTEMlib') < '0.2024.2.3':
    print('installing pyTEMlib')
    !{sys.executable} -m pip install  --upgrade pyTEMlib -q

print('done')
installing pyTEMlib
done

4.9.1.2. Load the plotting and figure packages#

Import the python packages that we will use:

Beside the basic numerical (numpy) and plotting (pylab of matplotlib) libraries,

  • three dimensional plotting and some libraries from the book

  • kinematic scattering library.

%matplotlib widget
import matplotlib.pyplot as plt
import numpy as np
import sys
import os
if 'google.colab' in sys.modules:
    from google.colab import output
    from google.colab import drive
    output.enable_custom_widget_manager()
    
__notebook__ = 'CH4_12-Introduction_X_Rays'
__notebook_version__ = '2023_01_22'

4.9.2. Inelastic Scattering:#

When a high energy electron collides with matter there are several process going on:

inelastic_scattering

In an TEM and SEM there are quite a few inelastic signals available:

  • Secondary electrons

  • X-Rays

  • Auger electrons

  • Light (photons in visible range)

4.9.3. X-Rays#

Here we consider only X-Rays and Auger Electrons as those originate from competing processes: X-Ray_Auger

The excited atom has two possibilities to return to the ground state:

We consider the energy before and after the relaxation process.

4.9.3.1. X-Ray branch#

The emitted photon has the energy of the energy gained in the relaxtion process. In the carbon atom case above, an electron from the 2p states relaxes to the 1s state: from the L\(_3\) to the K shell.

The energy difference of a photon is the \(E_K\) - \(E_L\), which is well in the X-ray range.

Please note that the transition from 2s to 1s is dipole forbidden and cannot occur.

4.9.3.2. Auger branch#

The emitted electron leaves behind an atom with a closed K shell (\(-E_K\)) and looses two 2p electrons (\(+2 E_L\). This energy will be transfered to the Auger electron as kinetic energy \( E_{kin} = E_K-2E_L\)

## 
E_K = 284 # in eV
E_L = 7   # in eV

print(f'X-ray photon has the energy {E_K-E_L} eV')
print(f'Auger electron has the kinetic energy {E_K-2* E_L} eV')
X-ray photon has the energy 277 eV
Auger electron has the kinetic energy 270 eV

4.9.4. Fluorescent Yield#

The Auger and X-ray branches are not equally probable. In the carbon atom characteristic X-ray emission occurs at about 26% of the K-shell ionization.

The fraction that of the ionization that yields photons is called fluorescent yield \(\omega\).

The fluorescent yield is strongly dependent on the atomic number [E.A. Preoteasa et al. 2012 – ISBN 978-1-61470-208-5]:

fluorescentYield

The fluorescent yield follows approximatively an equation of the form:

\[ \omega = \frac{Z^4}{\alpha+Z^4} \]

with

  • \(Z\): atomic number

  • \(\alpha\): constant about 10\(^6\) for K lines

Z =  np.linspace(1,100,100)

alpha_K = 1e6
alpha_L = 6.5e7
alpha_M = 8*1e8#2.2e10
omega_K = Z**4/(alpha_K+Z**4)
omega_L = Z**4/(alpha_L+Z**4)
omega_M = Z**4/(alpha_M+Z**4)

plt.figure()
plt.plot(Z,omega_K, label='K')
plt.plot(Z,omega_L, label='L')
plt.plot(Z,omega_M, label='M')
plt.legend()
plt.xlabel('atomic number Z')
plt.ylabel('fluorescent yield $\omega$ [photons/ionization]')
plt.axhline(y=0., color='gray', linewidth=0.5);

## uncomment lines below for log scale 
# plt.gca().set_yscale('log')
# plt.ylim(1e-4, 0.9)

4.9.5. Comparison#

The data and formula agree quite well given the simplicty of the model.

fname = './images/fluorescenceYield3.png'
im = plt.imread(fname)
Z =  np.linspace(1,100,100)

alpha_K = .9e6
alpha_L = 6.e7
alpha_M = 6*1e8#2.2e10
omega_K = Z**4/(alpha_K+Z**4)
omega_L = Z**4/(alpha_L+Z**4)
omega_M = Z**4/(alpha_M+Z**4)


plt.figure()

plt.imshow(im, cmap = 'gray', extent = (-25, 107,-.195,1.056))
plt.plot(Z,omega_K, label='K')
plt.plot(Z,omega_L, label='L')
plt.plot(Z,omega_M, label='M')
plt.legend()

plt.gca().set_aspect('auto')
#plt.axhline(y=0., color='gray', linewidth=0.5);
#plt.axhline(y=1., color='gray', linewidth=0.5);
#plt.axvline(x=0., color='gray', linewidth=0.5);
#plt.axvline(x=100., color='gray', linewidth=0.5);
8**4/(alpha_K+8**4)
0.0045304923370969455

4.9.6. Energy Dispersive Spectrum#

An energy dispersive X-ray spectrum (EDS)contains two different parts:

Spectrum

The Bremsstrahlung causes the background the characteristic X-ray peaks are sitting on.