Fact-checked by Grok 2 weeks ago

Geant4

Geant4 is an open-source C++ toolkit designed for the simulation of particles and radiation passing through matter, enabling users to model complex geometries, particle interactions, and detector responses with high accuracy. Development of Geant4 began in 1994 as the RD44 project at , initiated by a between and Japanese institutions following earlier studies at and , with the first public release occurring in 1998. The project evolved into an international governed by a biennially renewed , involving over 100 scientists from more than 20 countries, and is hosted by with resources like , documentation, and tutorials freely available. Its architecture emphasizes object-oriented design for extensibility, allowing users to customize simulations through predefined physics lists or bespoke models covering energy ranges from millieV to 100 TeV. Geant4 finds broad applications across scientific domains, including high-energy physics experiments at facilities like the for detector design and event simulation, nuclear and accelerator physics for beam studies, for planning and , space science for shielding analysis, and even through extensions like Geant4-DNA. Key features include comprehensive physics models for electromagnetic, hadronic, and optical processes; support for advanced visualization and graphical user interfaces; and integration tools for , making it a versatile platform that has influenced thousands of publications since its inception. The latest version, 11.3.2, released under an open license, continues to incorporate enhancements for performance and validation against experimental data.

History and Development

Origins and Early Development

By the early 1990s, the GEANT3 toolkit, widely used for simulations in , faced substantial limitations stemming from its procedural design and decades of incremental modifications, which created a complex structure that hindered the addition of new features, extension of functionality, and bug fixes. These challenges were exacerbated by a severe shortage of manpower at for ongoing maintenance and development. In response, independent feasibility studies emerged in 1993 at and Japan's laboratory to investigate object-oriented paradigms as a foundation for a next-generation . At , S. Giani conducted an analysis of class hierarchies for an object-oriented GEANT during a dedicated mini-workshop. Concurrently, at , the ProdiG project explored object-oriented enhancements to GEANT, building on efforts that began in 1992. These parallel initiatives converged in 1994, culminating in a unified project under CERN's RD44 collaboration after the submission of a and a formal to the CERN Detector R&D Committee. The proposal, led by A. Dellacqua and colleagues, outlined the redesign of GEANT in an object-oriented framework using C++ and was presented in September 1994 before receiving approval in November as the RD44 GEANT4 project. The nascent team assembled an international roster of physicists, software engineers, and domain experts from , , , , and institutions across , , and , with G. Cosmo and S. Giani serving as spokespersons to coordinate efforts. From its inception, Geant4 aimed to provide a modular, object-oriented toolkit for precise simulation of particle passage through matter, targeting applications in high-energy physics experiments like those at the LHC while accommodating broader domains such as heavy-ion collisions and . Central to its design were principles of platform-independent portability, architectural extendibility to incorporate evolving user requirements, and the collaborative integration of specialized physics models from global experts to ensure accuracy and validation across interaction processes.

Key Milestones and Releases

The development of Geant4 commenced with the release of its first prototype in December 1998, concluding the RD44 phase and providing an initial object-oriented toolkit for particle transport simulation. This version, designated as Geant4 0.0, was made publicly available and served as the foundation for subsequent enhancements in , physics processes, and handling. Following this prototype, the project transitioned to a formal international collaboration structure. The toolkit was officially renamed Geant4, and a global (MoU) was established in 1999 to govern development, resource contributions, and among participating institutions, laboratories, and experiments. The MoU, designed for tacit renewal every two years, was renewed in 2006 to sustain ongoing collaboration and support the toolkit's evolution amid growing adoption. Key releases marked significant technological advancements. Geant4 version 1.0, the first production release, appeared in December 1999, enabling comprehensive simulations for high-energy physics applications. Version 9.0, released in December 2007, included refinements to physics models and data sets. A pivotal update occurred with version 10.0 in December 2013, which fully implemented multithreading at the event level for concurrent processing and enhanced low-energy physics modeling through updated electromagnetic data sets and neutron interaction cross-sections below 20 MeV. Integration with (LHC) experiments represented another major milestone, beginning in the early 2000s as ATLAS, , and LHCb evaluated and adopted Geant4 for detector response simulations by 2004, replacing legacy tools like Geant3 and enabling realistic modeling of complex environments. Subsequent versions incorporated modern programming standards to improve concurrency and maintainability. Starting with version 10.2 in December 2015, Geant4 adopted and features, such as auto type deduction and lambda expressions, to optimize code structure and support advanced parallelism without breaking . As of November 2025, Geant4 version 11.3.2 (released April 2025) stands as the latest stable release, incorporating minor performance optimizations and bug fixes. Ongoing includes work on GPU acceleration through vectorized geometry libraries to handle the computational demands of high-luminosity LHC simulations.
VersionRelease DateKey Advancements
1.0 1999 production toolkit with components.
9.0 2007Physics model refinements and data updates.
10.0 2013Full multithreading support; low-energy physics updates.
11.3.2April 2025Minor fixes and optimizations; ongoing GPU R&D.

Governance and Collaboration

The Geant4 Collaboration comprises approximately 90 member institutions from laboratories, experiments, and national institutes across , Europe, the USA, Japan, and other regions worldwide, with acting as the host laboratory responsible for overall coordination and support. This international framework ensures broad expertise in simulation and fosters sustained development of the toolkit. The governance structure is defined by the Oversight Board (OB), which provides strategic direction and ensures alignment with the needs of funding agencies, and the Steering Board (SB), which handles technical coordination and day-to-day management. These bodies were established through a 2006 renewal of the (MoU), which formalized the collaboration's operations and replaced earlier structures like the Collaboration Board and Technical Steering Board. Development is organized through specialized domain working groups, such as those for , physics processes, and , enabling focused contributions from experts. The toolkit is released under the permissive Geant4 Software License, which encourages open-source contributions while protecting intellectual property held by collaboration members. Funding primarily comes from projects, contributions from national laboratories like and , and support from member institutions, supporting core maintenance and enhancements. As of 2025, the promotes community engagement through ongoing and workshops, including the planned 2026 Geant4-DNA in , , to advance specialized applications like radiation biology simulations.

Overview and Architecture

Purpose and Scope

