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