[904] | 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"> |
---|
[921] | 108 | <imagedata fileref="./AllResources/OOAnalysisDesign/PhysicsProcesses/classDgmProcessMain.jpg" |
---|
| 109 | format="JPG" contentwidth="10.0cm" align="center" /> |
---|
[904] | 110 | </imageobject> |
---|
| 111 | <imageobject role="html"> |
---|
[921] | 112 | <imagedata fileref="./AllResources/OOAnalysisDesign/PhysicsProcesses/classDgmProcessMain.jpg" |
---|
[1208] | 113 | format="JPG" contentwidth="120%" align="center" /> |
---|
[904] | 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"> |
---|
[921] | 124 | <imagedata fileref="./AllResources/OOAnalysisDesign/PhysicsProcesses/classDgmProcessProcesses.jpg" |
---|
| 125 | format="JPG" contentwidth="10.0cm" align="center" /> |
---|
[904] | 126 | </imageobject> |
---|
| 127 | <imageobject role="html"> |
---|
[921] | 128 | <imagedata fileref="./AllResources/OOAnalysisDesign/PhysicsProcesses/classDgmProcessProcesses.jpg" |
---|
[1208] | 129 | format="JPG" contentwidth="120%" align="center" /> |
---|
[904] | 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> |
---|