Radiation and Selection Rules

Author

Daniel Fischer

Radiation and Dipole Selection Rules: Overview and Plan

This section begins with the role of light polarization in atomic transitions: how \(\pi\) and \(\sigma^\pm\) polarizations couple to changes in the magnetic quantum number \(M_L\). We then show how the symmetry of the dipole operator imposes further restrictions, most notably the parity rule that enforces \(\Delta L = \pm 1\). Finally, we connect these ideas to the general selection rules used in spectroscopy.

Specific goals:

  1. Explain how \(\pi\) and \(\sigma^\pm\) polarizations determine the allowed changes in magnetic quantum number \(\Delta M = 0, \pm 1\).
  2. Motivate the parity-based rule \(\Delta L = \pm 1\) by analyzing the dipole operator’s odd parity.
  3. Summarize the general electric-dipole selection rules in terms of \(L, J, S\), and discuss their physical basis and common exceptions.

By the end of this section students should understand how light polarization controls \(\Delta M\), why parity forces \(\Delta L = \pm 1\), and how these simple principles combine into the full set of electric-dipole selection rules.


1. Polarization of Light

The coupling between atomic states and the light field is governed by the dipole matrix element

\[ \Gamma_{i \to n}^{(\hat{\varepsilon})} \;\propto\; \big| \langle n | \, \hat{\vec{\varepsilon}} \cdot \vec{r} \, | i \rangle \big|^2 . \]

This shows that the transition probability depends not only on the atomic states but also on the polarization vector \(\hat{\vec{\varepsilon}}\) of the light. To make progress, we need a precise description of polarization.

The electric field of a photon mode can be written as

\[ \vec{E}(t) = E_0 \, \hat{\vec{\varepsilon}} \, e^{-i \omega t} + \text{c.c.}, \qquad |\hat{\vec{\varepsilon}}|^2 = 1 . \]

In the Cartesian basis this becomes

\[ \hat{\vec{\varepsilon}} = \varepsilon_x \, \hat{e}_x + \varepsilon_y \, \hat{e}_y + \varepsilon_z \, \hat{e}_z . \]

For atomic transitions, however, it is more convenient to use the spherical basis,

\[ \vec{e}_{+} = -\tfrac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ i \\ 0 \end{pmatrix}, \qquad \vec{e}_{-} = \tfrac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ -i \\ 0 \end{pmatrix}, \qquad \vec{e}_{z} = \begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix}. \]

This basis is orthonormal (the vectors are mutually orthogonal and normalized) and complete (any polarization can be expressed as a superposition of them). It therefore provides a natural link between photon polarization and angular momentum transfer.

In this representation, a general polarization is

\[ \hat{\vec{\varepsilon}} = \varepsilon_{+} \, \vec{e}_{+} + \varepsilon_{-} \, \vec{e}_{-} + \varepsilon_{z} \, \vec{e}_{z}, \]

with coefficients related to the Cartesian components by

\[ \varepsilon_{+} = - \tfrac{1}{\sqrt{2}} ( \varepsilon_x - i \varepsilon_y ), \qquad \varepsilon_{-} = \tfrac{1}{\sqrt{2}} ( \varepsilon_x + i \varepsilon_y ). \]

From this basis we identify three fundamental polarization states:

  • Right-handed circular polarization (\(\sigma^{+}\) light): \[ \vec{E}_{+}(t) \;\propto\; \begin{pmatrix} 1 \\ i \\ 0 \end{pmatrix} e^{-i\omega t} \]

  • Left-handed circular polarization (\(\sigma^{-}\) light): \[ \vec{E}_{-}(t) \;\propto\; \begin{pmatrix} 1 \\ -i \\ 0 \end{pmatrix} e^{-i\omega t} \]

  • Linear polarization along \(z\) (\(\pi\) light): \[ \vec{E}_{z}(t) \;\propto\; \begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix} e^{-i\omega t} \]


Note

By expressing polarization in the spherical basis, we see directly how light carries angular momentum. This connection is what allows us to derive the dipole selection rules, which dictate which transitions between atomic states are allowed or forbidden.


2. Calculating Dipole Matrix Elements

