Intro To Geant4
Intro To Geant4
Geant4 Collaboration
Introduction to Geant4
by Geant4 Collaboration Version: geant4 9.5.0 Publication date 2nd December, 2011
Table of Contents
1. 2. 3. 4. 5. 6. Geant4 Scope of Application ....................................................................................................... History of Geant4 ..................................................................................................................... Overview of Geant4 Functionality ................................................................................................ Geant4 User Support ................................................................................................................. Software Knowledge Required to Use the Geant4 Toolkit ................................................................. Computing Environment Required by the Geant4 Toolkit ................................................................. 1 2 3 5 6 7
iii
Users may construct stand-alone applications or applications built upon another object-oriented framework. In either case the toolkit will support them from the initial problem definition to the production of results and graphics for publication. To this end, the toolkit includes: user interfaces, built-in steering routines, and command interpreters which operate at every level of the simulation. At the heart of Geant4 is an abundant set of physics models to handle the interactions of particles with matter across a very wide energy range. Data and expertise have been drawn from many sources around the world and in this respect, Geant4 acts as a repository which incorporates a large part of all that is known about particle interactions. Geant4 is written in C++ and exploits advanced software-engineering techniques and object-oriented technology to achieve transparency. For example, the way in which cross sections are input or computed is separated from the way in which they are used or accessed. The user can overload both of these features. Similarly, the computation of the final state can be divided into alternative or complementary models, according to the energy range, the particle type, and the material. To build a specific application the user-physicist chooses from among these options and implements code in user action classes supplied by the toolkit. A serious problem with previous simulation codes was the difficulty of adding new or variant physics models; development was difficult due to the increased size, complexity and interdependency of the procedure-based code. In contrast, object-oriented methods help manage complexity and limit dependencies by defining a uniform interface and common organizational principles for all physics models. Within this framework the functionality of models can be more easily recognized and understood, and the creation and addition of new models is a well-defined procedure that entails little or no modification to the existing code.
processes category, which contains implementations of models of physical interactions: electromagnetic interactions of leptons, photons, hadrons and ions, and hadronic interactions. All processes are invoked by the tracking category, which manages their contribution to the evolution of a track's state and provides information in sensitive volumes for hits and digitization. Above these the event category manages events in terms of their tracks and the run category manages collections of events that share a common beam and detector implementation. A readout category allows the handling of pile-up. Finally capabilities that use all of these categories and connect to facilities outside the toolkit through abstract interfaces, provide visualization, persistency and user interface capabilities.