Skip to content

Gissio/radlab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Header

Rad Lab

Python Geant4 Calzone License: MIT

Overview

Rad Lab is a Monte-Carlo simulation toolkit for modeling the performance of Geiger–Müller tubes. Built on top of Calzone/Geant4, it provides an easy-to-use, reproducible, and extensible environment for detector simulation and design.

With Rad Lab, you can:

  • Compute detector efficiency (detected particles per incident particle).
  • Determine dose sensitivity (cpm per µSv/h) using ICRP 74.
  • Explore the directional response of detectors.
  • Obtain correct sensitivities for various radiation sources.
  • Prototype and evaluate measurement geometries.

Simulations

Explore the included notebooks:

Installation

  1. Install the latest Geant4 binary release: https://geant4.web.cern.ch/download/

  2. Install Python: https://www.python.org/

  3. Install PIP: https://pip.pypa.io/en/stable/

  4. Install Python dependencies:

    pip install -r requirements.txt
    
  5. Install VSCode: https://code.visualstudio.com/

  6. In VSCode, install the Jupyter extension (left toolbar → Extensions → search for "Jupyter").

Usage

  1. Start from an existing example notebook to create or modify a detector.
  2. Edit the geometry file data/geometry.toml. (See Calzone Geometry docs: https://calzone.readthedocs.io/en/latest/geometry.html)
  3. Open the corresponding notebook in VS Code and run the simulation.

Coordinate system

Rad Lab uses a right-handed coordinate system:

  • x-axis: along the detector’s length
  • y-axis: direction of incoming radiation
  • z-axis: upward

Display a geometry

To display a geometry:

calzone display [geometry.toml]

For navigation instructions, see the Calzone Interactive Display docs: https://calzone.readthedocs.io/en/latest/display.html

Detailed explanation

Rad Lab performs the following steps:

  1. Loads geometry

    A geometry.toml file specifies:

    • a Source box emitting parallel particles toward the detector at the coordinate origin. The source area equals the width × height of this box.
    • an EffectiveVolume, inside which freed electrons are counted.
  2. Runs Monte-Carlo transport

    Particle transport is simulated using Calzone/Geant4.

  3. Counts ionization electrons

    Electrons entering or produced in the EffectiveVolume are counted.

  4. Computes detector efficiency

    Efficiency = detected electrons / incident particles.

  5. Computes dose sensitivity

    • Ambient dose equivalent: using ICRP 74.
  6. Generates emission spectra

    • Isotopes: spectra from paceENSDF (IAEA ENSDF data).
    • X-ray tubes: spectra from SpekPy.
    • Natural background: modeled as a simple decaying exponential.
  7. Computes equivalent effective dose for each source.

Supported radiation sources

Source Type Main emissions
Cs-137 γ 662 keV
Co-60 γ 1173 + 1332 keV
Tc-99m γ 140 + 142 keV
I-131 γ Complex spectrum
Lu-177 γ 113 + 208 keV
Am-241 γ 59 keV
Radium γ Ra-226 chain
Uranium ore γ U-235 and U-238 series
Uranium glaze γ Processed uranium
Depleted uranium γ U-238
Thorium ore γ Th-232 series
X-ray tube (60 kV) X Bremsstrahlung
K-40 γ 1461 keV
Natural background Mixed Typical environmental

Adding new radioactive sources

To generate or update gamma spectra, run the notebook: build-spectra.ipynb

You will need:

Acknowledgements

  • Special thanks to BikingBoffin from /r/radiation for inspiring this project.

About

A Geiger-Müller tube and scintillation detector simulator based on Geant4/calzone

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published