To understand how atoms interact with light, we need to evaluate the dipole matrix elements. These quantities determine both whether a transition is allowed (through angular momentum constraints) and how strong it is (through the radial overlap of the wavefunctions). We will first write down the general expression and then separate it into its radial and angular parts.

2.1 General Form of the Dipole Matrix Element

The Dipole Operator

In the transition amplitude we encounter the dot product \(\hat{\vec{\varepsilon}} \cdot \vec{r}\). Since the polarization vector \(\hat{\vec{\varepsilon}}\) has already been expressed in the spherical basis \((\vec{e}_{+}, \vec{e}_{-}, \vec{e}_{z})\), it is natural to also express the position vector \(\vec{r}\) in the same basis.

We begin by introducing the dipole operator:

\[ \hat{\vec{D}} = -e \vec{r}. \]

Because the atomic wavefunctions are most naturally expressed in spherical coordinates, we write

\[ x = r \sin\theta \cos\varphi, \qquad y = r \sin\theta \sin\varphi, \qquad z = r \cos\theta . \]

In Cartesian form, the dipole operator is therefore

\[ \hat{\vec{D}} = -e \big( r \sin\theta \cos\varphi \, \vec{e}_{x} + r \sin\theta \sin\varphi \, \vec{e}_{y} + r \cos\theta \, \vec{e}_{z} \big). \]

However, this form is not the most convenient for our purposes. The angular parts of atomic wavefunctions are themselves spherical harmonics, so it is advantageous to rewrite the dipole operator in terms of \(Y_{1,m}(\theta,\varphi)\). Carrying out this expansion gives

\[ \hat{\vec{D}} = - e r \, \sqrt{\tfrac{4\pi}{3}} \, \big( Y_{1,-1}(\theta,\varphi) \, \vec{e}_{-} + Y_{1,0}(\theta,\varphi) \, \vec{e}_{z} + Y_{1,1}(\theta,\varphi) \, \vec{e}_{+} \big). \tag{1}\]

The angular functions \(x/r\), \(y/r\), and \(z/r\) can be expressed as linear combinations of \(\ell=1\) spherical harmonics:

\[ \frac{x}{r} = \sin\theta \cos\varphi = \sqrt{\tfrac{2\pi}{3}} \, ( Y_{1,-1} - Y_{1,1} ), \]

\[ \frac{y}{r} = \sin\theta \sin\varphi = i \sqrt{\tfrac{2\pi}{3}} \, ( Y_{1,-1} + Y_{1,1} ), \]

\[ \frac{z}{r} = \cos\theta = \sqrt{\tfrac{4\pi}{3}} \, Y_{1,0}. \]

Substituting these expressions into the operator yields

\[ \vec{D} = - e r \Big[ \sqrt{\tfrac{2\pi}{3}} \,( Y_{1,-1} - Y_{1,1} )\,\vec{e}_{x} + i \sqrt{\tfrac{2\pi}{3}} \,( Y_{1,-1} + Y_{1,1} )\,\vec{e}_{y} + \sqrt{\tfrac{4\pi}{3}} \, Y_{1,0}\,\vec{e}_{z} \Big]. \]

Finally, regrouping terms and switching to the spherical polarization basis,

\[ \vec{e}_{+} = - \tfrac{1}{\sqrt{2}} ( \vec{e}_x + i \vec{e}_y ), \qquad \vec{e}_{-} = \tfrac{1}{\sqrt{2}} ( \vec{e}_x - i \vec{e}_y ), \]

leads to the compact form given above.

Accordingly, the dot product with the polarization vector becomes

\[ \hat{\vec{\varepsilon}} \cdot \vec{r} = \sqrt{\tfrac{4\pi}{3}} \, r \, \big( \varepsilon_{-} Y_{1,-1}(\theta,\varphi) + \varepsilon_{z} Y_{1,0}(\theta,\varphi) + \varepsilon_{+} Y_{1,1}(\theta,\varphi) \big), \]

where \(\varepsilon_{-}, \varepsilon_{z}, \varepsilon_{+}\) are the spherical components of the polarization vector.

Remark: By expressing both the dipole operator and the wavefunctions in terms of spherical harmonics, we are speaking the same “mathematical language” on both sides of the integral. This makes the evaluation of transition amplitudes much simpler and reveals the symmetry that underlies the selection rules.


