Ponente
Descripción
Introduction
The Fortran Monte Carlo code PENELOPE is widely used in radiation therapy physics as it implements the most reliable interaction models of electron, positron and gamma currently available for general purpose radiation transport codes. The transport of charged particles is modeled with a class-II algorithm in which “hard” interactions are sampled from the relevant restricted differential cross sections. In this work, we describe and validate the PenG4 package, a full translation of all PENELOPE physics subroutines, including interaction models and class-II transport algorithm, to C++ classes adapted to the specific structure of the Geant4 Monte Carlo toolkit.
Design of C++ classes and coupling to Geant4
The translation of the Fortran code PENELOPE includes all the interaction models and class-II transport mechanics implemented in PENELOPE for electrons, positrons and gammas travelling in arbitrary materials. In order to use the class-II transport algorithm without interfering with the native algorithm of Geant4, dedicated “PENELOPE-like” particles classes were derived from G4ParticleDefinition base class. All the PENELOPE physics models are registered as a unique Geant4 process with a wrapper class called PenEMProcess. The code covers the scenario of converting a normal Geant4 particle into a PENELOPE-like particle if its energy falls below an energy threshold set by the user, being 1 GeV the upper limit; this is implemented by a “single-body decay” process called PenPartConvertProcess. If a particle becomes a PENELOPE-like particle, it is tracked as such until the end of its trajectory. A physics list constructor called PenelopeEMPhysics is responsible of the appropriate process registration and energy threshold definition for the conversion into a PENELOPE-like particle. Moreover, the materials used in the geometry model must be registered as PENELOPE materials to load all the properties calculated in PENELOPE from its own material database and set the PENELOPE transport parameters.
Validation
PenG4 has been verified with adaptations of examples included in the PENELOPE public distribution and in the Geant4 toolkit. We covered various cases of a pencil beam impinging on a cylindrical geometry, composed by one or more different materials, as shown in [1]. We also verified dose-point kernel (DPK) curves against reference calculations carried out with Geant4 and EGSnrc. Calculations carried out with PenG4 agreed with those obtained with PENELOPE within statistical uncertainties.
Conclusions
With the aim of incorporating all the functionalities and reliability of PENELOPE code into a Geant4 application, we translated the PENELOPE physics and class-II tracking subroutines to C++ classes so that they can be used as an additional physics list constructor. The PenG4 package, including code examples, is currently available at https://gitlab.com/miancortes/PenG4 and has been tested since Geant4 version 10.6 to the most recent one.
References
[1] M. Asai et al., Front. Phys. (Lausanne), 9: 738735 (2021).