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