Setting up the Integral

The dipole matrix element then separates naturally into two parts:

\[ \langle n | \, \hat{\vec{\varepsilon}} \cdot \vec{r} \, | i \rangle = \int_0^\infty dr \, r^2 R_{n\ell}(r) R_{n'\ell'}(r) \, r \int d\Omega \, Y_{\ell m}^*(\theta,\varphi) \big[ \varepsilon_{-} Y_{1,-1} + \varepsilon_{z} Y_{1,0} + \varepsilon_{+} Y_{1,1} \big] Y_{\ell' m'}(\theta,\varphi) . \]

  • The radial integral involves only the radial wavefunctions \(R_{n\ell}(r)\).
  • The angular integral involves the spherical harmonics and will give rise to the selection rules.

2.2 Radial Integral: Overlap of Wavefunctions

The radial integral is

\[ \langle R \rangle = \int_0^\infty r^3 \, R_{n\ell}(r) \, R_{n'\ell'}(r) \, dr . \]

Here \(R_{n\ell}(r)\) and \(R_{n'\ell'}(r)\) are the radial wavefunctions of the initial and final states. The factor of \(r^3\) arises from two sources: the \(r^2\) volume element in spherical coordinates, and the extra factor of \(r\) coming from the dipole operator \(\vec{r}\).

This integral is sometimes called the radial overlap because it measures how much the radial parts of the two wavefunctions “line up” with each other once weighted by \(r^3\).

  • If the two radial functions oscillate in phase over a large region of \(r\), the integral will be large, indicating a strong transition.
  • If they oscillate out of phase, positive and negative contributions will cancel, and the overlap will be small, making the transition weak.
  • If the radial functions hardly overlap at all (for instance, when one is localized close to the nucleus and the other peaks far away), the integral will also be small.

Thus, the radial integral sets the overall transition strength: even if the angular part allows the transition (i.e. it is not forbidden by the selection rules), the actual probability depends strongly on this overlap.

You can see this visually in one of the previous sections, where several hydrogen radial wavefunctions are plotted. For example, the \(1s\) and \(2p\) wavefunctions overlap significantly in the region near the Bohr radius, which leads to a relatively strong transition. In contrast, the overlap between \(1s\) and \(3p\) is smaller because the \(3p\) wavefunction has more oscillations, and large parts of the integral cancel out.


2.3 Angular Integral and Selection Rules

The angular contribution to the dipole matrix element is

\[ \langle \Omega \rangle = \int d\Omega \, Y_{\ell m}^*(\theta,\varphi) \big[ \varepsilon_{-} Y_{1,-1}(\theta,\varphi) + \varepsilon_{z} Y_{1,0}(\theta,\varphi) + \varepsilon_{+} Y_{1,1}(\theta,\varphi) \big] Y_{\ell' m'}(\theta,\varphi). \]

This integral contains the product of three spherical harmonics: the initial state, the polarization-dependent factor, and the final state. Such integrals are standard objects in mathematical physics, and their properties are extensively studied in the framework of angular momentum theory (for example, through Wigner \(3j\) symbols and group theory). For our purposes, however, we do not need the full machinery — it is sufficient to know the conditions under which these integrals vanish or remain nonzero.

The rules follow from the orthogonality and coupling properties of spherical harmonics:

  • The factor \(Y_{1,0}\) (associated with \(\pi\)-polarized light, \(\varepsilon_{z}\)) changes the magnetic quantum number by
    \[ \Delta m = 0 . \]

  • The factor \(Y_{1,1}\) (associated with \(\sigma^{+}\) polarization, \(\varepsilon_{+}\)) changes the magnetic quantum number by
    \[ \Delta m = +1 . \]

  • The factor \(Y_{1,-1}\) (associated with \(\sigma^{-}\) polarization, \(\varepsilon_{-}\)) changes the magnetic quantum number by
    \[ \Delta m = -1 . \]

Thus, each polarization component of the light couples the atomic states in a different way, enforcing a specific change in \(m\).

At the same time, because the inserted spherical harmonic always has \(\ell = 1\), the angular momentum selection rule is

\[ \Delta \ell = \pm 1 . \]

