Scope of this manual
The User's Guide for Toolkit Developers provides detailed information about
the design of Geant4 classes as well as the information required to extend
the current functionality of the Geant4 toolkit. This manual is designed
to:
provide a repository of information for those who want to
understand or refer to the detailed design of the toolkit, and
provide details and procedures for extending the functionality
of the toolkit so that experienced users may contribute code
which is consistent with the overall design of Geant4.
This manual is intended for developers and experienced users of Geant4.
It is assumed that the reader is already familiar with functionality of
the Geant4 toolkit as explained in the ``User's Guide For Application
Developers", and also has a working knowledge of programming using C++.
A knowledge of object-oriented analysis and design will also be useful
in understanding this manual. It is also useful to consult the
``Software Reference Manual'' which provides a list of Geant4 classes
and their major methods.
Detailed discussions of the physics included in Geant4 are provided in
the ``Physics Reference Manual''.
How to use this manual
Part I:
to understand the goal of the software design of Geant4, it
is useful to begin by reading the User Requirements Document referred to
in the next section.
Part II:
``Design and Function of the Geant4 Categories'' provides
detailed information about the design of each class category and the classes
in it. Before considering an extension of one of the toolkit categories, a
detailed understanding of that category is required.
Part III:
``Extending Toolkit Functionality'' explains in some detail
how to extend the functionality of Geant4. Most of the class categories
are covered and some, which are especially useful to most users, are
covered in greater detail.
It is not necessary to understand the entire manual before adding
a new functionality. To add a new physics process, for example, only the
following items must be read and understood:
the design principle described in the ``Physics processes''
chapter of Part II
techniques explained in the ``Physics processes'' chapter
of Part III.
User Requirements Document
At the beginning of Geant4 development, a set of user requirements was
collected in order to inform the object-oriented analysis and design of
the toolkit. The User Requirements Document follows the PSS-05 software
engineering standards and is available at
http://cern.ch/geant4/OOAandD/URD.pdf .
This document provides a general description of the main capabilities and
constraints of the toolkit. It also defines three types of users
characterized by their level of interaction with the system. Specific
requirements are also listed and classified.
[Status of this chapter]
24.06.05 - re-organized and re-written by D.H. Wright