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