| 1 | \chapter{Introduction}
|
|---|
| 2 |
|
|---|
| 3 | \section{Scope of this manual}
|
|---|
| 4 |
|
|---|
| 5 | The User's Guide for Toolkit Developers provides detailed information about
|
|---|
| 6 | the design of Geant4 classes as well as the information required to extend
|
|---|
| 7 | the current functionality of the Geant4 toolkit. This manual is designed
|
|---|
| 8 | to:
|
|---|
| 9 |
|
|---|
| 10 | \begin{itemize}
|
|---|
| 11 | \item provide a repository of information for those who want to
|
|---|
| 12 | understand or refer to the detailed design of the toolkit, and
|
|---|
| 13 |
|
|---|
| 14 | \item provide details and procedures for extending the functionality
|
|---|
| 15 | of the toolkit so that experienced users may contribute code
|
|---|
| 16 | which is consistent with the overall design of Geant4.
|
|---|
| 17 | \end{itemize}
|
|---|
| 18 |
|
|---|
| 19 | This manual is intended for developers and experienced users of Geant4.
|
|---|
| 20 | It is assumed that the reader is already familiar with functionality of
|
|---|
| 21 | the Geant4 toolkit as explained in the ``User's Guide For Application
|
|---|
| 22 | Developers", and also has a working knowledge of programming using C++.
|
|---|
| 23 | A knowledge of object-oriented analysis and design will also be useful
|
|---|
| 24 | in understanding this manual. It is also useful to consult the
|
|---|
| 25 | ``Software Reference Manual'' which provides a list of Geant4 classes
|
|---|
| 26 | and their major methods.
|
|---|
| 27 |
|
|---|
| 28 | Detailed discussions of the physics included in Geant4 are provided in
|
|---|
| 29 | the ``Physics Reference Manual''.
|
|---|
| 30 |
|
|---|
| 31 |
|
|---|
| 32 | \section{How to use this manual}
|
|---|
| 33 |
|
|---|
| 34 | {\bf Part I}: to understand the goal of the software design of Geant4, it
|
|---|
| 35 | is useful to begin by reading the User Requirements Document referred to
|
|---|
| 36 | in the next section. \\
|
|---|
| 37 |
|
|---|
| 38 | {\bf Part II}, ``Design and Function of the Geant4 Categories'' provides
|
|---|
| 39 | detailed information about the design of each class category and the classes
|
|---|
| 40 | in it. Before considering an extension of one of the toolkit categories, a
|
|---|
| 41 | detailed understanding of that category is required. \\
|
|---|
| 42 |
|
|---|
| 43 | {\bf Part III}, ``Extending Toolkit Functionality'' explains in some detail
|
|---|
| 44 | how to extend the functionality of Geant4. Most of the class categories
|
|---|
| 45 | are covered and some, which are especially useful to most users, are
|
|---|
| 46 | covered in greater detail. \\
|
|---|
| 47 |
|
|---|
| 48 | It is not necessary to understand the entire manual before adding
|
|---|
| 49 | a new functionality. To add a new physics process, for example, only the
|
|---|
| 50 | following items must be read and understood:
|
|---|
| 51 |
|
|---|
| 52 | \begin{itemize}
|
|---|
| 53 | \item the design principle described in the ``Physics processes''
|
|---|
| 54 | chapter of Part II
|
|---|
| 55 | \item techniques explained in the ``Physics processes'' chapter
|
|---|
| 56 | of Part III.
|
|---|
| 57 | \end{itemize}
|
|---|
| 58 |
|
|---|
| 59 |
|
|---|
| 60 | \section{User Requirements Document}
|
|---|
| 61 |
|
|---|
| 62 | At the beginning of Geant4 development, a set of user requirements was
|
|---|
| 63 | collected in order to inform the object-oriented analysis and design of
|
|---|
| 64 | the toolkit. The User Requirements Document follows the PSS-05 software
|
|---|
| 65 | engineering standards and is available at
|
|---|
| 66 | \begin{verbatim}
|
|---|
| 67 | http://cern.ch/geant4/OOAandD/URD.pdf .
|
|---|
| 68 | \end{verbatim}
|
|---|
| 69 | This document provides a general description of the main capabilities and
|
|---|
| 70 | constraints of the toolkit. It also defines three types of users
|
|---|
| 71 | characterized by their level of interaction with the system. Specific
|
|---|
| 72 | requirements are also listed and classified.
|
|---|
| 73 |
|
|---|
| 74 | \section{Status of this chapter}
|
|---|
| 75 |
|
|---|
| 76 | 24.06.05 - re-organized and re-written by D.H. Wright \\
|
|---|