| 1 | <!-- ******************************************************** -->
|
|---|
| 2 | <!-- Docbook Version: For Toolkit Developers Guide -->
|
|---|
| 3 | <!-- ******************************************************** -->
|
|---|
| 4 |
|
|---|
| 5 | <!-- ******************** Top of Section ******************** -->
|
|---|
| 6 | <sect1 id="sect.DsgnFuncEvnt">
|
|---|
| 7 | <title>
|
|---|
| 8 | Event
|
|---|
| 9 | </title>
|
|---|
| 10 |
|
|---|
| 11 | <!-- ******************* Section (Level#2) ****************** -->
|
|---|
| 12 | <sect2 id="sect.sect.DsgnFuncEvnt.DsgPhlsp">
|
|---|
| 13 | <title>
|
|---|
| 14 | Design Philosophy
|
|---|
| 15 | </title>
|
|---|
| 16 |
|
|---|
| 17 | <para>
|
|---|
| 18 | In high energy physics the primary unit of an experimental run is an event.
|
|---|
| 19 | An event consists of a set of primary particles produced in an interaction,
|
|---|
| 20 | and a set of detector responses to these particles.
|
|---|
| 21 | </para>
|
|---|
| 22 |
|
|---|
| 23 | <para>
|
|---|
| 24 | In Geant4, objects of the G4Event class are the primary units of a
|
|---|
| 25 | simulation run. Before the event is processed, it contains primary
|
|---|
| 26 | vertices and primary particles produced by an external physics generator.
|
|---|
| 27 | After the event is processed, it may also contain hits, digitizations ,and
|
|---|
| 28 | optionally, trajectories generated by the simulation. The event category
|
|---|
| 29 | manages events and provides an abstract interface to external physics
|
|---|
| 30 | generators.
|
|---|
| 31 | </para>
|
|---|
| 32 |
|
|---|
| 33 | <para>
|
|---|
| 34 | G4Event and its content vertices and particles are independent of
|
|---|
| 35 | other classes. This isolation allows Geant4-based simulation programs
|
|---|
| 36 | to be independent of specific choices for physics generators and of specific
|
|---|
| 37 | solutions for storing the ``Monte Carlo truth''. G4Event avoids
|
|---|
| 38 | keeping any transient information which is not meaningful after event
|
|---|
| 39 | processing is complete. Thus the user can store objects of this class for
|
|---|
| 40 | processing further down the program chain. For performance reasons,
|
|---|
| 41 | G4Event and its content classes are not persistent. Instead the user
|
|---|
| 42 | must provide the transient-to-persistent conversion.
|
|---|
| 43 | </para>
|
|---|
| 44 |
|
|---|
| 45 | </sect2>
|
|---|
| 46 |
|
|---|
| 47 | <!-- ******************* Section (Level#2) ****************** -->
|
|---|
| 48 | <sect2 id="sect.sect.DsgnFuncEvnt.ClassDsg">
|
|---|
| 49 | <title>
|
|---|
| 50 | Class Design
|
|---|
| 51 | </title>
|
|---|
| 52 |
|
|---|
| 53 | <itemizedlist spacing="compact">
|
|---|
| 54 | <listitem><para>
|
|---|
| 55 | <emphasis role="bold">G4Event</emphasis> - This class represents an event.
|
|---|
| 56 | It is constructed and deleted by G4RunManager or its derived class.
|
|---|
| 57 | </para></listitem>
|
|---|
| 58 | <listitem><para>
|
|---|
| 59 | <emphasis role="bold">G4EventManager</emphasis> - This class controls an
|
|---|
| 60 | event. It must be a singleton and should be constructed by G4RunManager.
|
|---|
| 61 | </para></listitem>
|
|---|
| 62 | <listitem><para>
|
|---|
| 63 | <emphasis role="bold">G4VPrimaryGenerator</emphasis> - the abstract base
|
|---|
| 64 | class of all of primary generators. This class has only one pure virtual
|
|---|
| 65 | method, GeneratePrimaryVertex(), which takes a G4Event object, generates
|
|---|
| 66 | a primary vertex and associates primary particles with the vertex.
|
|---|
| 67 | </para></listitem>
|
|---|
| 68 | </itemizedlist>
|
|---|
| 69 |
|
|---|
| 70 | <para>
|
|---|
| 71 | Booch diagrams for classes related to the event and event generator classes
|
|---|
| 72 | are shown in <xref linkend="fig.DsgnFuncEvnt_1" /> and
|
|---|
| 73 | <xref linkend="fig.DsgnFuncEvnt_2" />.
|
|---|
| 74 |
|
|---|
| 75 | <figure id="fig.DsgnFuncEvnt_1">
|
|---|
| 76 | <title>
|
|---|
| 77 | Event
|
|---|
| 78 | </title>
|
|---|
| 79 | <mediaobject>
|
|---|
| 80 | <imageobject role="fo">
|
|---|
| 81 | <imagedata fileref="./AllResources/OOAnalysisDesign/Event/classDgmEventManager.jpg"
|
|---|
| 82 | format="JPG" contentwidth="10.0cm" align="center" />
|
|---|
| 83 | </imageobject>
|
|---|
| 84 | <imageobject role="html">
|
|---|
| 85 | <imagedata fileref="./AllResources/OOAnalysisDesign/Event/classDgmEventManager.jpg"
|
|---|
| 86 | format="JPG" contentwidth="120%" align="center" />
|
|---|
| 87 | </imageobject>
|
|---|
| 88 | </mediaobject>
|
|---|
| 89 | </figure>
|
|---|
| 90 |
|
|---|
| 91 | <figure id="fig.DsgnFuncEvnt_2">
|
|---|
| 92 | <title>
|
|---|
| 93 | Event Generator
|
|---|
| 94 | </title>
|
|---|
| 95 | <mediaobject>
|
|---|
| 96 | <imageobject role="fo">
|
|---|
| 97 | <imagedata fileref="./AllResources/OOAnalysisDesign/Event/classDgmEventGen.jpg"
|
|---|
| 98 | format="JPG" contentwidth="10.0cm" align="center" />
|
|---|
| 99 | </imageobject>
|
|---|
| 100 | <imageobject role="html">
|
|---|
| 101 | <imagedata fileref="./AllResources/OOAnalysisDesign/Event/classDgmEventGen.jpg"
|
|---|
| 102 | format="JPG" contentwidth="120%" align="center" />
|
|---|
| 103 | </imageobject>
|
|---|
| 104 | </mediaobject>
|
|---|
| 105 | </figure>
|
|---|
| 106 | </para>
|
|---|
| 107 |
|
|---|
| 108 | <!-- ******* Bridgehead ******* -->
|
|---|
| 109 | <bridgehead role="revisionHistory" renderas='sect4'>
|
|---|
| 110 | [Status of this chapter]
|
|---|
| 111 | </bridgehead>
|
|---|
| 112 |
|
|---|
| 113 | <para>
|
|---|
| 114 | <simplelist type="var">
|
|---|
| 115 | <member>
|
|---|
| 116 | 27.06.05 design philosophy section added (from Geant4 general paper) by
|
|---|
| 117 | D.H. Wright
|
|---|
| 118 | </member>
|
|---|
| 119 | <member>
|
|---|
| 120 | Dec. 2006 Conversion from latex to Docbook verson by K. Amako
|
|---|
| 121 | </member>
|
|---|
| 122 | </simplelist>
|
|---|
| 123 | </para>
|
|---|
| 124 |
|
|---|
| 125 | </sect2>
|
|---|
| 126 | </sect1>
|
|---|
| 127 |
|
|---|
| 128 |
|
|---|