Code and projects
This section contains physics code either as link to external repos or pages, or stand-alone snippets or notebooks. The only thing they have in common is that I am, or have been, actively working on this code. If you have questions about larger projects, please follow the appropriate link to the project documentation, and read that. Should you still have a question, please use the appropriate channel listed by the project.
Core projects¶
PYTHIA¶
PYTHIA is my main research activity. It is one of the most widely used simulation program, for generating collisions of high-energy particles, in the world. We are a team of 10-15 people from all over the world, developing and maintaining the program.
What I do: I have been one of the lead developers of PYTHIA for a number of years. This mostly means being part of the group which takes more responsibility for infrastructure and then, sadly, gets less time for physics. Nevertheless, my main physics responsibilities lies in the realms of hadronization and high-energy heavy ion physics.
If you have a question about PYTHIA, follow the link to our public GitLab below, and ask it in the issue tracker. You can also send a mail to authors@pythia.org ↗.
Nothing relevant to PYTHIA is hosted on this site. Instead, follow the links below.
Links: PYTHIA webpage ↗ · PYTHIA public GitLab ↗
MLhad¶
MLhad is a collaboration with the goal of designing data driven, machine learning based, hadronization models. I am very interested in this, since I am both involved with hadronization, and have a strong interest in how to interface classical simulation models with machine learning.
What I do: I work on interfacing some of the developments to PYTHIA, as well as on making the models already in PYTHIA differentiable, such that they can participate in an ML-centric workflow.
Links: MLhad webpage ↗ ·
Smaller tools and experiments¶
Reverse tuning¶
What: A notebook illustrating "reverse tuning". The problem addressed is the following: given a model, a dataset, and a set of parameters, how should the data be weighted such that a fitting procedure recovers the chosen parameter set?
Why I wrote it: Tuning of Monte Carlo event generators is often done "by hand", meaning that the procedure is not reproducible. This is a first step toward making such by-hand tuning procedures reproducible.
The Jupyter notebook can be run as is. The model is purely a mathematical toy with no event generator input.
Files:
Jupyter notebook
Election data¶
What: Geo-plotting of Danish election data. Pulls from the official election data API, and makes a couple of interesting correlation plots.
Why I wrote it: I was interested in seeting some correlations between two elections, illustrating voter migration. Fortunately, Danish election data is official and available in a very easy API.
Links: Repo on gitlab.com ↗: Use for inspiration, this is not production ready code.
Monte Carlo sampling methods¶
What: More in the realm of teaching material, this notebook introduces and practises several different basic Monte Carlo sampling methods. I use it for teaching.
Why I wrote it: Most computational physics textbooks and teaching material material skips over the most fun parts of sampling: how to sample from complicated functions. This is "devil-in-the-detail"-stuff. I needed a notebook to introduce this for students.
No weird dependecies for this notebook, except for standard plotting tools etc.
Files:
Jupyter notebook