Juliacon 2024

Geant4.jl - Particle transport in Julia
07-10, 15:00–15:30 (Europe/Amsterdam), For Loop (3.2)

Discover the Julia wrappers for Geant4 simulation, a vital C++ toolkit in particle physics, also used in nuclear and medical physics, and space science. Our focus is on a new, user-friendly interface for developers, improving ergonomics while preserving high performance. Explore the enhanced usability, a great advantage over the intricate C++ interface for occasional users developing custom simulations. Join us to explore Julia's empowering role in streamlining particle physics simulations.


We present the Geant4.jl package, which provides a wrapper to the Geant4 toolkit for the simulation of the passage of elementary particles through matter, which is widely used in high-energy physics as well as in other domains such as nuclear physics, medical physics, and space science. The toolkit is rather large with several thousands of C++ classes. Given the pivotal role of simulation in contemporary high-energy physics experiments, our focus is on unveiling a new, more user-friendly interface tailored for simulation application developers. This interface not only improves ergonomics but also maintains high computational performance, in particular fully exploiting multi-threading. We emphasise the significant advantages this enhanced toolkit usability provides, particularly when compared to the complexity of the C++ interface that occasional users need to use for their customised simulations.
The wrappers are based on CxxWrap.jl and they are generated automatically using the WrapIt tool. This helps enormously on the sustainability, in particular taking into account the size of the Geant4 project.

See also:

Senior Applied Physicist at the European Organization for Nuclear Research (CERN) developing and maintaining common scientific software for high-energy physics experiments