Taken together, the dipole selection rules are:

  • \(\Delta \ell = \pm 1\)
  • \(\Delta m = 0, \pm 1\) depending on the light polarization.

We assume the atomic states \(|\phi_i\rangle\) and \(|\phi_f\rangle\) are simultaneous eigenstates of \(L^2\) and \(L_z\) with \[ L_z |\phi_i\rangle = m_i\hbar\,|\phi_i\rangle,\qquad L_z |\phi_f\rangle = m_f\hbar\,|\phi_f\rangle. \] For any operator \(\hat{O}\), \[ \langle \phi_f|[L_z,\hat{O}]|\phi_i\rangle = \langle \phi_f|L_z\hat{O}-\hat{O}L_z|\phi_i\rangle = (m_f-m_i)\hbar\,\langle \phi_f|\hat{O}|\phi_i\rangle. \tag{1} \] Thus, if we can compute \([L_z,\hat{O}]\) explicitly and equate it to the right hand side above, we obtain a condition on \(m_f-m_i\) for which the matrix element \(\langle \phi_f|\hat{O}|\phi_i\rangle\) can be nonzero.

Below we apply this with \(\hat{O}=z,\;x+iy,\;x-iy\), which correspond to the \(\pi,\;\sigma^{+},\;\sigma^{-}\) components of the electromagnetic field.


(a) \(\Delta m=0\)\(\pi\) transitions (polarization along \(z\))

Compute the commutator \[ [L_z,z]=0, \] because \(L_z\) involves only \(x,y\) and their derivatives and commutes with \(z\). Using (1), \[ 0=\langle \phi_f|[L_z,z]|\phi_i\rangle=(m_f-m_i)\hbar\,\langle \phi_f|z|\phi_i\rangle. \] Therefore either \(\langle \phi_f|z|\phi_i\rangle=0\) or \(m_f-m_i=0\). For a nonzero dipole matrix element along \(z\) we must have \[ \Delta m = m_f-m_i = 0. \]


(b) \(\Delta m=+1\)\(\sigma^{+}\) (right-circular) transitions

First use the basic commutators (standard results) \[ [L_z,x]=i\hbar\,y,\qquad [L_z,y]=-i\hbar\,x. \] Form the combination \(x+iy\): \[ \begin{aligned} [L_z,x+iy] &= [L_z,x] + i[L_z,y] \\ &= i\hbar\,y + i(-i\hbar\,x) = \hbar\,(x+iy). \end{aligned} \] Now apply (1) with \(\hat{O}=x+iy\): \[ \hbar\,\langle \phi_f|x+iy|\phi_i\rangle = \langle \phi_f|[L_z,x+iy]|\phi_i\rangle = (m_f-m_i)\hbar\,\langle \phi_f|x+iy|\phi_i\rangle. \] Canceling the factor \(\hbar\) (and assuming the matrix element is not identically zero) gives \[ (m_f-m_i-1)\,\langle \phi_f|x+iy|\phi_i\rangle = 0. \] Thus, for a nonzero matrix element we require \[ \Delta m = m_f-m_i = +1. \]


(c) \(\Delta m=-1\)\(\sigma^{-}\) (left-circular) transitions

Similarly, for \(x-iy\): \[ \begin{aligned} [L_z,x-iy] &= [L_z,x] - i[L_z,y] \\ &= i\hbar\,y - i(-i\hbar\,x) = -\hbar\,(x-iy). \end{aligned} \] Using (1) with \(\hat{O}=x-iy\), \[ -\hbar\,\langle \phi_f|x-iy|\phi_i\rangle = \langle \phi_f|[L_z,x-iy]|\phi_i\rangle = (m_f-m_i)\hbar\,\langle \phi_f|x-iy|\phi_i\rangle, \] which leads to \[ (m_f-m_i+1)\,\langle \phi_f|x-iy|\phi_i\rangle = 0. \] Hence, for a nonzero matrix element we must have \[ \Delta m = m_f-m_i = -1. \]

