An X-ray ray tracing simulation code for mono- and polycapillaries: Description, advances and application

https://doi.org/10.1016/j.sab.2020.105974Get rights and content

Highlights

  • X-ray raytracing simulation code ‘polycap’.

  • Multithreaded, developed in C language with Python bindings.

  • Monocapillary and polycapillary photon simulation.

  • Includes photon leakage and inter-fiber transition simulation.

  • Package can be implemented in further software development.

Abstract

Polycapillary optics, consisting of bundles of narrow hollow glass channels, are regularly used in the field of (micro-)X-ray fluorescence (XRF) spectroscopy to focus X-rays down to a microscopic spot while increasing the flux density of the beam on the sample. Polycapillaries guide X-ray photons through multiple total reflection events, similar to how light is guided within optic fibers. Although the use of polycapillaries in XRF spectroscopy allows for fairly straightforward qualitative elemental analysis, fundamental parameter (FP) based quantification remains difficult due to the energy dependent photon transmission efficiency, focal size, acceptance, etc. of these optics.

In order to predict the polycapillary and input beam parameter dependent beam forming properties, a multithreaded Monte Carlo based polycapillary X-ray ray tracing code is presented. Apart from supporting photon ray tracing in ‘ideal’ straight, conical and ellipsoidal shaped polycapillary optics, it also allows for the simulation of photon propagation through arbitrarily shaped optics to account for small deviations from the ideal shape, as is often the case in real world examples. The current code allows for the simulation of so-called ‘leak events’, where the probability of a photon traveling through a capillary wall is taken into account, and also includes support for photon beam polarization effects.

The simulated results show good agreement with experimental results obtained at the BM26A beamline of the European Synchrotron Radiation Facility (ESRF, Grenoble, France). The (poly)capillary X-ray ray tracing simulation code, called ‘polycap’, developed in the C language and with bindings for Python, is released under the GPLv3 license. The code is expected to assist in the quantification of (poly)capillary based X-ray fluorescence spectroscopy and may yield additional insight into the manufacturing and development of polycapillary optics.

Introduction

Polycapillary optics consist of bundles of hollow glass channels with micron sized inner diameters that guide X-ray photons through a sequence of total reflection events, in a similar way as how fiber optics guide light [[1], [2], [3]]. Polycapillary optics are regularly used in the field of (micro-)X-ray fluorescence (XRF) spectroscopy to focus the X-rays, and thereby increase the flux density of the beam, down to a microscopic spot. Additionally, polycapillary optics can be used on the detector side in order to limit the field of view in a so-called confocal detection scheme [[4], [5], [6], [7]]. Although these methods allow for fairly straightforward qualitative elemental analysis, quantification remains difficult due to the energy dependent photon transmission efficiency, beam focusing and acceptance. Fundamental parameter approaches exist that can partially solve these issues, but they all require an accurate estimate of the (poly)capillary lens transmission efficiency, typically obtained experimentally through additional measurements of standard reference materials [8,9]. Furthermore, this approach potentially ignores the energy dependent acceptance of the (poly)capillary optic when the dimensions of the reference material differ considerably from the sample of interest, i.e. when operating outside of the infinitely thin or thick sample boundary conditions.

In order to account for this unknown energy and position dependent response, X-ray ray tracing simulations can be used, as previously reported by the groups of Gibson, Furuta, Vincze, Lin, Hampai and Peng [[10], [11], [12], [13], [14], [15], [16]]. Gibson's model assumes that photons are transmitted along the capillaries' meridian plane, while Lin's model assumes a constant radius for bent capillaries, and Furuta's model is aimed at simulating a single capillary. Although Peng's model describes tracing photons within single capillaries of a polycapillary optic with varying internal capillary radii, it does not support arbitrary polycapillary shapes. Furthermore, it appears this model does not feature surface roughness or potential transmission through capillary walls, both of which mainly influence high energy photons. In what follows, the single-channel capillary model of Vincze et al. [11,17,18] has been expanded upon to allow for multi-fiber X-ray ray tracing simulations supporting multi-core processing, and includes capillary wall transmission and beam polarization effects, and the option to simulate virtually any (poly)capillary shape.

Section snippets

Methods

The Monte Carlo based polycapillary X-ray ray tracing code, implemented as a library in C with Python bindings and available for the Windows, Linux and macOS platforms, is based on the work of Vincze et al. [17] Apart from supporting ray tracing of photons in ‘ideal’ straight, conical and ellipsoidal shaped polycapillary optics, it also allows for the simulation of arbitrarily shaped optics to account for small deviations from the ideal shape, as is often the case in real world experiments. The

Results

Fig. 2A displays the simulated transmission efficiency of 5 and 15 keV photons as a function of the transversal position at the polycapillary optic exit window. The transmission efficiency decreases significantly as the photon exits the optic at an increasing distance from the polycapillary optical axis. The center axis in both cases has approximately 100% transmission efficiency: the photons entering this capillary barely interact with the capillary wall, and therefore exit the capillary

Conclusion

A Monte Carlo based (poly)capillary ray tracing simulation code was implemented with multithreading support and can be deployed on all major operating systems. The presented library allows for photon ray tracing with energies between 1 and 100 keV in mono- or polycapillary optics, requiring a limited amount of input parameters. The output provides information on the general transmission efficiency for photons of a given energy, and registers entrance and exit coordinates, direction and energy

Declaration of Competing Interest

None.

Acknowledgements

We would like to acknowledge the BM26A staff for their support during the experiment, and the FWO and NWO for their financial support.

References (25)

  • B. Kanngießer et al.

    A deep view in cultural heritage—confocal micro X-ray spectroscopy for depth resolved elemental analysis

    Appl. Phys. A Mater. Sci. Process.

    (2011)
  • B. Laforce et al.

    Laboratory scale X-ray fluorescence tomography: instrument characterization and application in earth and environmental science

    Anal. Chem.

    (2016)
  • Cited by (9)

    • PolyX beamline at SOLARIS—Concept and first white beam commissioning results

      2023, Nuclear Instruments and Methods in Physics Research, Section B: Beam Interactions with Materials and Atoms
    • The focused beam X-ray fluorescence elemental quantification software package PIQUANT

      2022, Spectrochimica Acta - Part B Atomic Spectroscopy
      Citation Excerpt :

      Several methods and quantitative models now exist. Wolff et al. (2011) [21] derived a profile using a fundamental parameters approach combined with measurements of pure element and compound reference materials. Many others have utilized Monte Carlo modeling methods to calculate transmission [22–25].

    • Capillary X-Ray Lens Technology and Its Applications

      2022, Guangxue Xuebao/Acta Optica Sinica
    View all citing articles on Scopus
    View full text