Geant4 – a simulation toolkit

John Allison, The University of Manchester, UK.

A toolkit? More a building set. But you get the idea. You can build what you want, tailor it to your requirements, but you have to build it yourself. That makes it flexible and versatile; it is also fun.

Geant4 is a body of C++ code that models and simulates the interaction of particles with matter. The code is distributed freely under an open software license[1]. Documentation, source code, databases and, for some computer platforms, binary libraries can be downloaded from the Geant4 web site.[2] Being a toolkit means you have to learn how it works and find good ways of putting the pieces together and to help you do this, Geant4 comes with many examples and a web-based documentation system. Also, the Geant4 Collaboration organises tutorials and workshops from time to time. Two general reference papers[3] [4]and many specialist papers have been published. For a full list, see the web site2. Geant4 is being, indeed has been adopted in many areas – space, medicine, particle and nuclear physics – across the world.

Geant is an acronym for “Geometry and tracking” and is usually pronounced like the French géant, meaning giant. Its origins can be traced back to the 1970s. The original designs were in Fortran, culminating in GEANT3[5] in 1982, which is still being used but no longer being developed. In 1993, two independent studies, one at CERN[6] and one at KEK[7], considered the application of modern computing techniques, particularly object oriented programming, to this sort of simulation. This led to a joint development project under the CERN Research and Development Programme in 1994. It was thought important to make an early decision on programming language. The emerging language C++ was chosen and the first version of Geant4 was released in 1998. It now runs to almost a million lines of code.

Models and processes

The fact that it's fun doesn't mean it's not seriously good physics. Geant4 propagates particles – elementary particles and ions, both stable and unstable – through any geometrical arrangement of material. It therefore draws on particle physics, nuclear physics and atomic physics. With the cooperation of originating physicists around the world, many different models have been ported to Geant4. It is impossible in this short article to describe them in detail; the reader is referred to the Geant4 Physics Reference Manual[8]. One of the jobs of the application builder is to choose from these models to match the area of application. This is not always easy, but it is important that the user knows exactly what theories, models, parameterizations or approximations are being used and recognises that all models have their limitations. This is an explicit and deliberate policy of the Geant4 Collaboration; it is better to expose the physics models in a transparent way than to wrap them in a “black box”, however well they have been validated against experiment.

Many processes, of course, are well founded both theoretically and experimentally. For example, electromagnetic processes – bremsstrahlung, delta ray production, pair production, Compton scattering, photo-absorption and multiple scattering – are well understood, at least at intermediate energies. At low energies, below a few keV, atomic properties become important and modelling in this area is complex. Large datasets of atomic properties are needed. (This is an area of particular interest to medicine.) Also, for example, at ultra high energies, above 1 TeV, production of hadrons by muons has to be taken into account.

In the area of nuclear and hadronic interactions, cross-sections are well known but the exact distribution of secondaries is not. When nuclear de-excitation is important, large datasets of nuclear properties are used. Some models, the so-called parameter-driven models, subsume the details and, if this is all that is required, produce respectable distributions of deposited energy that match experiment over good ranges of incident energy and size and type of material. However, an increasingly large number of available models attempt to include the details; some are “data driven”, some theoretical. They include: Parameterization (LHEP), Kinetic Model (Binary Cascade), Bertini Model, Quark Gluon String (QGS), and FRITIOF (FTF) and the recently ported CHIPS[9].

In any case, all models are subject to a continuous programme of validation. In some cases, experiments have been designed specifically to test the models. The user must expect to get involved in this process if a serious assessment of the accuracy of simulation is needed.

The application builder has to code a mandatory class, called the physics list, that assigns appropriate processes to each particle or ion of interest. Each process can invoke one or more models, depending on the type of particle, energy, etc. Also, each process belongs to one or more of the following categories:

Each process randomly competes to be the one that happens. After something happens, the probabilities for happening in the future are updated so that proper distributions are observed. For a particle in flight, it is usually one of the post-step processes that limits the step length.  (Energy loss can also cause a step to be limited.) Sometimes a process handles all the sub-possibilities; sometimes the user has to specify many sub-processes. For a reasonably comprehensive job, the physics list can run to many hundreds of lines of code.