The dipole selection rule \(\Delta \ell = \pm 1\) follows from two basic ideas:
(1) how wavefunctions behave under parity (spatial inversion), and
(2) conservation of angular momentum.


  1. Parity Operator and Its Eigenvalues
    The parity operator inverts all spatial coordinates: \[ \hat{\mathcal{P}} f(\vec r) = f(-\vec r). \] If a state \(\psi(\vec r)\) is an eigenfunction of parity, \[ \hat{\mathcal{P}} \psi(\vec r) = \pi \psi(\vec r), \] then applying \(\hat{\mathcal{P}}\) twice must give back the original function: \[ \hat{\mathcal{P}}^2 \psi(\vec r) = \psi(\vec r). \] Hence \(\pi^2 = 1\), so the only possible eigenvalues are \(\pi = +1\) (even parity) or \(\pi = -1\) (odd parity).
    This is why “only \(\pm 1\)” is possible, not just a rule we memorize.

  1. Parity of States and the Dipole Operator
    • Spherical harmonics \(Y_{\ell m}(\theta,\phi)\) have parity \((-1)^\ell\).
      So an orbital with angular momentum \(\ell\) is even if \(\ell\) is even, odd if \(\ell\) is odd.
    • The dipole operator \(\hat{\vec{D}}=-e\vec r\) changes sign under inversion (\(\vec r \mapsto -\vec r\)).
      Therefore \(\hat{\vec D}\) has odd parity.

  1. Condition for a Nonzero Matrix Element
    Consider the dipole matrix element \[ \langle \phi_f | \hat{\vec D} | \phi_i \rangle = \int \phi_f^*(\vec r) \, \hat{\vec D} \, \phi_i(\vec r) \, d\tau. \] If we apply the parity operator to the integrand:

    • \(\phi_i \mapsto \pi_i \phi_i\)
    • \(\phi_f^* \mapsto \pi_f \phi_f^*\)
    • \(\hat{\vec D} \mapsto -\hat{\vec D}\)

    So under inversion, the integrand picks up a factor \[ \pi_f \cdot (-1) \cdot \pi_i. \] If this factor is \(-1\), the integrand is an odd function of \(\vec r\). But the integral of an odd function over all space vanishes.
    Therefore, the integral is nonzero only if \[ \pi_f \cdot (-1) \cdot \pi_i = +1. \]

    This shows where the “rule” comes from: it’s about whether the integrand is even or odd.


  1. Implication for \(\ell\)
    Using \(\pi_i=(-1)^{\ell_i}\) and \(\pi_f=(-1)^{\ell_f}\): \[ (-1)^{\ell_i + \ell_f + 1} = +1. \] This requires \(\ell_i + \ell_f\) to be odd.
    In other words, the initial and final states must have opposite parity.

  1. Connecting to Angular Momentum Conservation
    The dipole operator transforms like \(\ell=1\) (it is a vector, or rank-1 tensor).
    Angular momentum addition rules then allow \[ \ell_f \in \{ \ell_i-1, \; \ell_i+1 \}. \] So the only allowed transitions are \[ \Delta \ell = \pm 1. \]

takeaway:
If the integrand is odd, the whole matrix element cancels out. Because the dipole operator is odd under inversion and carries one unit of angular momentum, it can only connect states of opposite parity with angular momentum differing by one. This is the origin of the \(\Delta \ell = \pm 1\) selection rule — not just a fact to memorize, but a direct consequence of symmetry.

TipSummary: Electric Dipole Selection Rules

The following rules govern all electric dipole (\(E1\)) transitions, not only in hydrogen but also in multi-electron atoms. They follow directly from symmetry (parity, angular momentum, and spin):

  • Orbital Angular Momentum:
    \[ \Delta L = \pm 1 \] (The dipole operator carries \(L=1\), connecting states of opposite parity.)

  • Magnetic Quantum Number:
    \[ \Delta M_L = 0, \pm 1 \] depending on the polarization of the light (\(\pi\), \(\sigma^+\), \(\sigma^-\)).

  • Spin:
    \[ \Delta S = 0 \] because the dipole operator acts only on spatial coordinates, not on spin. (Strictly true in LS-coupling; weakly violated by spin–orbit mixing.)

  • Total Angular Momentum \(J\) (with spin–orbit coupling):
    \[ \Delta J = 0, \pm 1, \qquad \text{but } J=0 \;\not\leftrightarrow\; J=0 \] These rules apply to fine-structure states when \(L\) and \(S\) are coupled.