Geant4 is a simulation toolkit designed to model the passage of particles through matter, providing accurate simulations of particle interactions across a broad energy spectrum from milli-eV to 100 TeV scales. Its core purpose is to enable researchers in high-energy physics, , and related fields to simulate complex detector systems and experimental setups by incorporating detailed physics processes for particle transport and detection. The scope of Geant4 encompasses the full simulation pipeline, including geometry definition for experimental setups, specification of material properties, primary particle generation, tracking of particle trajectories, modeling of interactions with matter, simulation of detector responses, and generation and storage of event data for subsequent analysis and visualization. It supports both standalone applications for independent simulations and integration into larger frameworks for customized workflows, ensuring flexibility for diverse scientific applications. This comprehensive coverage allows users to address challenges in particle physics experiments without needing to develop low-level simulation code from scratch. Geant4 adopts an object-oriented design in C++ to achieve high accuracy, computational efficiency, and portability across multiple platforms, including UNIX, , Windows, and Mac OS X. It utilizes the bundled CLHEP library for mathematical and physics utilities and the for data structures. In contrast to its predecessor GEANT3, which used a procedural FORTRAN-based approach, Geant4 emphasizes modularity and user extensibility, facilitating the addition of new physics models and components through a hierarchical, releasable structure managed by domain experts. This design promotes transparency and adaptability, making it suitable for evolving research needs in particle simulation.

Design Principles and Toolkit Structure

Geant4 employs an object-oriented design paradigm based on Booch/UML methodology and ESA software engineering standards, emphasizing encapsulation, inheritance, and polymorphism to achieve modularity and reusability. This approach uses aggregation (has-a relationships) preferentially over inheritance (is-a) in performance-critical areas like tracking, while data hiding ensures independent category development with minimal interdependencies. Extendibility is a core principle, facilitated by abstract base classes such as G4VProcess and G4VSolid, allowing users to override and implement custom physics processes, geometry shapes, and models without altering the core toolkit. The hierarchical structure adopts unidirectional dependencies and a "Russian dolls" layering, where higher-level frameworks abstract common logic while enabling refinement at lower levels, thus minimizing coupling and supporting iterative development. The toolkit is organized into 17 categories, each independently developed and maintained by working groups, with interfaces standardized to preserve the architecture. These categories cover essential simulation aspects, as outlined below:
CategoryDescription
Handles units, constants, numerics, and (e.g., HepRandomEngine).
Particles and MaterialsDefines particle properties, materials, and optical surfaces (e.g., G4ParticleDefinition, G4Material).
Supports logical/physical volumes, solids, and navigation (e.g., G4Navigator, G4VSolid).
Physics ProcessesImplements electromagnetic, hadronic, and decay models (e.g., G4VEnergyLossProcess, G4HadronicProcess).
TrackingManages step-wise particle propagation (e.g., G4TrackingManager, G4SteppingManager).
Event/Run ManagementControls event handling and run execution (e.g., G4Event, G4RunManager).
ReadoutProcesses hits and digitization (e.g., G4VHit, G4VDigi).
Enables display of geometry and trajectories (e.g., G4VisManager).
PersistencyFacilitates transient-to-persistent data conversion.
InterfacesProvides abstract interfaces for external integrations (e.g., to or ).
Additional (e.g., Digits + Hits, Graphic_reps, Intercoms, Kernel)Supports auxiliary functions like hits collection, graphics, communication, and core kernel operations.
Central to this structure are key abstractions that model the simulation workflow: a run represents a collection of events under fixed detector conditions, initiated by a "Beam On" command; an encapsulates a sequence of tracks from primary vertices, including associated hits and trajectories; a track captures a particle's propagation as a series of steps, each detailing incremental changes like energy loss or position updates; and a step provides delta information between interaction points. Performance is enhanced through support for , with multithreading introduced at the event level in version 9.5 via a and fully realized in version 10.0 using a master-worker model and . This allows scalable execution on multi-core systems with G4MTRunManager, minimizing locks and changes for user compatibility, while shared resources like and physics tables ensure efficiency.

Core Components

Geometry and Materials Modeling

Geant4's geometry modeling enables the representation of complex physical setups through a hierarchical structure of volumes, supporting both simple and intricate detector configurations. The toolkit utilizes (CSG) solids, such as boxes (G4Box), tubes (G4Tubs), and cones (G4Cons), which are defined by parametric equations for their dimensions, like half-lengths in x, y, and z directions for a box. (BREP) solids complement this by allowing definitions via surface facets, including planes, splines, and non-uniform rational B-splines (NURBS), facilitating imports from (CAD) systems for precise modeling of arbitrary shapes. operations further enhance flexibility, with classes like G4UnionSolid, G4SubtractionSolid, and G4IntersectionSolid enabling the combination of solids under optional transformations to create composite structures. Central to the geometry hierarchy are key classes that assemble these solids into a navigable detector description. The abstract base class G4VSolid encapsulates the geometric and provides methods for computing distances to surfaces, checks, and vectors, essential for tracking efficiency. A G4LogicalVolume associates a G4VSolid with properties, detectors, attributes, and a list of daughter volumes, allowing logical sharing across multiple placements to optimize memory usage. Physical volumes, instantiated via G4PhysicalVolume or its derivatives like G4PVPlacement for single placements with and , G4PVParameterised for parameterized replicas varying by copy number (e.g., in or ), and G4PVReplica for regular divisions along axes, these logical volumes within a parent, forming a rooted at the world volume that defines the global . This hierarchy supports complex assemblies, such as layered detectors, without explicit limits on depth or branching. Materials in Geant4 are modeled to reflect real-world compositions, starting from fundamental building blocks integrated into the via logical volumes. The represents chemical , incorporating properties like , mass, and natural isotopic composition sourced from the NIST database, while G4Isotope handles specific isotopes with nucleon counts and molar masses. Compounds and mixtures are defined through G4Material, specifying (e.g., 2.700 g/cm³ for aluminum), , , and atomic or mass fractions of constituent or sub-materials, from which derived quantities like and energy loss per unit length are computed. Geant4 includes an internal database derived from NIST for predefined , compounds, and , accessible via the G4NistManager utility, which automates retrieval and instantiation for common substances like (H₂O with 2 and 1 oxygen atoms). This serves as the interface for tracking, , and physics processes, ensuring consistent property access across the simulation. Navigation within the geometry is optimized for efficient particle through automatic computation of the volume and boundary representations. The navigator exploits the to localize particles via ray-tracing, computing with minimal overhead by pre-processing daughter volumes and employing smart caching for repeated traversals. For solids, navigation scales with the number of constituent CSG primitives, while tools like overlap checks (via OLAP for batch mode or runtime commands) and graphical debugging (e.g., for ) aid in validating complex setups. These features ensure robust performance in simulations of large-scale experiments, as demonstrated in high-energy physics detectors.01368-8)

