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