IN SUMMARY:
Electric dipole transitions require a change of parity,
with \(\Delta L = \pm 1\), \(\Delta M_L = 0, \pm 1\),
no change in spin (\(\Delta S = 0\)),
and \(\Delta J = 0, \pm 1\) (except \(J=0 \not\leftrightarrow J=0\)).

3 Angular Distribution of Emission and Excitation

So far, we have described the three polarization components (\(\pi\), \(\sigma^+\), \(\sigma^-\)) as if they were absolute:
- \(\pi\): linear polarization along the quantization axis (\(z\))
- \(\sigma^+\): right-circular polarization in the \(xy\)-plane
- \(\sigma^-\): left-circular polarization in the \(xy\)-plane

This picture is very useful, but it hides the fact that real photons also have a propagation direction \(\vec k\). Because the electromagnetic field is transverse, the polarization vector must always satisfy
\[ \vec E \cdot \vec k = 0 . \]


3.1 Absorption (Excitation by Laser Light)

  • If the laser propagates perpendicular to \(z\) (\(\vec k \perp z\)), then the polarization must lie in the transverse plane (\(xy\)-plane).
    • A field polarized along \(z\) is allowed (this is pure \(\pi\)).
    • A field polarized linearly in the \(xy\)-plane can be expressed as a superposition of \(\sigma^+\) and \(\sigma^-\) components. (To realize a pure \(\sigma^+\) or \(\sigma^-\) basis state, one needs a circular polarization in the transverse plane, i.e. a coherent combination of two orthogonal linear polarizations with a \(\pm 90^\circ\) phase difference.)
  • If the laser propagates along \(z\) (\(\vec k \parallel z\)), then \(E\) has no \(z\)-component.
    • \(\pi\) excitation is forbidden
    • only \(\sigma^\pm\) remain
  • For intermediate directions of \(\vec k\), the polarization projects partly onto the \(z\)-axis and partly onto the transverse plane. This means the laser light drives a mixture of \(\pi\) and \(\sigma\) transitions, with relative strengths determined by geometry.

3.2 Emission (Spontaneous Decay)

The same geometry shows up in the angular distribution of emitted radiation. A dipole oriented along a given axis radiates anisotropically:

  • A dipole oscillating along \(z\) (\(\pi\) transition) has a radiation pattern proportional to \(\sin^2\theta\), with a node along the \(z\)-axis and maximum intensity in the \(xy\)-plane.

  • A dipole rotating in the \(xy\)-plane (\(\sigma^\pm\) transition) emits radiation with circular polarization along \(z\) and a more complicated angular distribution off-axis. Along the \(z\)-axis, the emission is purely \(\sigma^+\) or \(\sigma^-\) polarized, reflecting conservation of angular momentum.

Thus, just as absorption depends on how the photon’s polarization decomposes into \(\pi\) and \(\sigma\) components, emission depends on how the atomic dipole radiation projects into the observation direction.


3.3 Summary: Symmetry Between Absorption and Emission

  • Absorption: the ability of a photon to drive \(\pi\) or \(\sigma\) transitions depends on the angle between \(\vec k\) and the quantization axis.
  • Emission: the angular pattern and polarization of the emitted photon depend on whether the atomic dipole oscillates along \(z\) (\(\pi\)) or rotates in the \(xy\)-plane (\(\sigma^\pm\)).

In both cases, the essential point is the same: the quantization axis and the photon propagation direction are not independent, and geometry determines which transitions are accessible or visible.

It is important to see that the words \(\pi\) polarization = \(z\) and \(\sigma\) polarization = \(xy\) are really shortcuts. In reality, the distribution of light depends on both the dipole orientation and the photon propagation direction. The simplified picture is correct in the standard geometry but must be applied with care when the light comes in at an angle or when emission is observed in a particular direction.

Three-dimensional polar plots showing the emission and absorption profiles of \(\pi\) and \(\sigma\) transitions are shown below.

Code
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

