Software
My software work focuses on building reproducible tools for detector simulation, scientific computing, and automated analysis workflows.
Angular Factors Calculator
Role: Lead Developer and Maintainer
Repository: angular-factors-calculator
Angular Factors Calculator is the public reproducibility package for my first- and corresponding-author annular-detector manuscript. It calculates annihilation-photon correlation factors from angle-resolved Geant4 ROOT data or supplied NaI(Tl) mass coefficients.
The package provides:
- ROOT-file inspection and angle-resolved histogram analysis
- Detector-geometry and solid-angle calculations
- Total-interaction and full-energy-peak response fitting
- Coefficient-based factor calculation
- Independent quadrature and midpoint numerical methods
- JSON and CSV outputs with calculation provenance
- Regression tests, continuous integration, and citation metadata
- A documented
angularcorrcommand-line interface
For the documented ideal annular geometry, the package reproduces the manuscript’s full-precision factors wL1 = 1.260741, wL2 = 1.253825, and wG = 1.269388.
Geant4 Detector Simulation Pipeline
Role: Developer and Maintainer
Repository: geant4-detector-simulation-pipeline
The Geant4 Detector Simulation Pipeline is a Python-assisted Geant4 workflow for automated scintillation detector response simulations. It was developed to reduce manual effort in repeated detector-response studies and to make simulation campaigns more reproducible, traceable, and easier to extend.
The software connects a configurable Geant4 C++ backend with Python tools for simulation setup, campaign execution, ROOT-file validation, deposited-energy spectrum generation, count extraction, plotting, and output organisation. It began as my master’s-thesis platform and now serves as the computational foundation of an ongoing beta-plus-emitter coincidence-summing study.
Motivation
Systematic detector-response studies often require many related Geant4 simulations across different source energies, detector materials, detector geometries, event counts, and source configurations. Manually preparing macros, running simulations, checking outputs, generating spectra, and extracting counts can become repetitive and error-prone.
This pipeline was developed to automate that workflow from simulation configuration to final spectra and count tables.
Main Capabilities
- Automated Geant4 macro generation
- Batch execution of simulation campaigns
- ROOT-file validation and deposited-energy extraction
- Spectrum generation from
EdepCrystal_keV - Photopeak, sum-peak, and total non-zero count extraction
- CSV/table generation for comparison studies
- Reproducible output organisation
- Reference outputs for testing and demonstration
Supported Detector Geometries
The pipeline currently supports three detector configurations:
- Solid cylindrical scintillation detector geometry
- Hollow annular detector geometry
- Near-4π soccer-ball-style modular detector geometry
These geometries allow detector response to be compared under different angular-coverage and source-placement conditions.
Supported Scintillator Materials
Implemented scintillator materials include:
- NaI
- LaBr3
- CsI
- BGO
- GGAG
- PbWO4
Simulation and Analysis Workflow
A typical simulation campaign follows this structure:
- Define detector material, geometry, source configuration, and event count.
- Generate Geant4 macro files using Python.
- Execute Geant4 simulations.
- Validate ROOT output files.
- Extract deposited-energy data from the event tree.
- Generate deposited-energy spectra.
- Extract photopeak, sum-peak, and total non-zero deposited-energy counts.
- Export final results as plots and comparison tables.
Research Use
This software forms the basis of my master’s thesis:
A Python-Assisted Geant4 Workflow for Automated Scintillation Detector Response Simulations
It is also the software basis for my first-author conference paper accepted for poster presentation at IEEE Nuclear Science Symposium 2026:
A Python-based Tool for Automated Geant4 Simulations of Scintillation Detectors
After the thesis, I extended a private working copy of the platform to reconstruct the published Byun eight-block detector, implement custom Na-22, O-14, and Sc-44 source models from nuclear decay schemes, execute 10^8-event campaigns, and calculate geometry-dependent angular factors for a near-4π NaI(Tl) soccer-ball array.
These unpublished extensions and research outputs are intentionally excluded from the public repository pending manuscript development and supervisor approval. The public repository remains the stable, reproducible version of the thesis software.