Skip to content

Software

Code I maintain or wrote for measuring and analysing low-energy nuclear reactions. All of it is open source.

Maintainer and Lead Developer since June 2025

AZURE2

A widely used R-matrix code for nuclear astrophysics

AZURE2 fits a multi-level, multi-channel R-matrix model to the measured cross sections, angular distributions and scattering data of every reaction that shares a compound nucleus, and extrapolates the result to the energies at which stars burn. From the fitted cross section it also computes the reaction rate.

It is used for nuclear astrophysics, for nuclear-data evaluation at the IAEA and for ion-beam analysis of materials. I have maintained it and led its development since June 2025: analytic gradients for fits and Markov chain Monte Carlo, a reaction-rate integrator, polarization observables, identical-particle scattering, the graphical interface and the documentation.

What it is for

  • —Fitting R-matrix parameters to cross-section data from several reaction channels at once
  • —Extrapolating an S-factor below the lowest measured energy
  • —Reaction rates and their uncertainties
  • —Separating a measured cross section into its resonant and non-resonant parts

How to cite

R. E. Azuma et al., AZURE: An R-matrix code for nuclear astrophysics, Phys. Rev. C 81, 045805 (2010). doi:10.1103/PhysRevC.81.045805

The evaluations on this site run AZURE2 itself, on published analyses and on work not yet published (each page says which); the input files can be downloaded and run locally.

Author; DAQ Coordinator since 2024

WebDAQ

Data acquisition for the LUNA experiment, in a browser · MIT licence

WebDAQ is run control for CAEN digitizers from a web browser: it configures the boards, tunes their filters against a live spectrum, takes the runs, watches the rates and the beam current, and writes the shift's logbook entry. The acquisition itself runs in process, through the C++ library CaenDAQ, so closing the browser never stops a run.

It is the browser-based data acquisition developed for LUNA, and it lets shifts be taken remotely. Every run leaves its data beside a FAIR-ready metadata.json, the board configuration, the beam current and the monitored values. I wrote it with A. Compagnucci and R. Gesue.

What it is for

  • —Configuring CAEN digitizers (DPP-PHA and DPP-PSD) and keeping their full register configuration with every run
  • —Tuning thresholds, gates and trapezoid filters while a run is going
  • —Taking runs remotely, with spectra, rates, beam current and charge
  • —Run metadata, logbook, ELOG entries and alerts to Telegram or Zulip

LunaSRIM

SRIM-2013 in pure Python, validated against SRIM-2013 output · version 1.0.0 · MIT licence

LunaSRIM (the Python package lunasrim) is a re-implementation of SRIM-2013 in Python 3: TRIM, the Monte Carlo transport of ions in matter, and the SR module, which tabulates stopping powers, ranges and straggling. Both were reverse engineered from TRIM.exe and SRModule.exe, with the same random numbers, the same arithmetic and the same output files; on the project's test cases the output is bit-for-bit identical to SRIM-2013's.

It needs no Windows, Wine or Docker and has no required dependencies; a web application runs it in the browser.

What it is for

  • —Stopping-power and range tables for any ion in any element or compound
  • —Energy loss and energy straggling of a beam crossing a target layer
  • —TRIM calculations of implantation, damage and sputtering, with SRIM's own output files
  • —Implantation profiles, in the web application
Install (Python 3.9 or later)
pip install lunasrim
Stopping and range table of protons in silicon
lunasrim stopping H Si --emin 100keV --emax 1MeV
Energy loss and straggling of 400 keV protons in 1 µm of silicon
import lunasrim

r = lunasrim.energy_loss('H', 'Si', energy=400, thickness=1, unit='um')
print(r['energy_out'], r['sigma'], r['fwhm'])    # 330.46 keV, 4.48 keV, 10.56 keV

How to cite

J. F. Ziegler, M. D. Ziegler and J. P. Biersack, SRIM – The stopping and range of ions in matter (2010), Nucl. Instrum. Methods Phys. Res. B 268, 1818 (2010). doi:10.1016/j.nimb.2010.02.091

Please cite SRIM too when you use LunaSRIM. LunaSRIM ships SRIM-2013's data files, which SRIM's authors distribute for non-commercial use, so LunaSRIM is for non-commercial research and teaching; its own code is MIT-licensed.

LUNA Skills

Agent skills for experimental nuclear astrophysics · MIT licence

A set of skills for Claude Code and other agents that use the Agent Skills format, covering low-energy reaction measurements and γ-ray spectroscopy from the raw spectra to a published paper and a talk. Each skill is a folder with its instructions and, where needed, scripts and reference material; each analysis skill ships an offline self-test that must print PASS.

These are the skills I use in my own analyses, shared so that others can use them too.

What it is for

  • —Yields, peak shapes, detection efficiency and summing corrections, and target profiles
  • —Geant4 simulations of underground γ-ray set-ups and of AGATA
  • —Femtosecond lifetimes with the Doppler-shift attenuation method
  • —R-matrix calculations, fits and rates with AZURE2
  • —Writing and communication: plain prose, figures in the Physical Review C style, and slides
Install for Claude Code (links every skill into ~/.claude/skills)
git clone https://github.com/skowrons94/LUNA-Skills.git && cd LUNA-Skills
for s in */; do [ -f "$s/SKILL.md" ] && ln -sfn "$PWD/${s%/}" ~/.claude/skills/"${s%/}"; done

The skills

yield-analysis
Net areas, charge and live-time normalization and correlated uncertainties, to excitation-curve points
peak-shape-analysis
Bin-integrated fits of asymmetric γ-ray peaks and target energy-loss shapes
efficiency-analysis
Photopeak efficiency, IAEA decay data, cascade summing corrections
target-analysis
Target profiles, stoichiometry and degradation from excitation curves; SRIM tables
underground-gamma-simulation
Geant4 and ROOT simulations of γ-ray detection set-ups at underground accelerators
agata-simulation
The AGATA Geant4 code: custom geometries, external cascades, pulse-shape analysis emulation, summing and tracking
delta-beta-dsam
Femtosecond lifetimes with the Doppler-velocity (Δβ) DSAM method
azure2
AZURE2 and pyazr R-matrix calculations, fits, decompositions, extrapolations and rates
nuclear-research-project
Layout, provenance and reports of reproducible feasibility studies

Writing and communication

clear-experimental-writing
Experimental manuscripts, abstracts, captions and referee replies
methods-paper-style
Formalism, methods and R-matrix sections in a plain technical register
proposal-style
Proposals, grants, fellowships and beam-time requests
unslop
Plain-English editing
prc-figures
Figures in the Physical Review C and ROOT style: spectra, S-factors, heatmaps
research-slides
Talks in a consistent layout, Manim animations, rendering and a deck audit