| 1 | <!-- ******************************************************** -->
|
|---|
| 2 | <!-- Docbook Version: For Toolkit Developers Guide -->
|
|---|
| 3 | <!-- ******************************************************** -->
|
|---|
| 4 |
|
|---|
| 5 | <!-- ******************* Section (Level#1) ****************** -->
|
|---|
| 6 | <sect1 id="sect.DsgnFuncHitDig">
|
|---|
| 7 | <title>
|
|---|
| 8 | Hits and Digitization
|
|---|
| 9 | </title>
|
|---|
| 10 |
|
|---|
| 11 |
|
|---|
| 12 | <!-- ******************* Section (Level#2) ****************** -->
|
|---|
| 13 | <sect2 id="sect.DsgnFuncHitDig.DsgPhlsp">
|
|---|
| 14 | <title>
|
|---|
| 15 | Design Philosophy
|
|---|
| 16 | </title>
|
|---|
| 17 |
|
|---|
| 18 | <para>
|
|---|
| 19 | In Geant4 a <emphasis role="italic">hit</emphasis> is a snapshot of a
|
|---|
| 20 | physical interaction or an accumulation of interactions of a track or
|
|---|
| 21 | tracks in a ``sensitive'' detector component. A digitization, or
|
|---|
| 22 | <emphasis role="italic">digit</emphasis>, represents a detector output,
|
|---|
| 23 | such as an ADC/TDC count or a trigger signal.
|
|---|
| 24 | A <emphasis role="italic">digit</emphasis> is created from one or
|
|---|
| 25 | more hits and/or other <emphasis role="italic">digits</emphasis>.
|
|---|
| 26 | </para>
|
|---|
| 27 |
|
|---|
| 28 | <para>
|
|---|
| 29 | Given the wide variety of Geant4 applications, ways of describing detector
|
|---|
| 30 | sensitivity and the quantities to be stored in the
|
|---|
| 31 | <emphasis role="italic">hits</emphasis> and
|
|---|
| 32 | <emphasis role="italic">digits</emphasis> vary greatly. This category
|
|---|
| 33 | therefore provides only abstract classes for both detector sensitivity and
|
|---|
| 34 | <emphasis role="italic">hits</emphasis>/<emphasis role="italic">digits</emphasis>.
|
|---|
| 35 | It also provides tools for organizing the
|
|---|
| 36 | <emphasis role="italic">hits</emphasis>/<emphasis role="italic">digits</emphasis>
|
|---|
| 37 | into collections.
|
|---|
| 38 | </para>
|
|---|
| 39 |
|
|---|
| 40 | </sect2>
|
|---|
| 41 |
|
|---|
| 42 | <!-- ******************* Section (Level#2) ****************** -->
|
|---|
| 43 | <sect2 id="sect.DsgnFuncHitDig.ClassDsg">
|
|---|
| 44 | <title>
|
|---|
| 45 | Class Design
|
|---|
| 46 | </title>
|
|---|
| 47 |
|
|---|
| 48 | <para>
|
|---|
| 49 | <itemizedlist spacing="compact">
|
|---|
| 50 | <listitem><para>
|
|---|
| 51 | <emphasis role="bold">G4SensitiveDetectorManager</emphasis> -
|
|---|
| 52 | a list of G4SensitiveDetectors.
|
|---|
| 53 | </para></listitem>
|
|---|
| 54 | <listitem><para>
|
|---|
| 55 | <emphasis role="bold">G4HitsStructure</emphasis> -
|
|---|
| 56 | a tree-like structure of G4Hit collections. Each branch represents the
|
|---|
| 57 | hits in given sub-detector. For example, the first level of branches
|
|---|
| 58 | may consist of a tracker, ECAL, and HCAL, while the second level, in HCAL,
|
|---|
| 59 | consists of the barrel and endcaps. Finally the barrel may have phi-slices,
|
|---|
| 60 | Z-slices, etc.
|
|---|
| 61 | </para></listitem>
|
|---|
| 62 | <listitem><para>
|
|---|
| 63 | <emphasis role="bold">G4VSensitiveDetector</emphasis> -
|
|---|
| 64 | an abstract class of all of sensitive volumes.
|
|---|
| 65 | </para></listitem>
|
|---|
| 66 | <listitem><para>
|
|---|
| 67 | <emphasis role="bold">G4HitsCollection</emphasis> -
|
|---|
| 68 | a collection of hits. Instantiates an RWCollection class.
|
|---|
| 69 | </para></listitem>
|
|---|
| 70 | <listitem><para>
|
|---|
| 71 | <emphasis role="bold">G4VHit</emphasis> -
|
|---|
| 72 | this class has all the information about a particular hit caused by a
|
|---|
| 73 | single step.
|
|---|
| 74 | </para></listitem>
|
|---|
| 75 | <listitem><para>
|
|---|
| 76 | <emphasis role="bold">G4VDigitizer</emphasis> -
|
|---|
| 77 | the class of objects which transform the hits deposited by particles into
|
|---|
| 78 | digitizations.
|
|---|
| 79 | </para></listitem>
|
|---|
| 80 | <listitem><para>
|
|---|
| 81 | <emphasis role="bold">G4DigitizerManager</emphasis> -
|
|---|
| 82 | the (single) object dispatching common messages to individual digitizers.
|
|---|
| 83 | </para></listitem>
|
|---|
| 84 | <listitem><para>
|
|---|
| 85 | <emphasis role="bold">G4VDigi</emphasis> -
|
|---|
| 86 | an abstract (base) class for all G4 digitizations. This could be data as
|
|---|
| 87 | simple as a singe byte, or as complex as an Ntuple.
|
|---|
| 88 | </para></listitem>
|
|---|
| 89 | <listitem><para>
|
|---|
| 90 | <emphasis role="bold">G4DigiStructure</emphasis> -
|
|---|
| 91 | digitizations are organized as a structure, which could be anything
|
|---|
| 92 | between a single value and an Ntuple.
|
|---|
| 93 | </para></listitem>
|
|---|
| 94 | </itemizedlist>
|
|---|
| 95 | </para>
|
|---|
| 96 |
|
|---|
| 97 | <para>
|
|---|
| 98 | The object-oriented design of the 'hit' related classes is shown in the
|
|---|
| 99 | following class diagrams. The diagrams are described in the Booch notation.
|
|---|
| 100 | <xref linkend="fig.DsgnFuncHitDig_1" /> shows the general management of hit classes.
|
|---|
| 101 | <xref linkend="fig.DsgnFuncHitDig_2" /> shows the OO design of user-related hit classes.
|
|---|
| 102 | <xref linkend="fig.DsgnFuncHitDig_3" /> shows the OO design of the readout geometry.
|
|---|
| 103 |
|
|---|
| 104 | <figure id="fig.DsgnFuncHitDig_1">
|
|---|
| 105 | <title>
|
|---|
| 106 | Overview of hit classes management
|
|---|
| 107 | </title>
|
|---|
| 108 | <mediaobject>
|
|---|
| 109 | <imageobject role="fo">
|
|---|
| 110 | <imagedata
|
|---|
| 111 | fileref="./AllResources/OOAnalysisDesign/Hit/classDgmHitMain.jpg" format="JPG" contentwidth="10.0cm" align="center" />
|
|---|
| 112 | </imageobject>
|
|---|
| 113 | <imageobject role="html">
|
|---|
| 114 | <imagedata fileref="./AllResources/OOAnalysisDesign/Hit/classDgmHitMain.jpg" format="JPG" align="center" />
|
|---|
| 115 | </imageobject>
|
|---|
| 116 | </mediaobject>
|
|---|
| 117 | </figure>
|
|---|
| 118 |
|
|---|
| 119 |
|
|---|
| 120 | <figure id="fig.DsgnFuncHitDig_2">
|
|---|
| 121 | <title>
|
|---|
| 122 | User hit classes
|
|---|
| 123 | </title>
|
|---|
| 124 | <mediaobject>
|
|---|
| 125 | <imageobject role="fo">
|
|---|
| 126 | <imagedata
|
|---|
| 127 | fileref="./AllResources/OOAnalysisDesign/Hit/classDgmHitUser.jpg" format="JPG"
|
|---|
| 128 | contentwidth="10.0cm" align="center" />
|
|---|
| 129 | </imageobject>
|
|---|
| 130 | <imageobject role="html">
|
|---|
| 131 | <imagedata fileref="./AllResources/OOAnalysisDesign/Hit/classDgmHitUser.jpg" format="JPG" align="center" />
|
|---|
| 132 | </imageobject>
|
|---|
| 133 | </mediaobject>
|
|---|
| 134 | </figure>
|
|---|
| 135 |
|
|---|
| 136 | <figure id="fig.DsgnFuncHitDig_3">
|
|---|
| 137 | <title>
|
|---|
| 138 | Readout geometry
|
|---|
| 139 | </title>
|
|---|
| 140 | <mediaobject>
|
|---|
| 141 | <imageobject role="fo">
|
|---|
| 142 | <imagedata fileref="./AllResources/OOAnalysisDesign/Hit/classDgmReadoutGeom.jpg" format="JPG" contentwidth="10.0cm" align="center" />
|
|---|
| 143 | </imageobject>
|
|---|
| 144 | <imageobject role="html">
|
|---|
| 145 | <imagedata fileref="./AllResources/OOAnalysisDesign/Hit/classDgmReadoutGeom.jpg" format="JPG" align="center" />
|
|---|
| 146 | </imageobject>
|
|---|
| 147 | </mediaobject>
|
|---|
| 148 | </figure>
|
|---|
| 149 | </para>
|
|---|
| 150 |
|
|---|
| 151 | <!-- ******* Bridgehead ******* -->
|
|---|
| 152 | <bridgehead role="revisionHistory" renderas="sect4">
|
|---|
| 153 | [Status of this chapter]
|
|---|
| 154 | </bridgehead>
|
|---|
| 155 | <para>
|
|---|
| 156 | <simplelist type="var">
|
|---|
| 157 | <member>
|
|---|
| 158 | 27.06.05 section on design philosophy added (from Geant4 general paper) by
|
|---|
| 159 | D.H. Wright
|
|---|
| 160 | </member>
|
|---|
| 161 | <member>
|
|---|
| 162 | Dec. 2006 Conversion from latex to Docbook verson by K. Amako
|
|---|
| 163 | </member>
|
|---|
| 164 | </simplelist>
|
|---|
| 165 | </para>
|
|---|
| 166 |
|
|---|
| 167 |
|
|---|
| 168 |
|
|---|
| 169 | </sect2>
|
|---|
| 170 | </sect1> |
|---|