1 | <!-- ******************************************************** --> |
---|
2 | <!-- --> |
---|
3 | <!-- [History] --> |
---|
4 | <!-- Converted to DocBook: Katsuya Amako, Nov-2006 --> |
---|
5 | <!-- --> |
---|
6 | <!-- ******************************************************** --> |
---|
7 | |
---|
8 | |
---|
9 | <!-- ******************* Section (Level#1) ****************** --> |
---|
10 | <sect1 id="sect.scope"> |
---|
11 | <title> |
---|
12 | Scope of this manual |
---|
13 | </title> |
---|
14 | |
---|
15 | <para> |
---|
16 | The User's Guide for Toolkit Developers provides detailed information about |
---|
17 | the design of Geant4 classes as well as the information required to extend |
---|
18 | the current functionality of the Geant4 toolkit. This manual is designed |
---|
19 | to: |
---|
20 | |
---|
21 | <itemizedlist spacing="compact"> |
---|
22 | <listitem><para> |
---|
23 | provide a repository of information for those who want to |
---|
24 | understand or refer to the detailed design of the toolkit, and |
---|
25 | </para></listitem> |
---|
26 | <listitem><para> |
---|
27 | provide details and procedures for extending the functionality |
---|
28 | of the toolkit so that experienced users may contribute code |
---|
29 | which is consistent with the overall design of Geant4. |
---|
30 | </para></listitem> |
---|
31 | </itemizedlist> |
---|
32 | </para> |
---|
33 | |
---|
34 | <para> |
---|
35 | This manual is intended for developers and experienced users of Geant4. |
---|
36 | It is assumed that the reader is already familiar with functionality of |
---|
37 | the Geant4 toolkit as explained in the ``User's Guide For Application |
---|
38 | Developers", and also has a working knowledge of programming using C++. |
---|
39 | A knowledge of object-oriented analysis and design will also be useful |
---|
40 | in understanding this manual. It is also useful to consult the |
---|
41 | ``Software Reference Manual'' which provides a list of Geant4 classes |
---|
42 | and their major methods. |
---|
43 | </para> |
---|
44 | |
---|
45 | <para> |
---|
46 | Detailed discussions of the physics included in Geant4 are provided in |
---|
47 | the ``Physics Reference Manual''. |
---|
48 | </para> |
---|
49 | </sect1> |
---|
50 | |
---|
51 | |
---|
52 | <!-- ******************* Section (Level#1) ****************** --> |
---|
53 | <sect1 id="sect.howToUseMan"> |
---|
54 | <title> |
---|
55 | How to use this manual |
---|
56 | </title> |
---|
57 | |
---|
58 | <para> |
---|
59 | <emphasis role="bold">Part I</emphasis>: |
---|
60 | to understand the goal of the software design of Geant4, it |
---|
61 | is useful to begin by reading the User Requirements Document referred to |
---|
62 | in the next section. |
---|
63 | </para> |
---|
64 | |
---|
65 | <para> |
---|
66 | <emphasis role="bold">Part II</emphasis>: |
---|
67 | ``Design and Function of the Geant4 Categories'' provides |
---|
68 | detailed information about the design of each class category and the classes |
---|
69 | in it. Before considering an extension of one of the toolkit categories, a |
---|
70 | detailed understanding of that category is required. |
---|
71 | </para> |
---|
72 | |
---|
73 | <para> |
---|
74 | <emphasis role="bold">Part III</emphasis>: |
---|
75 | ``Extending Toolkit Functionality'' explains in some detail |
---|
76 | how to extend the functionality of Geant4. Most of the class categories |
---|
77 | are covered and some, which are especially useful to most users, are |
---|
78 | covered in greater detail. |
---|
79 | </para> |
---|
80 | |
---|
81 | <para> |
---|
82 | It is not necessary to understand the entire manual before adding |
---|
83 | a new functionality. To add a new physics process, for example, only the |
---|
84 | following items must be read and understood: |
---|
85 | |
---|
86 | <itemizedlist spacing="compact"> |
---|
87 | <listitem><para> |
---|
88 | the design principle described in the ``Physics processes'' |
---|
89 | chapter of Part II </para></listitem> |
---|
90 | <listitem><para> |
---|
91 | techniques explained in the ``Physics processes'' chapter |
---|
92 | of Part III. |
---|
93 | </para></listitem> |
---|
94 | </itemizedlist> |
---|
95 | </para> |
---|
96 | |
---|
97 | </sect1> |
---|
98 | |
---|
99 | <!-- ******************* Section (Level#1) ****************** --> |
---|
100 | <sect1 id="sect.userReqDoc"> |
---|
101 | <title> |
---|
102 | User Requirements Document |
---|
103 | </title> |
---|
104 | |
---|
105 | <para> |
---|
106 | At the beginning of Geant4 development, a set of user requirements was |
---|
107 | collected in order to inform the object-oriented analysis and design of |
---|
108 | the toolkit. The User Requirements Document follows the PSS-05 software |
---|
109 | engineering standards and is available at |
---|
110 | </para> |
---|
111 | <para> |
---|
112 | <ulink url="http://cern.ch/geant4/OOAandD/URD.pdf"> |
---|
113 | http://cern.ch/geant4/OOAandD/URD.pdf . |
---|
114 | </ulink> |
---|
115 | </para> |
---|
116 | |
---|
117 | <para> |
---|
118 | This document provides a general description of the main capabilities and |
---|
119 | constraints of the toolkit. It also defines three types of users |
---|
120 | characterized by their level of interaction with the system. Specific |
---|
121 | requirements are also listed and classified. |
---|
122 | </para> |
---|
123 | |
---|
124 | <!-- ******* Bridgehead ******* --> |
---|
125 | <bridgehead role="revisionHistory" renderas='sect4'> |
---|
126 | [Status of this chapter] |
---|
127 | </bridgehead> |
---|
128 | |
---|
129 | <para> |
---|
130 | <simplelist type="var"> |
---|
131 | <member> |
---|
132 | 24.06.05 - re-organized and re-written by D.H. Wright |
---|
133 | </member> |
---|
134 | </simplelist> |
---|
135 | </para> |
---|
136 | |
---|
137 | |
---|
138 | </sect1> |
---|