If this all sounds a little formidable, I am happy to reveal that for the beginner and for exploratory simulations, the code distribution includes many tried and tested physics lists appropriate to a good range of applications.

Geometry and materials

Geant4 provides many pre-programmed shapes that can be assembled in a hierarchy of volumes – more precisely, a directed acyclic graph of volumes. The hierarchy is used as a natural way of embedding volumes within volumes and as an efficient way of navigating through the geometry. However, efficiency comes primarily from an automated process of “voxelisation” whereby the space is divided into slices in three dimensions such that each slice contains only a few volumes. This reduces the computation time for determining the location of tracks within the geometrical model.

The application builder codes a mandatory class that defines the geometry. The basic unit is a “logical volume” that consists of a shape, material, visualisation attributes, etc., and can be marked as “sensitive” so that user code can be invoked when a particle passes through. Materials are defined by their isotope or element composition and density. Elements (with an average atomic weight) are adequate for high energy interactions, but it is better to specify the isotopes, particularly for low energy nuclear processes.

The logical volume can be placed in several ways:

Š      as a simple placement, any number of times, by specifying the spatial transformation with respect to the parent volume;

Š      as a “replicated placement”, whereby the parent is divided into uniform sections in length, radius or angle (depending on the parent shape);

Š      as a “parameterised placement”, which can represent any number of volumes of the same type but different dimensions and material, the parameters being computed on the fly as required, thus saving the storage space for parameters, a big saving if there are a large number of placements.

One can have placements within placements.  (Placements are also called “physical volumes”.)

Advanced features

Many other significant features are offered, and are mentioned only briefly here.


It is impossible to describe the full range of applications of Geant4 in this short article. Many examples and publications can be accessed from the Geant4 web page, and recent presentations at Geant4 workshops can be viewed by looking under “Past events”[11]. Here, I have picked out a few examples that might be of interest to nuclear physicists.


Figure 1 shows the simulation of a single 3.5 GeV/c proton in lead. The lead is an assembly making an approximate cylinder 3.3 m diameter, 3 m long. It models a real detector in which sample holes are instrumented for neutron detection. The proton impinges from the left into a blind hole that ends 1.2 m inside the assembly. Neutrons from the interaction are shown in grey lines that form a cloud almost completely contained within the lead. This exercises high energy hadronic interactions, electromagnetic interactions and low energy neutron transport and capture.


Figure 2 shows a cylindrical ionization chamber being developed at TRIUMF to measure the differential cross section of astrophysically relevant reactions covering a large angle region.


The TIGRESS spectrometer shown in Figure 3 is an array of High-Purity Germanium clover detectors for use in nuclear structure and nuclear astrophysics experiments at the ISAC-II[15] facility at TRIUMF. A Geant4 simulation has been an important part of its development, from the initial design of the Compton-suppression shields, to the development of new techniques for first-interaction position determination to reduce Doppler broadening effects.

Hadron Therapy

This is an expanding field worldwide. On the Geant4 side, it involves modelling the human body using up to several million parameterised placements. A typical example is the proton beam eye therapy facility in Sicily. Figure 4 shows a photograph of the real beam line and the Geant4 simulation side by side.

Figure 5 shows a simulation of the ionising dose from a proton beam to the brain of a patient in the planning for treatment at the F.H Burr Proton Therapy Center, Massachusetts General Hospital, Boston, USA.

Figure 6 shows[16] the tracks of primary carbon ions and secondary particles, including electrons, protons, neutrons, alpha-particles and heavier fragments, produced in the tissue-like medium (water). In heavy-ion cancer therapy, carbon ions penetrate human tissues and deposit the energy in a very non-uniform way; the maximum linear energy deposition is at the end of the track (Bragg peak). These simulations allow a precise determination of the angular and radial distribution of the deposited energy that is necessary for realistic estimations of the biological effects of the beam.


