| 1 | \chapter{Event}
|
|---|
| 2 |
|
|---|
| 3 | \section{Design Philosophy}
|
|---|
| 4 |
|
|---|
| 5 | In high energy physics the primary unit of an experimental run is an event.
|
|---|
| 6 | An event consists of a set of primary particles produced in an interaction,
|
|---|
| 7 | and a set of detector responses to these particles.
|
|---|
| 8 |
|
|---|
| 9 | In {\sc Geant4}, objects of the {\it G4Event} class are the primary units of
|
|---|
| 10 | a simulation run. Before the event is processed, it contains primary
|
|---|
| 11 | vertices and primary particles produced by an external physics generator.
|
|---|
| 12 | After the event is processed, it may also contain hits, digitizations ,and
|
|---|
| 13 | optionally, trajectories generated by the simulation. The event category
|
|---|
| 14 | manages events and provides an abstract interface to external physics
|
|---|
| 15 | generators.
|
|---|
| 16 |
|
|---|
| 17 | {\it G4Event} and its content vertices and particles are independent of
|
|---|
| 18 | other classes. This isolation allows {\sc Geant4}-based simulation programs
|
|---|
| 19 | to be independent of specific choices for physics generators and of specific
|
|---|
| 20 | solutions for storing the ``Monte Carlo truth''. {\it G4Event} avoids
|
|---|
| 21 | keeping any transient information which is not meaningful after event
|
|---|
| 22 | processing is complete. Thus the user can store objects of this class for
|
|---|
| 23 | processing further down the program chain. For performance reasons,
|
|---|
| 24 | {\it G4Event} and its content classes are not persistent. Instead the user
|
|---|
| 25 | must provide the transient-to-persistent conversion.
|
|---|
| 26 |
|
|---|
| 27 | \section{Class Design}
|
|---|
| 28 |
|
|---|
| 29 | \begin{itemize}
|
|---|
| 30 |
|
|---|
| 31 | \item {\bf G4Event} - This class represents an event. It is constructed and
|
|---|
| 32 | deleted by G4RunManager or its derived class.
|
|---|
| 33 |
|
|---|
| 34 | \item {\bf G4EventManager} - This class controls an event. It must be a
|
|---|
| 35 | singleton and should be constructed by G4RunManager.
|
|---|
| 36 |
|
|---|
| 37 | \item {\bf G4VPrimaryGenerator} - the abstract base class of all of primary
|
|---|
| 38 | generators. This class has only one pure virtual method,
|
|---|
| 39 | GeneratePrimaryVertex(), which takes a G4Event object, generates a
|
|---|
| 40 | primary vertex and associates primary particles with the vertex.
|
|---|
| 41 |
|
|---|
| 42 | \end{itemize}
|
|---|
| 43 |
|
|---|
| 44 | Booch diagrams for classes related to the event and event generator classes
|
|---|
| 45 | are shown in Figs. \ref{figure:event-1} and \ref{figure:eventGen-1},
|
|---|
| 46 | respectively.
|
|---|
| 47 |
|
|---|
| 48 | \vspace{10pt}
|
|---|
| 49 | \begin{figure}
|
|---|
| 50 | \begin{center}
|
|---|
| 51 | \includegraphics[angle=0,scale=0.65]{OOAnalysisDesign/Event/classDgmEventManager.eps}
|
|---|
| 52 | \caption{Event}
|
|---|
| 53 | \label{figure:event-1}
|
|---|
| 54 | \end{center}
|
|---|
| 55 | \end{figure}
|
|---|
| 56 |
|
|---|
| 57 | \vspace{10pt}
|
|---|
| 58 | \begin{figure}
|
|---|
| 59 | \begin{center}
|
|---|
| 60 | \includegraphics[angle=0,scale=0.65]{OOAnalysisDesign/EventGenerator/classDgmEventGen.eps}
|
|---|
| 61 | \caption{Event Generator}
|
|---|
| 62 | \label{figure:eventGen-1}
|
|---|
| 63 | \end{center}
|
|---|
| 64 | \end{figure}
|
|---|
| 65 |
|
|---|
| 66 |
|
|---|
| 67 | \section{Status of this chapter}
|
|---|
| 68 |
|
|---|
| 69 | 27.06.05 design philosophy section added (from Geant4 general paper) by
|
|---|
| 70 | D.H. Wright \\
|
|---|
| 71 |
|
|---|