Calzone#
(CALorimeter ZONE)
Calzone is a Python package built on top of Geant4. It was developed in the context of geosciences with the objective of studying the emission of radioactivity from volcanoes [TGV+20], and in particular to simulate the response of gamma spectrometers deployed in the field. To this end, Calzone was developed in conjunction with Goupil [NVT24], a backward gamma transport engine, and is interoperable with the latter. Yet, both packages can be used entirely independently, if necessary.
Calzone’s interface has been designed with simplicity in mind. Source particles
are injected into the simulation volume as a numpy.ndarray,
and a numpy.ndarray of collected energy deposits (or
particles) is returned. The Monte Carlo geometry is encoded in
a Python dict, which can be loaded from configuration
files, e.g. using JSON, TOML or YAML formats. This basic workflow is
illustrated below,
import calzone
simulation = calzone.Simulation("geometry.toml")
particles = calzone.particles(
10000,
pid="e-",
energy=0.5, # MeV
position=(0,0,1) # cm
)
deposits = simulation.run(particles).deposits
Calzone encourages the use of meshes to describe the Monte Carlo geometry. Various mesh formats are supported, such as OBJ, STL, GeoTIFF and Turtle / PNG [NBCM20]. These formats can be used to encode the components of a detector (exported from a CAD scheme) or a Digital Elevation Model (DEM) describing the surrounding terrain. Additionally, Calzone features an interactive display that allows users to navigate through the Monte Carlo geometry and to inspect Monte Carlo tracks.
System of units#
Note
Calzone uses the Centimetre-Gram-Second (CGS) system of units (e.g. g/cm3 for a density), except for energies and momenta which are expressed in MeV and MeV/c respectively.