LISA is an ESA-NASA mission involving three spacecraft flying approximately 5 million kilometres apart in an equilateral triangle formation. Together, they act as a Michelson interferometer to measure the distortion of space caused by passing gravitational waves. Figure 7 shows a Geant4 model[17] of one of the spacecraft for a study of cosmic ray charging.

Object oriented programming and the future

C++ allowed us to program in an objected oriented way. This makes it straightforward, for example, to add new processes, shapes, graphics drivers, etc. The user community have often made contributions. Geant4 continues to be developed. We encourage your participation.

This paper is also an opportunity to advertise the next Geant4 Workshop to be held near Manchester in September[18]. The first part will offer users the opportunity to present their work and discuss their needs with Geant4 developers. It would be good to see you there.


I am grateful for the help in the following areas. For the short review of hadronic and nuclear models: Mikhail Kosov. For the applications and figures: Alex Howard (TARC); Götz Ruprecht (TACTIC); Michael Schumaker (TIGRESS); Pablo Cirrone (eye therapy); Christina Zacharatou Jarlskog and Harald Paganetti (brain dose); Igor Mishustin and Igor Pshenichnov (carbon ion therapy); Alex Howard and Henrique Araujo (LISA).


John Allison is an honorary research fellow at the University of Manchester School of Physics and Astronomy following retirement from the post of Senior Lecturer in 2004. He continues to contribute actively to Geant4 development.

[1] For the Geant4 licence, see

[2] The Geant4 web site:

[3] Geant4 - a simulation toolkit, S. Agostinelli et al., Nuclear Instruments and Methods A 506 (2003) 250-303.

[4] Geant4 Developments and Applications, J. Allison et al., IEEE Trans. Nucl. Sci. 53, Issue: 1, Part 2 (2006) 270-278

[5] GEANT3 Detector description and simulation tool, R. Brun et al. See

[6] CERN, The European Organisation for Nuclear Research, Geneva. See

[7] KEK, The High Energy Accelerator Research Organization, Tsukuba, Japan. See

[8] A web-based Physics Reference Manual under the Geant4 support page,

[9] CHIPS (CHiral Invariant Phase Space), a low energy 3D quark-parton (massless quarks) model.

[10] AIDA, Abstract Interface for Data Analysis.  See

[11] Past events:

[12] TARC, Transmutation by Adiabatic Resonance Crossing, an experimental study of the phenomenology of spallation neutrons in a large lead block, CERN PS-211, 1995. Figure and account from Alexander Howard, “Validation of Neutrons in Geant4 Using TARC Data - production, interaction and transportation”, IEEE Proceedings, Nuclear Science Symposium 2006.

[13] TACTIC (TRIUMF Annular Chamber for Tracking and Identification of Charged Particles), TRIUMF Laboratory, University of British Columbia, Vancouver, Canada.

[14] TIGRESS (TRIUMF-ISAC Gamma-Ray Escape Suppressed Spectrometer). See “TIGRESS highly-segmented high-purity germanium clover detector”, H.C. Scraggs et al., Nucl. Inst. Meth. Phys. Res. A 543 (2005) 431-440.

[15] ISAC-II (Isotope Separator and Accelerator at TRIUMF). See “Acceleration of radioactive ions”, R.E. Laxdal, Nucl. Inst. Meth. Phys. Res. B 204 (2003) 400-409.

[16] I.A. Pshenichnov, I.N. Mishustin, W. Greiner, Neutrons from fragmentation of light nuclei in tissue-like media: a study with GEANT4 toolkit, Phys. Med. Biol. 50, 5493-5507 (2005); Igor Pshenichnov, Igor Mishustin and Walter Greiner, Distributions of positron-emitting nuclei in proton and carbon-ion therapy studied with GEANT4, Phys. Med. Biol. 51, 6099-6112 (2006)

[17] LISA Cosmic Ray Charging, H.M.Araujo et al., Astroparticle Phys. 22 (2005) 451.

[18] 12th Geant4 Workshop, organised by the University of Manchester School of Physics and Astronomy, to be held at the Hebden Bridge Conference Centre, Hebden Bridge, West Yorkshire, 13th-19th September 2007. See Geant4 web page for details.