def profile(l, m, theta, phi):
    """
    Calculates the absolute square of the normalized complex spherical harmonic Y_l^m(theta, phi).

    Args:
        l (int): The orbital quantum number.
        m (int): The magnetic quantum number.
        theta (numpy.ndarray): The polar angle (from 0 to pi).
        phi (numpy.ndarray): The azimuthal angle (from 0 to 2*pi).

    Returns:
        numpy.ndarray: The value of |Y_l^m(theta, phi)|^2.
    """
    if l == 1:
        if m == 0:
            return (3.0 / (8.0 * np.pi)) * np.sin(theta)**2
        elif abs(m) == 1:
            # The e^(i*phi) term squared has a magnitude of 1, so we only
            # need to square the sine term and the prefactor.
            return (3.0 / (16.0 * np.pi)) * (1 + np.cos(theta)**2)
    else:
        # Return zeros for any other (l,m) pairs not explicitly handled.
        return np.zeros_like(theta)

# Set up the spherical coordinate grid
theta_phi_samples = 100
theta = np.linspace(0, np.pi, theta_phi_samples)
phi = np.linspace(0, 2 * np.pi, theta_phi_samples)
theta, phi = np.meshgrid(theta, phi)

# Define the (l, m) pairs to be plotted, avoiding redundant plots
# We only need to plot for m >= 0
lm_pairs = [
    (1, 0),
    (1, 1)
]

# Calculate the squared magnitude for all spherical harmonics and find the global maximum
all_R_values = []
for l, m in lm_pairs:
    R = profile(l, m, theta, phi)
    all_R_values.append(R)

# Find the global maximum to normalize all plots to the same scale
R_max = max(np.max(r) for r in all_R_values)

# Set up the plot with a grid of subplots (2 rows, 3 columns)
fig = plt.figure(figsize=(15, 10))

# Loop through the pairs and create a subplot for each
for i, (l, m) in enumerate(lm_pairs):
    ax = fig.add_subplot(2, 3, i + 1, projection='3d')
    # Set equal aspect ratio for the plot box
    ax.set_box_aspect([1, 1, 1])

    # Get the pre-calculated R and normalize it
    R = all_R_values[i] / np.max(all_R_values[i])#R_max
    if (l,m)==(0,0): R = R/1.5

    # Convert to Cartesian coordinates for plotting
    x = R * np.sin(theta) * np.cos(phi)
    y = R * np.sin(theta) * np.sin(phi)
    z = R * np.cos(theta)

    # Normalize the R values for color mapping and apply alpha
    norm = plt.Normalize(vmin=R.min(), vmax=R.max())
    if (l,m)==(0,0): norm = plt.Normalize(vmin=R.min()-.1, vmax=R.max()+.1)
    colors = plt.cm.jet(norm(R))
    
    # Plot the surface with colors based on the radius and alpha set directly
    ax.plot_surface(x, y, z, rstride=1, cstride=1, facecolors=colors,
                    edgecolor='none', alpha=0.8)
      
    
    # Manually set the axis limits to be identical across all plots
    ax.set_xlim([-1, 1])
    ax.set_ylim([-1, 1])
    ax.set_zlim([-1, 1])

    # Set titles for each subplot, using the pm symbol where appropriate
    if m == 0:
        title = r'$\pi$-transition' +'\n' + r'$P(\Omega) = \frac{3}{8\pi} \sin(\theta)^2$'
        ax.quiver(
            0, 0, 1,  # Position of the vector's tail
            0, 0, 0.7,     # Components of the vector
            color='red', 
            arrow_length_ratio=0.2,     # Customize arrow appearance
        )
        ax.text( 0, 0.2, 1.3, s=r'$\vec{\varepsilon}$', color='red', fontsize=14)
    else:
        title = r'$\sigma^\pm$-transitions' +'\n' + r'$P(\Omega) = \frac{3}{16\pi} (1+\cos(\theta)^2)$'
        # 2. Define the path of the circular arc
        # Define start and end angles in degrees
        start_angle = 30
        end_angle = 350

        # Convert angles to radians for calculation
        theta = np.linspace(np.deg2rad(start_angle), np.deg2rad(end_angle), 100)
        radius = 0.5

        # Calculate the x, y, z coordinates of the curve
        x_curve = radius * np.cos(theta)
        y_curve = radius * np.sin(theta)
        z_curve = np.full_like(theta, 1.4) # Keep the arc on the z=0 plane

        # 3. Plot the curve
        ax.plot(x_curve, y_curve, z_curve, color='red')

        # 4. Add the arrowhead using ax.quiver()
        # Get the last two points of the curve to define the arrow direction
        x_end, y_end, z_end = x_curve[-1], y_curve[-1], z_curve[-1]
        x_tail, y_tail, z_tail = x_curve[-2], y_curve[-2], z_curve[-2]

        # Calculate the vector components for the arrow from the tail to the tip
        u_arrow = x_end - x_tail
        v_arrow = y_end - y_tail
        w_arrow = z_end - z_tail

        # Plot the arrowhead. The `ax.quiver()` function plots a straight arrow.
        ax.quiver(
            x_tail, y_tail, z_tail,  # Tail of the arrow
            u_arrow, v_arrow, w_arrow, # Direction components
            color='red',
            length=0.1,                # Control the length of the arrowhead
            normalize=True,             # Normalize the vector to control arrow length
            arrow_length_ratio=2.2     # Customize arrow appearance
        )
        ax.text( 0.1, 0.1, 1.3, s=r'$\vec{\varepsilon}$', color='red', fontsize=14)


    ax.set_title(title, fontsize=14)
    # Hide the axes to make the plot cleaner
    ax.set_axis_off()

