Yoneda peak

The Yoneda peak is an enhancement of diffuse scattering that occurs when the exit angle $\alpha_\text{f}$ equals the critical angle $\alpha_\text{c}$ for total external reflection. In off-specular reflectometry and GISAS, it appears as a prominent ridge across the full width of the pattern at $\alpha_\text{f} = \alpha_\text{c}$.

Physical origin

For x-rays and neutrons the refractive index of matter is slightly less than unity, so total external reflection occurs for $\alpha_\text{i} < \alpha_\text{c}$. The Fresnel transmission amplitude

$$T(\alpha) = \bigl|1 + r(\alpha)\bigr|,$$

where $r(\alpha)$ is the Fresnel reflection coefficient, reaches its maximum value $T(\alpha_\text{c}) = 2$ exactly at the critical angle, and decays to unity well above it.

In the distorted-wave Born approximation (DWBA) the differential diffuse-scattering cross-section is proportional to $|T(\alpha_\text{i})|^2,|T(\alpha_\text{f})|^2$. At the Yoneda condition $\alpha_\text{f} = \alpha_\text{c}$ the exit-side factor reaches its maximum of 4 — a fourfold enhancement over the large-angle background — while $T(\alpha_\text{i})$ acts as a fixed global prefactor.

Observation in off-specular scattering

In an off-specular experiment one scans $\alpha_\text{i}$ at fixed detector angle, or vice versa. Because the cross-section contains the product $|T(\alpha_\text{i})|^2 |T(\alpha_\text{f})|^2$, the scan shows an intensity maximum — the Yoneda wing — whenever $\alpha_\text{i}$ or $\alpha_\text{f}$ passes through $\alpha_\text{c}$.

When the sample is a thin film on a substrate with two critical angles $\alpha_\text{c,film}$ and $\alpha_\text{c,substrate}$, the pattern shows two Yoneda ridges. The region of elevated scattering between them is the Yoneda band. The streak positions directly yield the scattering densities of the film and the substrate.

Because the Yoneda-peak position depends only on $\alpha_\text{c}$, which is set by the scattering density of the surface layer and the radiation wavelength, it provides an absolute angular reference in every off-specular or GISAS measurement. It is routinely used to refine the incident angle, the sample-detector distance, and the beam-center coordinates.

BornAgain simulation

The BornAgain example below demonstrates how to set up an off-specular simulation in which the Yoneda peak is the dominant feature.

Sample: vacuum | mixed layer M | substrate S.

Layer M contains a dilute 2D assembly of short cylinders (radius $R = 5,\text{nm}$, height $H = 3,\text{nm}$) embedded in vacuum. The particle volume fraction $f = 0.006$ gives an effective refractive-index decrement

$$\delta_\text{eff} = f,\delta_\text{P},$$

chosen to place the V→M critical angle at $\alpha_\text{c} = 2°$.

Suppression of the M/S interface reflection: the substrate refractive index is set equal to $\delta_\text{eff}$, so the substrate is index-matched to the effective medium. This removes the Fabry–Pérot resonance at the M/S interface and leaves the V/M Yoneda ridge as the sole dominant feature.

Scan range: $\alpha_\text{i}$ and $\alpha_\text{f}$ both run from $1.6°$ to $3.4°$, bracketing $\alpha_\text{c} = 2°$. The Yoneda peak appears as a bright ridge along the diagonal $\alpha_\text{f} = 2°$ and along $\alpha_\text{i} = 2°$.

Off-specular simulation showing the Yoneda peak at the critical angle α_c = 2°. Scan range 1.6°–3.4° in both α_i and α_f.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env python3
"""
Off-specular simulation showing a prominent Yoneda peak.

Sample: vacuum V | mixed M | substrate S.

Layer M contains a polydisperse 2D random assembly of cylindrical
particles P in vacuum.

Critical angle between vacuum and layer M: 2 deg.

The refractive index of substrate S equals the effective medium
index of layer M (linear mixing rule) so that we get no reflection
from the M/S interface. This leaves the V/M Yoneda peak as the
dominant feature.
"""
import bornagain as ba
from bornagain import ba_plot as bp, deg, nm

# Target critical angle V->M: alpha_c = 2 deg
# delta_eff = alpha_c**2 / 2 = (2*pi/180)**2 / 2 = 6.09e-4
# Ambient = vacuum (delta_A=0); linear mixing at f=0.5:
#   delta_eff = f*delta_P  =>  delta_P = 2*delta_eff
DELTA_P   = 1.218e-3          # 2*DELTA_EFF
DELTA_EFF = 0.5*DELTA_P       # = 6.09e-4
H         = 3*nm               # layer thickness = cylinder height


def get_sample():
    particle_mat  = ba.RefractiveMaterial("Particle",  (0.86, 0.24, 0.18),
                                          DELTA_P, 0)
    substrate_mat = ba.RefractiveMaterial("Substrate", (0.28, 0.57, 0.82),
                                          DELTA_EFF, 0)

    # R = 5±1 nm cylinders, H=2 nm; polydispersity smears F(q_z) oscillations
    vacuum_layer    = ba.Layer(ba.Vacuum())
    mixed_layer     = ba.Layer(ba.Vacuum(), H)
    ff = ba.Cylinder(5*nm, H)
    particle = ba.Particle(particle_mat, ff)
    mixed_layer.deposit2D(ba.Dense2D(0.006, particle))
    substrate_layer = ba.Layer(substrate_mat)

    sample = ba.Sample()
    sample.addLayer(vacuum_layer)
    sample.addLayer(mixed_layer)
    sample.addLayer(substrate_layer)
    return sample


def get_simulation(sample):
    nscan = 200
    scan = ba.AlphaScan(nscan, 1.6*deg, 3.4*deg)
    scan.setIntensity(1e8)
    scan.setWavelength(0.1*nm)
    detector = ba.OffspecDetector(nscan, 1.6*deg, 3.4*deg, -.2*deg, +.2*deg)
    return ba.OffspecSimulation(scan, sample, detector)


if __name__ == '__main__':
    sample = get_sample()
    simulation = get_simulation(sample)
    result = simulation.simulate()
    ba.showSample3D(sample, sample_size=200*nm, seed=0)
    bp.plot_datafield(result)
    bp.plt.show()
auto/Examples/offspec/YonedaBA.py