McXtrace logo

McXtrace - An X-ray ray-trace simulation package

Synchrotron SOLEIL DTU Physics


About McXtrace
 Project Partners
 Project People


 Wiki (GitHub)

Mailing list



Code-repository (GitHub)

Report bugs (GitHub)

McXtrace - Monte Carlo Xray Tracing, is a joint venture by

DTU_logo.gif Soleil.png

Our code is based on technology from mcstas_logo_thumb.png

Code repository (shared with 'McStas') is located at

For information on our progress, please subscribe to our user mailinglist..

Recent McXtrace News

Migrating from McXtrace 1.x to 3.x? - Use the wiki-based guides

[16/05/2024] (experimental) previews of the forthcoming 3.5-release

Dear all,

If you want a sneak preview at the forthcoming 3.5-release (see below for explanation of version-"jump"), we recommend you to try either

  • Our conda-forge packages
    (NB: The Windows version of the package does not include MCPL and NCrystal yet)
  • A new set of conda-based macOS app bundles
    (Based on conda-forge and should auto-download the newest conda-package plus dependencies)
  • Corresponding Debian packages, Windows/MinGW package and macOS/Intel package are built on a nightly basis via GitHub action "mcxtrace-autobuild" see e.g. this latest one
    (The packages are available in the "artifacts", download may require being logged in on GitHub. Somewhat confusingly, the Windows build is enclosed in the "ubuntu" artifact.)

Among the hightlights are:

  1. New default-CFLAGS
    (Gives improved simulation performance of ~ 30-40% when using gcc and/or clang on Unix platforms at the cost of 5-10% longer compile time. -
    Thanks to Thomas Kittelmann for help debugging a slowdown found when using the built-in compilers on conda :-) )
  2. Tighter integration with McStasScript
    (mcxtrace-pygen-driven button in mcgui directly spawns JupyterLab with a generated notebook)
  3. McStasScript is automatically included and configured on mac and Windows builds
  4. We have started organising the instrument-examples in a folder-structure, allowing to distribute "more than just the instrument-file" as an example.
    (Case-specific datafiles or geometry-files, c-code snippets, python scripts or McStasScript notebooks welcome - we still want new comps to arrive in contrib)
  5. New File.comp contribution from Greg Tucker, allows to use metadata blocks to store input-files for components
    (e.g. for a small OFF file or other datafile - then visible alongside instr in your editor.)
  6. ... and we are working on freshening up certain aspects of the 3D-visualisation... ;-)
    (New visualisation is not yet included in the above-mentioned packages...)

Do you have new component- or instrument-developments you would like included in next release?
- Then NOW is a good time to send them. :-) We prefer of you open a PR on GitHub but of course email-based contributions are also welcome. :-)

Finally, if you know anyone running McStas all of the above should also work for them. And going forward, releases of McStas and McXtrace should come in pairs with the same versioning.

[13/02/2024] Issue with anisotropic SasView models

Dear all, a bug in the 3.2 release of McXtrace has been found by one of our DTU users.

Instruments containing "anisotropic" SasView components will not compile out of the box, instead giving the compilation error

core_shell_cylinder:2944:43: error: expected ')'
  double l0, l1, k, l_full, l, dl, d_Phi, theta;

which indicates a doubly-defined 'theta' symbol in the generated component-codes.

If you need / want to use one of these anisotropic models, please either

A fresh McXtrace release will be spun out in the spring of 2024.
2023, 2022, 2021, 2020 and older News

Last Modified: Thursday, 16-May-2024 15:56:02 CEST
Search website mailinglist archive GitHub repos