1 | <!-- ******************************************************** --> |
---|
2 | <!-- Docbook Version: For Toolkit Developers Guide --> |
---|
3 | <!-- ******************************************************** --> |
---|
4 | |
---|
5 | <!-- ******************** Top of Section ******************** --> |
---|
6 | <sect1 id="sect.DsgnFuncPhysProc"> |
---|
7 | <title> |
---|
8 | Physics Processes |
---|
9 | </title> |
---|
10 | |
---|
11 | <!-- ******************* Section (Level#2) ****************** --> |
---|
12 | <sect2 id="sect.DsgnFuncPhysProc.DsgPhlsp"> |
---|
13 | <title> |
---|
14 | Design Philosophy |
---|
15 | </title> |
---|
16 | |
---|
17 | <para> |
---|
18 | The processes category contains the implementations of particle transportation |
---|
19 | and physical interactions. All physics process conform to the basic interface |
---|
20 | <literal>G4VProcess</literal>, but different approaches have been developed for |
---|
21 | the detailed design of each sub-category. |
---|
22 | </para> |
---|
23 | |
---|
24 | <para> |
---|
25 | For the decay sub-category, the decays of all long-lived, unstable particles |
---|
26 | are handled by a single process. This process gets the step length from the |
---|
27 | mean life of the particle. The generation of decay products requires a |
---|
28 | knowledge of the branching ratios and/or data distributions stored in the |
---|
29 | particle class. |
---|
30 | </para> |
---|
31 | |
---|
32 | <para> |
---|
33 | The electromagnetic sub-category is divided further into the following |
---|
34 | packages: |
---|
35 | |
---|
36 | <itemizedlist spacing="compact"> |
---|
37 | <listitem><para> |
---|
38 | <literal>standard</literal>: handling basic properties for electron, |
---|
39 | positron, photon and hadron interactions, |
---|
40 | </para></listitem> |
---|
41 | <listitem><para> |
---|
42 | <literal>low energy</literal>: providing alternative models extended down |
---|
43 | to lower energies than the standard package, |
---|
44 | </para></listitem> |
---|
45 | <listitem><para> |
---|
46 | <literal>muons</literal>: handling muon interactions, |
---|
47 | </para></listitem> |
---|
48 | <listitem><para> |
---|
49 | <literal>x-rays</literal>: providing specific code for x-ray physics, |
---|
50 | </para></listitem> |
---|
51 | <listitem><para> |
---|
52 | <literal>optical</literal>: providing specific code for optical photons, |
---|
53 | </para></listitem> |
---|
54 | <listitem><para> |
---|
55 | <literal>utils</literal>: collecting utility classes used by the above |
---|
56 | packages. |
---|
57 | </para></listitem> |
---|
58 | </itemizedlist> |
---|
59 | </para> |
---|
60 | |
---|
61 | <para> |
---|
62 | It provides the features of openness and extensibilty resulting from the use |
---|
63 | of object-oriented technology; alternative physics models, obeying the same |
---|
64 | process abstract interface, are often available for a given type of |
---|
65 | interaction. |
---|
66 | </para> |
---|
67 | |
---|
68 | <para> |
---|
69 | For hadronic physics, an additional set of implementation frameworks was |
---|
70 | added to accommodate the large number of possible modeling approaches. |
---|
71 | The top-level framework provides the basic interface to other Geant4 |
---|
72 | categories. It satisfies the most general use-case for hadronic shower |
---|
73 | simulations, namely to provide inclusive cross sections and final state |
---|
74 | generation. The frameworks are then refined for increasingly specific |
---|
75 | use-cases, building a hierarchy in which each level implements the |
---|
76 | interface specified by the level above it. A given hadronic process may |
---|
77 | be implemented at any one of these levels. For example, the process |
---|
78 | may be implemented by one of several models, and each of the models may |
---|
79 | in turn be implemented by several sub-models at the lower framework levels. |
---|
80 | </para> |
---|
81 | |
---|
82 | </sect2> |
---|
83 | |
---|
84 | <!-- ******************* Section (Level#2) ****************** --> |
---|
85 | <sect2 id="sect.DsgnFuncPhysProc.ClassDsg"> |
---|
86 | <title> |
---|
87 | Class Design |
---|
88 | </title> |
---|
89 | |
---|
90 | <!-- ******************* Section (Level#3) ****************** --> |
---|
91 | <sect3 id="sect.DsgnFuncPhysProc.ClassDsg.Gen"> |
---|
92 | <title> |
---|
93 | General |
---|
94 | </title> |
---|
95 | |
---|
96 | <para> |
---|
97 | The object-oriented design of the generic physics process G4VProcess and its |
---|
98 | relation to the process manager is shown in <xref linkend="fig.DsgnFuncPhysProc_1" />. |
---|
99 | <xref linkend="fig.DsgnFuncPhysProc_2" /> shows how specific physics processes are |
---|
100 | related to G4VProcess. |
---|
101 | |
---|
102 | <figure id="fig.DsgnFuncPhysProc_1"> |
---|
103 | <title> |
---|
104 | Management of Physics Processes |
---|
105 | </title> |
---|
106 | <mediaobject> |
---|
107 | <imageobject role="fo"> |
---|
108 | <imagedata fileref="./AllResources/OOAnalysisDesign/PhysicsProcesses/classDgmProcessMain.jpg" |
---|
109 | format="JPG" contentwidth="10.0cm" align="center" /> |
---|
110 | </imageobject> |
---|
111 | <imageobject role="html"> |
---|
112 | <imagedata fileref="./AllResources/OOAnalysisDesign/PhysicsProcesses/classDgmProcessMain.jpg" |
---|
113 | format="JPG" contentwidth="120%" align="center" /> |
---|
114 | </imageobject> |
---|
115 | </mediaobject> |
---|
116 | </figure> |
---|
117 | |
---|
118 | <figure id="fig.DsgnFuncPhysProc_2"> |
---|
119 | <title> |
---|
120 | Management of Physics Processes |
---|
121 | </title> |
---|
122 | <mediaobject> |
---|
123 | <imageobject role="fo"> |
---|
124 | <imagedata fileref="./AllResources/OOAnalysisDesign/PhysicsProcesses/classDgmProcessProcesses.jpg" |
---|
125 | format="JPG" contentwidth="10.0cm" align="center" /> |
---|
126 | </imageobject> |
---|
127 | <imageobject role="html"> |
---|
128 | <imagedata fileref="./AllResources/OOAnalysisDesign/PhysicsProcesses/classDgmProcessProcesses.jpg" |
---|
129 | format="JPG" contentwidth="120%" align="center" /> |
---|
130 | </imageobject> |
---|
131 | </mediaobject> |
---|
132 | </figure> |
---|
133 | </para> |
---|
134 | |
---|
135 | </sect3> |
---|
136 | |
---|
137 | <!-- ******* Bridgehead ******* --> |
---|
138 | <bridgehead role="revisionHistory" renderas='sect4'> |
---|
139 | [Status of this chapter] |
---|
140 | </bridgehead> |
---|
141 | |
---|
142 | <para> |
---|
143 | <simplelist type="var"> |
---|
144 | <member> |
---|
145 | 27.06.05 section on design philosophy added by D.H. Wright |
---|
146 | </member> |
---|
147 | <member> |
---|
148 | Dec. 2006 Conversion from latex to Docbook verson by K. Amako |
---|
149 | </member> |
---|
150 | </simplelist> |
---|
151 | </para> |
---|
152 | |
---|
153 | </sect2> |
---|
154 | </sect1> |
---|