plt.tight_layout()
plt.show()

Angular absorption (and emission) profile of $\pi$ transitions (left) and $\sigma$ (right) transitions.

Angular absorption (and emission) profile of \(\pi\) transitions (left) and \(\sigma\) (right) transitions. \(\sigma^+\) and \(\sigma^-\) have identical intensity distributions, only their polarization differs.

4. An Experimental Example: Optical Pumping

So far we have derived the dipole selection rules and discussed how light polarization controls the allowed transitions between quantum states. Let us now see how these rules can be exploited in practice — in particular, how we can use them to align or orient the angular momentum of an ensemble of atoms. The method is known as optical pumping.


4.1 Optical pumping of \(^{87}\)Rb

As a concrete example, consider optical pumping of \({}^{87}\text{Rb}\). We focus on the transition from the ground state \(5S_{1/2}, F=2\) to the excited state \(5P_{3/2}, F'=3\) using \(\sigma^+\) polarized light.

When \(\sigma^+\) light is applied along the quantization axis (\(z\)), it preferentially drives transitions with \(\Delta m_F = +1\).
Starting from a distribution over all \(m_F\) sublevels in \(F=2\), atoms are successively excited and decay in such a way that population is pushed toward higher \(m_F\) values.

  • For example, an atom in \(m_F=0\) absorbs a \(\sigma^+\) photon and is excited to \(m_F'=+1\). Spontaneous decay can return it to \(m_F=0, +1\), or \(-1\). Over many cycles, the net effect is to funnel atoms upward in \(m_F\).
  • Eventually, atoms accumulate in the stretched sublevel \(m_F=+2\). From there, absorption by \(\sigma^+\) light brings the atom to \(m_F'=+3\), and spontaneous decay from \(m_F'=+3\) can only return it to \(m_F=+2\) (within the \(F=2\) ground manifold).

Thus, population is trapped in the cycling pair \(m_F=+2 \leftrightarrow m_F'=+3\). Atoms in this pair continue to interact with the light — scattering photons repeatedly — but they are no longer redistributed to other \(m_F\) states. The result is a macroscopic alignment of angular momentum along the \(+z\) direction.

Optical pumping in ${}^{87}\text{Rb}$: $\sigma^+$ light drives population into the stretched ground state $m_F=+2$, which cycles with $m_F'=+3$ and aligns the atomic angular momentum along the quantization axis.

Optical pumping in \({}^{87}\text{Rb}\): \(\sigma^+\) light drives population into the stretched ground state \(m_F=+2\), which cycles with \(m_F'=+3\) and aligns the atomic angular momentum along the quantization axis.

4.2 Why It Matters

Optical pumping is more than a neat trick — it is a cornerstone of modern atomic physics. It is used to:

  • Prepare well-defined quantum states for precision spectroscopy.
  • Initialize atomic ensembles in quantum optics experiments.
  • Generate spin-polarized samples for magnetometry and quantum information.

This example makes the abstract selection rules tangible: by choosing the light polarization, we directly engineer the quantum state distribution of an atomic ensemble.