Event
Design Philosophy
In high energy physics the primary unit of an experimental run is an event.
An event consists of a set of primary particles produced in an interaction,
and a set of detector responses to these particles.
In Geant4, objects of the G4Event class are the primary units of a
simulation run. Before the event is processed, it contains primary
vertices and primary particles produced by an external physics generator.
After the event is processed, it may also contain hits, digitizations ,and
optionally, trajectories generated by the simulation. The event category
manages events and provides an abstract interface to external physics
generators.
G4Event and its content vertices and particles are independent of
other classes. This isolation allows Geant4-based simulation programs
to be independent of specific choices for physics generators and of specific
solutions for storing the ``Monte Carlo truth''. G4Event avoids
keeping any transient information which is not meaningful after event
processing is complete. Thus the user can store objects of this class for
processing further down the program chain. For performance reasons,
G4Event and its content classes are not persistent. Instead the user
must provide the transient-to-persistent conversion.
Class Design
G4Event - This class represents an event.
It is constructed and deleted by G4RunManager or its derived class.
G4EventManager - This class controls an
event. It must be a singleton and should be constructed by G4RunManager.
G4VPrimaryGenerator - the abstract base
class of all of primary generators. This class has only one pure virtual
method, GeneratePrimaryVertex(), which takes a G4Event object, generates
a primary vertex and associates primary particles with the vertex.
Booch diagrams for classes related to the event and event generator classes
are shown in and
.
[Status of this chapter]
27.06.05 design philosophy section added (from Geant4 general paper) by
D.H. Wright
Dec. 2006 Conversion from latex to Docbook verson by K. Amako