Particles, Tracking, and Event Management

Geant4 provides a comprehensive framework for defining particles through the G4ParticleDefinition class, which serves as the base for all particle types and stores essential static properties such as name, mass, charge, spin, and quantum numbers. These properties are read-only once set, ensuring consistency during simulations. The toolkit includes over 100 pre-defined standard particles, categorized into leptons, mesons, baryons, bosons, short-lived particles, and ions, accessible via static methods like G4Electron::ElectronDefinition() for electrons or G4Proton::ProtonDefinition() for protons. For user-defined particles, such as exotic ions or custom resonant states, developers can derive from G4ParticleDefinition and register them in the G4ParticleTable, which manages the global registry of all particles used in a simulation. Heavy ions, for instance, are dynamically generated using the GetIon() method with parameters for atomic number, mass number, and excitation energy, allowing flexible inclusion of nuclear species without predefined entries. Particle tracking in Geant4 involves step-by-step propagation of trajectories, managed by the G4SteppingManager, which computes the smallest step length from geometry boundaries, process limits, or user-defined cuts. Each step advances the particle along its path, updating dynamic properties like , , and , while the G4Track class encapsulates both static particle definitions and transient state information. Interactions occur either continuously along the step or discretely at boundaries; for discrete processes, such as decays, the step ends at the interaction point, with secondary particles added to a list for later processing. Along-step actions handle continuous effects, like energy loss, by invoking applicable processes and adjusting incrementally, whereas post-step actions address discrete events at the step's end, proposing changes via G4ParticleChange to update the track. The G4Step class records the step's endpoints (PreStepPoint and PostStepPoint) and total changes, enabling precise navigation through the simulated volume. Event and run management in Geant4 organizes simulations into hierarchical structures, with representing a single interaction event that includes primary vertices, particles, trajectories, hits, and digits. Primary particles are generated by user-defined generators implementing G4VUserPrimaryGeneratorAction, which populate the G4Event with G4PrimaryVertex and G4PrimaryParticle objects specifying position, time, momentum, and polarization. The G4EventManager processes the event by converting primaries to G4Track objects and distributing them via the G4StackManager, which uses priority stacks (urgent, waiting, and postpone) to handle secondaries efficiently. Runs aggregate multiple events through G4Run, collecting statistics and enabling beam-on/beam-off phases, with the G4RunManager overseeing the overall simulation loop. Key processes in tracking include transportation, which propagates particles in straight lines between interactions, limited by geometry or other processes, and is implemented as a mandatory discrete process in all physics lists. Multiple scattering models account for angular deflections due to interactions, with the default model applied to charged particles across all energies for accurate path integration in dense media. Alternative models, such as Goudsmit-Saunderson or WentzelVI, can be selected via physics list extensions for specialized applications like thin targets or low-energy transport, ensuring the step length incorporates scattering effects without over-sampling.

Physics Modeling

Interaction Processes and Models

Geant4 simulates particle interactions through a modular system of processes and models, categorized primarily as discrete, continuous, and at-rest processes. Discrete processes, such as and , occur at specific points along the particle track and are invoked in the post-step phase of tracking. Continuous processes, like ionization energy loss, are approximated over the step length and handled in the along-step phase to compute cumulative effects efficiently. At-rest processes manage interactions when particles stop, such as certain decays. The electromagnetic (EM) physics in Geant4 is implemented via the Geant4 EM package, which provides a unified framework for simulating interactions of photons, electrons, positrons, and hadrons across a wide energy range. Key discrete EM processes include , , , , and gamma conversion, with models sampling final states based on detailed angular distributions and cross-sections derived from theoretical formulations. and electron-positron are also modeled discretely for high-energy events, while multiple uses approximations like the theory or Urban model to account for small-angle deflections along the step. For low-energy applications, specialized models extend coverage down to eV scales, incorporating atomic effects and shell corrections. Continuous energy loss in EM interactions, particularly , relies on the Bethe-Bloch formula for charged particles above a few MeV: -\frac{dE}{dx} = K \frac{Z^2}{\beta^2} \left[ \ln \left( \frac{2 m_e c^2 \beta^2 \gamma^2}{I} \right) - \beta^2 \right] where K = 0.307075 \, \mathrm{MeV \cdot cm^2 / mol} is a constant, Z is the particle charge, \beta = v/c, \gamma = 1/\sqrt{1-\beta^2}, m_e c^2 is the electron rest energy, and I is the excitation potential of the material. Geant4 implements this via the G4VEnergyLossProcess class, with parameterizations for low energies (below ~2 MeV) using Ziegler or ICRU tables to handle density effects and shell corrections, ensuring accurate stopping powers for ions and s. Hadronic and interactions in Geant4 employ a variety of parameterized and theory-driven models to simulate , , and capture across energies from thermal to cosmic-ray levels. Parameterized models, such as the Bertini intranuclear cascade, treat medium-energy hadron- collisions (up to ~10 GeV) as a sequence of binary collisions within the , incorporating pre-equilibrium and for de-excitation, based on classical solutions. For high energies above ~10 GeV, theory-driven approaches like the Quark-Gluon String Precompound (QGSP) model use string fragmentation and Regge phenomenology to describe quark-gluon interactions, followed by precompound and stages for remnant handling. These models integrate with nuclear data libraries for cross-sections and are invoked during discrete steps in tracking. Radioactive decay is handled by the dedicated G4RadioactiveDecay module, which simulates alpha, beta-plus, beta-minus, and processes for unstable isotopes, either in-flight or at rest. The module draws from the Evaluated Nuclear Structure Data File (ENSDF) for half-lives, branching ratios, and energy spectra, sampling decay channels probabilistically and generating daughter particles with recoil kinematics. Post-decay de-excitation, including gamma emission and atomic relaxation, interfaces with the general nuclear evaporation and atomic models to produce secondary particles like X-rays and electrons.

Physics Lists and Validation

