This repository contains prototyping ideas for SIMBA (Bayesian platform for particle physics simulations). There are several directions in which we have specific interest.
We recommend to use conda
for python
and C/C++
development. You can rely on the provided environment:
$ conda env create -f env.yml
$ conda activate simba
For a nice introduction to muography we point out the survey by L. Bonechi et al.. The wonderful paper by W. Trzaska et al. discusses further experimental aspects.
Our starting point is pumas, a C99
library for backward Monte-Carlo simulations of muons passing through matter, specifically designed for muography.
As a first task, we propose to investigate the differential cross-sections in pumas v1.0
.
We shall consider the
bremsstrahlung,
pair production,
photonuclear
and
ionisation
processes for muons.
Those calculations have been also implemented in noa,
see the docs for more information.
Your first tasks can be:
- Re-implement the calculations in
python
using numba on bothCPU
andCUDA
(we advise you to integratenumba
withpytorch
, cf. examples). - In a
jupyter
notebook, provide the exact formulas for the cross-sections used (you can have a look at MUM for initial reference). - Compare accuracy and performance across
CPU
/CUDA
(document your results).
We recommend the Oxford lecture notes on the passage of particles through matter and the PENELOPE manual as a good introductory read about Monte-Carlo simulations. Geant4 reference is also a useful resource. Backward Monte-Carlo technique is well described by V. Niess et al..
For research directions in this project have a look at this tutorial on differentiable programming for particle physics simulations.