Next: Termination
Up: BASE001 Introduction to
Previous: Initialisation
The processing phase is triggered by a call to the subroutine GRUN which,
for each event to be processed, gives control to the subroutines:
- GTRIGI
- initialise event processing and create the
event header bank JHEAD;
- GTRIG
- process one event;
- GTRIGC
- clean up the portion of memory used by the event
and check that enough time is left for the next event ( [BASE200]).
GTRIG calls the following user routines:
- GUKINE
-
generates or reads ( [IOPA])
the kinematics of the event and stores it
in the data structures JVERTX and JKINE ( [KINE]);
- GUTREV
-
calling GTREVE which performs the following operations for each
vertex in turn:
- moves all the particles attached to the vertex from the permanent
stack JKINE to the temporary stack JSTAK;
- controls the propagation of each particle though the setup by
calling GUTRAK/GTRACK ( [TRAK]);
each particle is tracked in turn and when a sensitive detector
is traversed, the user may store
any useful information in the data structure JHITS
via the routines described in the section [HITS];
The JSTAK data structure is a LIFO (Last In -- First Out) stack.
Secondary products generated by the current particle transported
are processed before proceeding to the next particle.
It is very important to understand that by default GEANT does not
follow the secondary particles generated. It is the responsibility of the
user to indicate which particles should be followed via the
routines GSKING/GSKPHO.
The data structure JXYZ, containing the
coordinates of space points along the tracks,
can be filled by the user during tracking ( [TRAK]).
- GUDIGI
-
simulate the detector responses for the event, using
the information recorded in the data
structure JHITS during particle transport, and store
the results in the data structure JDIGI ( [HITS]);
- GUOUT
-
perform all the processing at the end of the event and
output the relevant data structures ( [IOPA]).
Other routines called during the tracking phase triggered
by GTREVE should be mentioned for completeness:
-
hadronic interactions can be simulated via either the
GHEISHA [] or
FLUKA [,,,,]
hadronic shower generator.
In the
subroutines GUPHAD and GUHADR ( [TRAK]) the user
may select the hadronic shower generation program to be used.
The default for GEANT is GHEISHA;
- after each tracking step along the
track, control is
given to the subroutine GUSTEP. From the information
available in labelled common blocks the user
is able to take the appropriate action, such as
storing a hit or transferring a secondary product either in the
stack JSTAK or in the event structure JVERTX/JKINE via
the subroutine
GSKING. In the subroutine GSSTAK,
called by GSKING, a user routine GUSKIP is called which permits
skipping any unwanted track before entering it in the stack for subsequent
transport;
- the subroutine
GUSWIM is called by the the routines which transport charged particles
when in a magnetic field; it selects and calls the appropriate routine to
transport the particle. Although formally a user routine, the default version
provided by GEANT is usually appropriate for most situations.
The magnetic field, unless it is constant along the Z axis,
has to be described via the subroutine GUFLD.
Next: Termination
Up: BASE001 Introduction to
Previous: Initialisation
Janne Saarela
Mon Apr 3 12:46:29 METDST 1995