In Geant4, physics lists serve as configurable collections of interaction processes and models that define the simulation of particle transport for specific applications. These lists are implemented through the base class G4VModularPhysicsList, which allows for a modular structure where users register physics modules—such as those for electromagnetic interactions, hadronic processes, or —each handling a subset of processes with associated models valid over defined energy ranges. Predefined reference physics lists, provided in the physics_list sub-library, offer ready-to-use configurations; for instance, FTFP_BERT combines the Fritiof model for high-energy hadronic interactions with the Bertini for intermediate energies, suitable for a broad range of high-energy physics simulations. Users can build custom lists by inheriting from G4VModularPhysicsList and selectively registering or replacing modules via methods like RegisterPhysics, ensuring tailored selections of processes (e.g., multiple or ) and models (e.g., for low-energy electrons) across energy thresholds, such as switching from detailed models below 10 GeV to parameterized high-energy approximations above. Validation of Geant4 physics lists and models is conducted through a comprehensive suite of regression tests and benchmarks, coordinated by the Physics Validation , to verify consistency across releases and against experimental data. The framework includes automated comparisons of simulation outputs from new versions against established baselines, covering core applications like thin-target interactions and responses, with statistical metrics such as χ² and Kolmogorov-Smirnov tests to detect deviations. Benchmarking routinely incorporates reference data from authoritative sources, including the National Institute of Standards and Technology (NIST) for electromagnetic processes like atomic relaxation and the Particle Data Group (PDG) for particle properties and cross-sections, ensuring models align with measured interaction probabilities. Accuracy is assessed through targeted comparisons for key interactions; for electron backscattering, Geant4 simulations using the multiple and electromagnetic models have been validated against experimental datasets spanning 100 to 20 MeV across elements from to , as confirmed by statistical analyses. Similarly, for hadron showers, validations against test-beam from prototypes like those of the and ATLAS calorimeters demonstrate that physics lists such as QGSP_BERT reproduce shower profiles and energy deposition consistent with observed for pion-induced events at energies up to several GeV. Ongoing improvements address specific gaps; in Geant4 version 11.x releases, enhancements to low-energy neutron transport (<20 MeV) include optional Probability Table sampling for the Unresolved Resonance Region, when benchmarked against evaluated libraries. This feature has been further validated in peer-reviewed studies as of 2025, showing alignment with reference codes. Independent certifications by major collaborations further affirm reliability; for example, the experiment at the has validated Geant4 physics lists using collision data from isolated charged particles, confirming model accuracies for hadronic and electromagnetic showers within experimental uncertainties for transverse momentum distributions up to 100 GeV. These efforts, integrated into tools like the Geant-val repository, support continuous refinement based on emerging experimental results.

Applications

High-Energy and Nuclear Physics

Geant4 serves as the core simulation toolkit for major high-energy physics experiments at CERN's (LHC), including ATLAS, CMS, and LHCb, where it models the passage of particles through complex detector geometries to simulate responses to collision events, background noise such as cosmic rays, and beam interactions with materials. In ATLAS and , Geant4 enables detailed full-detector simulations that replicate electromagnetic and hadronic showers, supporting the analysis of proton-proton collisions at energies up to 14 TeV. For LHCb, the Gauss simulation application integrates Geant4 within the Gaudi framework to handle event generation, tracking, and digitization for B-physics studies, facilitating the processing of millions of events to optimize trigger and reconstruction algorithms. In nuclear physics, Geant4 is applied to model and criticality in cores, providing simulations of neutron multiplication factors, decay constants, and distributions to assess safety and performance in systems. These capabilities extend to facilities, where tools like G4beamline, built on Geant4, simulate beamlines for high-intensity proton and muon beams, including optics, losses, and interactions with magnets and targets at sites such as and J-PARC. At J-PARC, Geant4-based simulations support experiments like for muon-to-electron conversion searches by modeling channels and beam tuning with position monitors. A prominent example is the full detector simulation for the at the LHC, where Geant4 replaced the older GEANT3 to accurately reproduce heavy-ion collision environments, including quark-gluon plasma signatures and particle multiplicities in the central barrel and muon spectrometer. In , Geant4 estimates backgrounds by simulating s and hadrons traversing the cavern and detector, critical for data quality assessment during non-colliding beam periods. This integration with frameworks like Gaudi in LHCb exemplifies Geant4's adaptability, allowing seamless embedding into experiment-specific software for event management. The impact of Geant4 in these domains lies in its role in pre-construction detector design and optimization, where simulations of billions of events have informed layout choices, material selections, and performance predictions for ATLAS, , and LHCb, reducing experimental risks and costs before hardware deployment. For instance, in studies, Geant4's benchmarks against experimental data have validated models for criticality safety, enabling reliable assessments with computational efficiencies surpassing traditional deterministic codes. Overall, these applications have processed millions of simulated events per study, establishing Geant4 as indispensable for advancing experimental precision in high-energy and .

Medical, Space, and Other Domains

Geant4 has found extensive application in , particularly for in radiotherapy treatments. The toolkit enables detailed simulations of particle interactions in patient tissues, supporting the verification of treatment planning systems and optimization of beam delivery. A prominent example is the TOPAS (Tool for Particle Simulation) wrapper, which extends Geant4 to facilitate advanced simulations of proton and ion therapy, including dose calculations for complex geometries and biological effects, thereby aiding medical physicists in clinical decision-making. In microdosimetry, Geant4-DNA provides specialized modeling of radiation track structures at the nanometer scale, simulating low-energy electron interactions in biological media such as liquid water and DNA. Released in 2007 as part of Geant4 version 9.1, this extension incorporates processes for electrons down to 0.025 eV, enabling accurate predictions of energy deposition in cellular environments for assessing radiobiological damage. For space applications, Geant4 is instrumental in simulating radiation shielding for satellites and human missions, accounting for galactic cosmic rays, solar particles, and trapped radiation in Earth's magnetosphere. Tools like MULASSIS and GRAS, built on Geant4, integrate into the European Space Agency's Space Environment Information System (SPENVIS) to perform shielding analyses, dose estimates, and single-event effect predictions for spacecraft components. Such simulations have been applied to missions including the James Webb Space Telescope, where Geant4 models cosmic ray interactions with focal plane arrays to forecast spurious signals and degradation risks. Beyond medical and space domains, Geant4 supports shielding assessments in plants by modeling and gamma transport through structures and materials. For instance, simulations for experiments like CONUS at the Brokdorf and Leibstadt plants use Geant4 (via the framework) to evaluate coherent elastic neutrino-nucleus and associated shielding efficacy against backgrounds. As of 2025, Geant4 continues to support the ongoing CONUS+ experiment at Leibstadt, contributing to background modeling for recent detections reported in 2025. In , the toolkit simulates transport from soil to indoor air, incorporating , , and progeny attachment to aerosols to estimate human exposure doses in dwellings. Geant4 also aids archaeological applications through , where simulations optimize irradiation setups and predict gamma emissions from artifacts to determine elemental compositions non-destructively. For studies, Geant4-based tools model beam filtration and activation products, as demonstrated in Moroccan reactor facilities for artifact examination. These interdisciplinary uses highlight Geant4's versatility in applied sciences, with extensions like Geant4-DNA exemplifying its adaptability for domain-specific physics.

