X-ray reflectivity. X-ray reflectivity (sometimes known as X-ray specular reflectivity, X-ray reflectometry, or XRR) is a surface-sensitive analytical technique used in chemistry, physics, and materials science to characterize surfaces, thin films and multilayers.  It is a form of reflectometry based on the use of X-rays and is related to the techniques of neutron reflectometry and ellipsometry.

The basic principle of X-ray reflectivity is to reflect a beam of X-rays from a flat surface and to then measure the intensity of X-rays reflected in the specular direction (reflected angle equal to incident angle).  If the interface is not perfectly sharp and smooth then the reflected intensity will deviate from that predicted by the law of Fresnel reflectivity. The deviations can then be analyzed to obtain the density profile of the interface normal to the surface.

History
The earliest measurements of X-ray reflectometry were published by Heinz Kiessig in 1931, focusing mainly on the total reflection region of thin nickel films on glass.  First calculations of XRR curves were performed by Lyman G. Parratt in 1954.  Parratt's work explored the surface of copper-coated glass, but since that time the technique has been extended to a wide range of both solid and liquid interfaces.

Approximation
When an interface is not perfectly sharp, but has an average electron density profile given by , then the X-ray reflectivity can be approximated by the so called Master formula:

Here  is the reflectivity, ,   is the X-ray wavelength (e.g. copper's K-alpha peak at 0.154056 nm),  is the density deep within the material and  is the angle of incidence.

The Fresnel reflectivity, , in the limit of small angles where polarization can be neglected, is given by:

Here   is the wavevector
inside the material,   and the critical angle  , with  the Thomson scattering length.
 
Below the critical angle  (derived from Snell's law), 100% of incident radiation is reflected through total external reflection, . For , . Typically one can then use this formula to compare parameterized models of the average density profile in the z-direction with the measured X-ray reflectivity and then vary the parameters until the theoretical profile matches the measurement.

Oscillations
For films with multiple layers, X-ray reflectivity may show oscillations with Q (angle/wavelength), analogous to the Fabry-Pérot effect, here called Kiessig fringes. The period of these oscillations can be used to infer layer thicknesses, interlayer roughnesses, electron densities and their contrasts, and complex refractive indices (which depend on atomic number and atomic form factor), for example using the Abeles matrix formalism or the recursive Parratt-formalism as follows:

where Xj is the ratio of reflected and transmitted amplitudes between layers j and j+1, dj is the thickness of layer j, and rj,j+1 is the Fresnel coefficient for layers j and j+1

where kj,z is the z component of the wavenumber. For specular reflection where the incident and reflected angles are equal, Q used previously is two times kz because . With conditions RN+1 = 0 and T1 = 1 for an N-interface system (i.e. nothing coming back from inside the semi-infinite substrate and unit amplitude incident wave), all Xj can be calculated successively. Roughness can also be accounted for by adding the factor

where  is a standard deviation (aka roughness).

Thin film thickness and critical angle can also be approximated with a linear fit of squared incident angle of the peaks  in rad2 vs unitless squared peak number  as follows:

.

Curve fitting

X-ray reflectivity measurements are analyzed by fitting to the measured data a simulated curve calculated using the recursive Parratt's formalism combined with the rough interface formula. The fitting parameters are typically layer thicknesses, densities (from which the index of refraction  and eventually the wavevector z component  is calculated) and interfacial roughnesses. Measurements are typically normalized so that the maximum reflectivity is 1, but normalization factor can be included in fitting, as well. Additional fitting parameters may be background radiation level and limited sample size due to which beam footprint at low angles may exceed the sample size, thus reducing reflectivity.

Several fitting algorithms have been attempted for X-ray reflectivity, some of which find a local optimum instead of the global optimum. The Levenberg-Marquardt method finds a local optimum. Due to the curve having many interference fringes, it finds incorrect layer thicknesses unless the initial guess is extraordinarily good. The derivative-free simplex method also finds a local optimum. In order to find global optimum, global optimization algorithms such as simulated annealing are required. Unfortunately, simulated annealing may be hard to parallelize on modern multicore computers. Given enough time, simulated annealing can be shown to find the global optimum with a probability approaching 1, but such convergence proof does not mean the required time is reasonably low. In 1998, it was found that genetic algorithms are robust and fast fitting methods for X-ray reflectivity. Thus, genetic algorithms have been adopted by the software of practically all X-ray diffractometer manufacturers and also by open source fitting software. 

Fitting a curve requires a function usually called fitness function, cost function, fitting error function or figure of merit (FOM). It measures the difference between measured curve and simulated curve, and therefore, lower values are better. When fitting, the measurement and the best simulation are typically represented in logarithmic space.

From mathematical standpoint, the  fitting error function takes into account the effects of Poisson-distributed photon counting noise in a mathematically correct way:
.

However, this  function may give too much weight to the high-intensity regions. If high-intensity regions are important (such as when finding mass density from critical angle), this may not be a problem, but the fit may not visually agree with the measurement at low-intensity high-angle ranges.

Another popular fitting error function is the 2-norm in logarithmic space function. It is defined in the following way:
.

Needless to say, in the equation data points with zero measured photon counts need to be removed. This 2-norm in logarithmic space can be generalized to p-norm in logarithmic space. The drawback of this 2-norm in logarithmic space is that it may give too much weight to regions where relative photon counting noise is high.

Neural network analysis of XRR 
The application of neural networks (NNs) in X-ray reflectivity (XRR) has gained attention for its ability to offer high analysis speed, noise tolerance and its ability to find global optima. Neural networks offer a fast and robust alternative to fit programs by learning from large synthetic  datasets that are easy to calculate in the forward direction and providing quick predictions of material properties, such as layer thickness, roughness, and density. The first application of neural networks in XRR was demonstrated in the analysis of thin film growth, and a wide range of publications has explored the possibilities offered by neural networks, including free form fitting, fast feedback loops for autonomous labs and online expeirmnet control.

One of the main challenges in XRR is the non-uniqueness of the inverse problem, where multiple Scattering Length Density (SLD) profiles can produce the same reflectivity curve. Recent advances in neural networks have focused on addressing this by designing architectures that explore all possible solutions, providing a broader view of potential material profiles. This development is critical in ensuring that solutions are not confined to a single, potentially incorrect branch of the solution space.

Open source software 
An up to date overview over current analysis software can be found in the following link. Diffractometer manufacturers typically provide commercial software to be used for X-ray reflectivity measurements. However, several open source software packages are also available: Refnx and Refl1D for X-ray and neutron relectometry, and GenX are commonly used open source X-ray reflectivity curve fitting software. They are implemented in the Python programming language and runs therefore on both Windows and Linux. Reflex is a standalone software dedicated to the simulation and analysis of X-rays and neutron reflectivity from multilayers. Micronova XRR runs under Java and is therefore available on any operating system on which Java is available.

Documented neural network analysis packages such as MLreflect have also become available as an alternative approach to XRR data analysis recently.

References

X-ray scattering