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 \\ |
---|