Advanced Features and Extensions

Visualization, Persistency, and Interfaces

Geant4 provides a modular system designed to render detector , particle trajectories, hits, and other simulation outputs through an abstract interface that accommodates multiple graphics drivers. This system enables users to inspect simulation results interactively or generate high-quality outputs for analysis and publication. Built-in drivers include for immediate, photorealistic rendering with interactive controls such as zooming and rotation, as well as support for exporting to (EPS) formats. File-based drivers facilitate post-simulation processing; for instance, VRML outputs produce interactive 3D models viewable in web , while DAWN generates vector-based files optimized for precise, publication-ready diagrams without real-time interactivity. Additionally, the HepRep driver creates files that can be visualized using external tools like HepRApp, a Java-based that supports wireframe rendering of , tracks, and hits, allowing for detailed post-simulation exploration and export to various vector formats. Persistency in Geant4 ensures the storage and retrieval of , including , , and results, through standardized interfaces that integrate with established formats. The toolkit supports for saving and in files, enabling efficient I/O and reuse across applications, as demonstrated in extended examples like persistency/P01. HepMC interfaces capture truth information, such as particle trajectories and records, facilitating interoperability with other high-energy physics tools. XML-based formats, particularly GDML, allow for the persistent description and exchange of detector , while outputs like histograms and n-tuples can be stored in , XML, or . Core classes manage hit collections—aggregates of detector responses—and trajectory points, which are recorded during processing and persisted via these mechanisms to support downstream validation and reconstruction. Geant4's user interfaces emphasize flexibility, with a command-line that interprets built-in commands corresponding to toolkit categories, such as setup or run , executable directly in interactive sessions or via files. Macros enable scripted execution, allowing users to define sequences of commands for repeatable setups without recompiling the application. Language bindings extend accessibility; official support, enabled during compilation with the GEANT4_USE_PYTHON flag using pybind11, provides a mature interface for scripting simulations and integrating with Python ecosystems. Julia bindings are also available through the Geant4.jl package, providing high-performance integration with near-C++ speeds. The toolkit also integrates with analysis frameworks like for histogram and n-tuple management, and , an abstract interface that promotes among tools by standardizing data exchange in formats such as XML. Advanced features support both and workflows, including interactive sessions for command input and via adjustable verbosity levels that expose detailed tracking and event data. Batch mode, invoked by passing a macro file as an argument, accommodates large-scale runs by automating event generation without user intervention, ideal for high-throughput simulations on clusters. These capabilities, combined with and persistency, allow seamless transitions from exploratory to automated processing of extensive datasets.

Customization and User Extendibility

Geant4's design emphasizes extendibility through its object-oriented , allowing users to customize simulations without modifying the core toolkit code. Users derive custom classes from abstract base classes provided by Geant4, overriding virtual methods to implement application-specific behavior. This approach enables tailoring of , physics, particle generation, and event handling to meet diverse requirements in fields like high-energy physics and medical dosimetry. Mandatory user form the foundation of any Geant4 application, requiring implementation for basic setup. The G4VUserDetectorConstruction defines the detector geometry, materials, sensitive regions, and electromagnetic fields by overriding the Construct() method to build volumes and the ConstructSDandField() method for attaching sensitive detectors and fields; it is instantiated and with the run manager via SetUserInitialization(). Similarly, G4VUserPhysicsList specifies particles and physics processes, with users overriding ConstructParticle(), ConstructProcess(), and SetCuts() to select or modify processes, often deriving from G4VModularPhysicsList for modular customization; this is also with the run manager. The G4VUserPrimaryGeneratorAction handles primary particle generation by overriding GeneratePrimaries(G4Event*), allowing users to define event sources like beams or decays, and is through G4UserActionInitialization. These the has configurations before runs begin. Optional user actions provide hooks for intervening at various simulation stages, enhancing flexibility. Derived from classes like G4UserRunAction, users can initialize and analyze runs via BeginOfRunAction() and EndOfRunAction(); G4UserEventAction allows event-level processing through beginOfEventAction() and endOfEventAction(); G4UserTrackingAction controls track initiation and termination with PreUserTrackingAction() and PostUserTrackingAction(); G4UserSteppingAction processes each step end via UserSteppingAction(); and G4UserStackingAction manages track stacking with methods like ClassifyNewTrack() to prioritize or discard tracks. These actions are registered with the run manager using SetUserAction(), enabling dynamic modifications such as booking or event filtering. Sensitive detectors, derived from G4VSensitiveDetector, extend this by recording —snapshots of particle interactions in detector volumes—through the ProcessHits() method, which creates G4VHit objects storing data like energy deposition or position; they are assigned to logical volumes in the detector construction class. For deeper extendibility, users override virtual methods in Geant4 base classes to add custom functionality. Custom physics processes are implemented by deriving from G4VProcess, overriding methods like PostStepDoIt() for interaction handling and AlongStepGetPhysicalInteractionLength() for step limiting, then registering the process in the physics list; this allows domain-specific models, such as novel electromagnetic or hadronic interactions. New materials are added using the G4Material constructor, either from atomic elements via G4Element or as mixtures with specified fractions, enabling simulations of exotic or user-defined substances like custom alloys. Particles can be extended by deriving from G4ParticleDefinition, setting properties like mass, charge, and spin in the constructor, and integrating them into the particle table for use in physics lists. Domain-specific scoring, such as dose calculations in applications, leverages sensitive detectors or built-in tools like the scoring mesh. Users implement custom scorers in ProcessHits() to compute quantities like from energy deposition per unit mass, often aggregating hits in collections for post-processing; command-based scoring (/score/create/boxMesh etc.) provides a UI-driven alternative for defining meshes and quantities like track length or energy deposit. For parallelization, Geant4's multithreading , introduced in version 10.0, supports event-level concurrency by spawning worker threads; users ensure thread-safety in actions and initializations using or split-class patterns, with minimal changes required for migration. Examples include the advanced example, which scores dose in a phantom from radioactive sources. Best practices for involve adhering to Geant4's abstract interfaces to maintain portability and avoid direct modifications, as outlined in the application developers' . Users should test extensions against validation suites, leverage modular physics lists for incremental additions, and consult examples like or for integrating custom classes. This methodology ensures robust, verifiable extensions while preserving the toolkit's integrity.

References

  1. [1]
    Overview - Geant4 - CERN
    Geant4 is a toolkit to create simulations of the passage of particles or radiation through matter. Applications built on Geant4 can simulate any setup or ...
  2. [2]
    [PDF] Introduction to Geant4 - CERN
    Jun 14, 2025 · Geant4 is a free software package composed of tools which can be used to accurately simulate the passage of particles through matter.
  3. [3]
    [PDF] INTRODUCTION TO GEANT4 - CERN Document Server
    At the beginning of 1990's, GEANT3 faced on two major difficulties on its maintenance and further development. i) Because of too complex structure driven by ...Missing: origins early
  4. [4]
  5. [5]
    [PDF] The History of the Accept and Rise of Geant4
    Mar 23, 2023 · Our first paper was cited in more than 15K counts (2023). 15 years anniversary. Page 7. Worldwide recognition. 23/03/23. Takashi.Sasaki@kek.jp.
  6. [6]
    [PDF] GEANT 4 : an Object-Oriented toolkit for simulation in HEP
    Oct 18, 1995 · 19 RD44, Geant4 User Requirements Document", CERN, in preparation. 20 RD44, Geant4 Software Requirements Document", CERN, in preparation. 21 ...Missing: limitations | Show results with:limitations
  7. [7]
    [PDF] Geant4 History - CERN Indico
    ▫ The approval by DRDC/CERN to the P58 proposal was the birth of Geant4. ○ Geant4 is 10 years old this year! ▫ Through the phases of 'RD44' and 'Geant4 ...Missing: original | Show results with:original
  8. [8]
    [PDF] CERN/LHCC/2001-004 CERN/RRB-D 2001-3 Original
    Feb 22, 2001 · The initial period of validity of the Geant4 MoU was two years. It is subject to tacit renewal in two-year steps. The first period expired ...
  9. [9]
    Geant4—a simulation toolkit - ScienceDirect.com
    Geant4 is a toolkit for simulating particle passage through matter, including tracking, geometry, physics models, and hits, and is a versatile software package.<|control11|><|separator|>
  10. [10]
    Minutes of Geant4 Steering Board Meeting of 9 April 2009 - Geant4
    It was decided that the release of December 2009 will be a minor release, to be named Geant4 9.3. ... Geant4 to enable it to become multi-thread enabled.
  11. [11]
    Geant4 10.0 Release Notes
    Dec 6, 2013 · The more accurate inelastic cross section G4NeutronInelasticXS is used for the simulation of low-energy neutrons (i.e. below 20 MeV) in all ...
  12. [12]
    [PDF] ALICE experience with GEANT4
    Since its release in 1999, the LHC experiments have been evaluating Geant4 in view of adopting it as a replace- ment for the obsolescent Geant3 transport ...
  13. [13]
    Geant4: a modern and versatile toolkit for detector simulations
    Jun 16, 2022 · The much bigger datasets of the LHC experiments expected during the high-luminosity phase require larger (i.e. with more events) and better ( ...
  14. [14]
    Geant4 10.2 Release Notes
    Dec 4, 2015 · Multi-threading capability is not yet supported on Windows. 2. Supported CLHEP version. This release of Geant4 requires and has been verified ...
  15. [15]
    Old Geant4 releases
    Old Geant4 releases ; 11.2.1, 16 Feb 2024 ; 11.2.0, 08 Dec 2023 ; 11.2.0.beta, 30 Jun 2023 ; 11.1.3, 10 Nov 2023.Missing: milestones | Show results with:milestones
  16. [16]
    [PDF] GEANT4 11.3.p02 & 2025 planned developments - CERN Indico
    Oct 22, 2025 · – Provide portable GPU support in v2, using the surface model and further simplifying interfaces ✓. • Extensions/improvements to parallel ...
  17. [17]
    Collaboration - Geant4
    Since 1999 the production service, user support and development of Geant4 have been managed by the international Geant4 Collaboration.Missing: MoU 2000
  18. [18]
    Geant4 members and contributors - CERN
    Geant4 Collaboration membersPermalink ; John Allison, Manchester University, UK, STFC (Science and Technology Facilities Council), UK ; Katsuya Amako, KEK, Japan.Missing: institutions | Show results with:institutions
  19. [19]
    Oversight Board - Geant4 - CERN
    The Geant4 Oversight Board is formed by representatives from the major funding Agencies and Institutions that support Geant4.Missing: MoU | Show results with:MoU
  20. [20]
    Steering Board - Geant4
    The Geant4 Steering Board consists of the spokesperson and the deputy, persons with special roles (eg release manager), representatives for each working group.Missing: MoU 2006
  21. [21]
    Geant4 Scope of Application — IntroductionToGeant4 11.2 ... - CERN
    Geant4 is a free software package composed of tools which can be used to accurately simulate the passage of particles through matter.
  22. [22]
    Working groups - Geant4
    The Geant4 Collaboration is organized into the following 16 Working Groups, each responsible for a specific area of the project.Missing: structure | Show results with:structure
  23. [23]
    The Geant4 Software License
    Jun 28, 2006 · LicensePermalink. Version 1.0, 28 June 2006. Copyright (c) Copyright Holders of the Geant4 Collaboration, 1994-2006. See http://cern.ch/geant4 ...
  24. [24]
    [PDF] Transforming Geant4 for the Future - DOE Office of Science
    A majority of the 300 petabytes of disk space used by the LHC program today stores data generated by Geant4. Simulated and measured data must be used ...
  25. [25]
    Events - Geant4 - CERN
    Geant4 Advanced Course @ CERN, CERN, Geneva (Switzerland), 11/3/2025 - 11/7/2025; 2026 Geant4-DNA International Tutorial, Princess Srisavangavadhana Faculty ...
  26. [26]
    2026 Geant4-DNA International Tutorial
    2026 Geant4-DNA International Tutorial. 18 mars 2026, 10:00 → 20 mars 2026, 17:30 Asia/Bangkok. Princess Srisavangavadhana Faculty of Medicine, Bangkok, ...Missing: workshop | Show results with:workshop
  27. [27]
    [PDF] Seminario Geant4 INFN
    Sep 14, 1999 · from the eV to the PeV scale. Detectors, spacecrafts and ... Intermediate energy range, O(100 MeV) to O(5 GeV): intra-nuclear ...<|control11|><|separator|>
  28. [28]
    [PDF] Geant4 User's Guide for Toolkit Developers
    Scope of this Manual. The User's Guide for Toolkit Developers provides detailed information about the design of GEANT4 classes as well as.
  29. [29]
    [PDF] Basic structure of the Geant4 Simulation Toolkit
    Geant4 consists of 17 categories. – Independently developed and maintained by WG(s) responsible to each. (sub-)category. – Interfaces between categories are.
  30. [30]
    [PDF] Geant4 Geometry
    Contains all information of volume except position and rotation. – Shape and dimension (G4VSolid). – Material, sensitivity, visualization attributes. – Position ...
  31. [31]
    Material — Book For Application Developers 11.3 documentation
    Geant4 has three main classes designed to reflect this organization. Each of these classes has a table, which is a static data member, used to keep track of ...Missing: modeling | Show results with:modeling
  32. [32]
    How to Specify Particles - Geant4
    Particle Definition¶. Geant4 provides various types of particles for use in simulations: ordinary particles, such as electrons, protons, and gammas. resonant ...
  33. [33]
    Tracking — Book For Application Developers 11.3 documentation
    G4TrackingManager is an interface class which brokers transactions between the event, track and tracking categories.Missing: post- | Show results with:post-
  34. [34]
    Event — Book For Application Developers 11.3 documentation
    G4Event represents an event. An object of this class contains all inputs and outputs of the simulated event. This class object is constructed in G4RunManager ...Missing: G4Run | Show results with:G4Run
  35. [35]
    Physics List Guide — PhysicsListGuide 11.3 documentation - Geant4
    Only the Urban multiple scattering model is used for all charged particles and all energies. Also known as electromagnetic option 3, the detailed physics causes ...
  36. [36]
    Physics Processes — Book For Application Developers ... - Geant4
    Overview¶. Physics processes describe how particles interact with a material. Seven major categories of processes are provided by Geant4: electromagnetic,.
  37. [37]
    [PDF] PHYSICS OVERVIEW AND PROCESSES - Geant4 @ IN2P3
    □ Discrete process (has only PostStep physics). □ Continuous process (has only AlongStep physics). □ AtRest process (has only AtRest physics). 10. Page 11 ...
  38. [38]
  39. [39]
  40. [40]
    The intranuclear cascade (INC) model developed by Bertini - Geant4
    This cascade model is a re-engineered version of the INUCL code and includes the Bertini intra-nuclear cascade model with excitons, a pre-equilibrium model, a ...Missing: QGSP | Show results with:QGSP
  41. [41]
    The Radioactive Decay Module — Physics Reference Manual 11.2 ...
    G4RadioactiveDecay and associated classes are used to simulate the decay, either in-flight or at rest, of radioactive nuclei by α, β+, and β− emission and by ...
  42. [42]
  43. [43]
    Physics Validation Working Group - Geant4
    Systematic Physics Validation: Conduct regular validations of Geant4 development and public releases. Identify and report physics regressions or issues to the ...
  44. [44]
    None
    ### Summary of Geant4 Validation from the Document
  45. [45]
    Validation Test of Geant4 Simulation of Electron Backscattering - arXiv
    Feb 5, 2015 · The validation test covers the energy range between approximately 100 eV and 20 MeV, and concerns a wide set of target elements. Multiple and ...
  46. [46]
    [0808.0130] Geant4 validation with CMS calorimeters test-beam data
    Aug 1, 2008 · Validation of physics processes describing hadronic showers is a major concern in view of getting a proper description of jets and missing ...
  47. [47]
    Geant4 11.3 Release Notes
    Dec 6, 2024 · Geant4 11.3 Release Notes. December 6th, 2024. The code and binary libraries for the supported systems are available through our Source Code ...
  48. [48]
    Validation of Geant4 Physics Models Using Collision Data from the ...
    CMS experiment has designed a strategy to validate GEANT4 physics models using collision data from the Large Hadron Collider. Isolated charged particles are ...
  49. [49]
    [PDF] Geant4 electromagnetic physics for the LHC and other HEP ...
    Geant4 is the main simulation engine for ATLAS, CMS and LHCb experiments. It is also used in medical and astro-particle physics applications. The ...
  50. [50]
    High Energy Physics - geant4.web.cern.ch
    Use of Geant4 in the ATLAS Detector Simulation. ... Use of Geant4 in the CMS experiment. ... Use of Geant4 in the GAUSS simulation program of the LHCb experiment.
  51. [51]
    [PDF] Simulation Application for the LHCb Experiment
    We describe the LHCb detector simulation application (Gauss) based on the Geant4 toolkit. The application is built using the Gaudi software framework, ...
  52. [52]
    [PDF] Integration of Geant4 with Gaudi
    •Separation between data and Algorithms. •Data store-centred architectural style. •Separation between transient and persistent data.
  53. [53]
    Nuclear criticality calculations using Geant4 - ScienceDirect.com
    Dec 15, 2021 · ... GEANT4 can effectively analyze neutron transport in nuclear physics and engineering. This study aimed to illustrate the potential of GEANT4 ...
  54. [54]
    [PDF] G4beamline User's Guide - FNAL
    Feb 27, 2017 · G4beamline is a particle tracking and simulation program based on the Geant4 toolkit [1] that is specifically designed to easily simulate ...Missing: PARC | Show results with:PARC
  55. [55]
    [PDF] G4beamline Simulation for the COMET Solenoid Channel
    The COMET is an experiment to search for the process of muon to elec- tron conversion in a muonic atom, and is in its design phase to be carried out at J-PARC ...
  56. [56]
    ALICE experience with GEANT4 - CERN Document Server
    Since its release in 1999, the LHC experiments have been evaluating GEANT4 in view of adopting it as a replacement for the obsolescent GEANT3 transport ...
  57. [57]
    CMS Physics Analysis project - Geant4 - Twiki
    It is important that in the simulation studies of the LHC experiments as realistic as possible information about the detectors an the physics processes is used.Missing: integration | Show results with:integration
  58. [58]
    [PDF] Impact of detector simulation in particle physics collider experiments
    Geant4-based simulation is the norm these days in collider experiments, as comput- ing performance improved to a level that allows detailed modeling of detector ...
  59. [59]
    [PDF] Benchmarking GEANT4 and PHITS for 14.8-MeV neutron transport ...
    Jun 1, 2021 · GEANT4 toolkit is a well-established Monte Carlo simulation code, written in C++. 49. Its modifiability and extensibility make it widely used in ...
  60. [60]
    [PDF] Geant4 in a new role - Reactor Physics - CERN Indico
    It is a general neutron transport code, with far wider application than nuclear reactors. The latter is gaining popularity as a specialist nuclear reactor code.
  61. [61]
    TOPAS Tool for Particle Simulation
    TOPAS wraps and extends the Geant4 Simulation Toolkit to make advanced Monte Carlo simulation of all forms of radiotherapy easier to use for medical physicists.
  62. [62]
    The TOPAS Tool for Particle Simulation, a Monte Carlo ... - NIH
    TOPAS brings the sophisticated and reliable tools available in Geant4 into an experimentally validated and easy-to-use MC tool within reach of every medical ...
  63. [63]
    Review of the Geant4-DNA Simulation Toolkit for Radiobiological ...
    Dec 22, 2021 · Since 2007, Geant4 (release 9.1) is the only open access general-purpose radiation transport MC code offering, through its Geant4-DNA low-energy ...
  64. [64]
    Help: Geant4 Radiation Analysis for Space (GRAS) - SPENVIS
    Jun 6, 2025 · GRAS is a Geant4-based tool that provides a general space radiation analysis for 3D geometry models.
  65. [65]
    [PDF] MULASSIS - Monte Carlo Radiation Shielding Simulation for Space ...
    Abstract-- This paper describes the MULASSIS 1D radiation analysis tool, which is based on the Geant4 Monte Carlo radiation transport toolkit.
  66. [66]
    [PDF] Space Applications at NASA/GSFC Using Geant4
    Jan 21, 2003 · • Plans to develop Geant4 SEE simulations. – Incorporation of ... James Webb Space Telescope. • Goal is to predict Focal Plane Array ...
  67. [67]
    Geant4 Monte Carlo simulation of human exposure to indoor 222Rn ...
    In the framework of radon assessment, Geant4 can be used to simulate the transport of radon and its progeny within a room (dwelling or working place) ...
  68. [68]
    Geant4 Simulation for Radon Propagation in Soil
    This thesis reviews the complete process of radon propagation from soil to air and studies the effects of different environmental and geological parameters
  69. [69]
    GEANT4 used for neutron beam design of a neutron imaging facility ...
    May 13, 2025 · The GEANT4 simulations showed that the gamma and epithermal and fast neutron could be filtered using the bismuth (Bi) and sapphire (Al2O3) ...
  70. [70]
  71. [71]
    Persistency & Analysis - Geant4
    HepMC Interfaces The HepMC interface provides a way of storing the Monte Carlo Truth information coming from a Geant4 simulation, using the HepMC event record.
  72. [72]
    Built-in Commands — Book For Application Developers ... - Geant4
    Geant4 has various built-in user interface commands, each of which corresponds roughly to a Geant4 category. These commands can be used
  73. [73]
    Language Bindings — Book For Application Developers ... - Geant4
    Currently bindings to Python and Julia are available for Geant4. The Python bindings are more mature and are used by a larger number of users providing a very ...
  74. [74]
    [PDF] Geant4 (G)UI - Agenda INFN
    ▫ Geant4 provides several interfaces for various (G)UI: ▫ G4UIterminal: C ... ▫ G4UIGAG: Java based graphic UI (GUI). ▫ G4UIXm: Motif-based GUI ...
  75. [75]
    [PDF] Use of ROOT in Geant4 - CERN Indico
    Mar 14, 2013 · ROOT is used in Geant4 for testing and as a format for writing histograms and ntuples, demonstrated in examples like AnaEx02.
  76. [76]
    [PDF] Analysis with Geant4 and AIDA - Fermilab Conference Office
    Different analysis tools built using AIDA will be able to interoperate, for example by exchanging objects in a common storage format. (initially XML). ▫.
  77. [77]
    How to Execute a Program - Geant4
    Below is an example of the main program for an application which will run interactively, waiting for command lines entered from the keyboard.
  78. [78]
  79. [79]
    Mandatory User Actions and Initializations - Geant4
    Three user initialization class objects are registered with the run manager (Manage the run procedures) in the user's main() program, which takes ownership.
  80. [80]
  81. [81]
    Hits — Book For Application Developers 11.2 documentation - Geant4
    A hit is a snapshot of the physical interaction of a track in the sensitive region of a detector. In it you can store information associated with a G4Step ...
  82. [82]
    Physics Processes — Book For Application Developers ... - Geant4
    Each physics process must implement virtual methods of G4VProcess which ... One may create their own properties, for example, for use in custom processes.
  83. [83]
    Particles — Book For Toolkit Developers 11.2 documentation - Geant4
    Properties of particles​​ The G4ParticleDefinition class contains the properties which characterize individual particles, such as name, mass, charge, spin, and ...
  84. [84]
    How to Specify Materials in the Detector - Geant4
    The G4Material class is the one which is visible to the rest of the toolkit, and is used by the tracking, the geometry, and the physics. It contains all the ...Missing: modeling | Show results with:modeling
  85. [85]
    Advanced Example brachytherapy - Geant4
    May 2, 2022 · This example allows to calculate the energy deposition/dose in a water phantom produced by a brachytherapy source.
  86. [86]
    Parallelism in Geant4: multi-threading capabilities
    Geant4 Version 10.0 introduces parallelism at the event level: events are tracked concurrently by independent threads.
  87. [87]
    Basic Examples — Book For Application Developers 11.2 ... - Geant4
    Descriptions of the 5 basic examples are provided here along with links to source code documentation automatically generated with Doxygen.