Interaction Codes | |
Code | Description |
301000 + p | Photon from particle p |
t*1000000 + 310000 | Photodisintegration of target t |
397000 | Photon bundle |
399000 + p | EGS4 vertex from particle p |
[Note: as of SNOMAN version 2_08, the EGS4 code has been upgraded to version 2. This does not invalidate the discussion here, but has introduced a number of new features. The interested reader is recommended to consult SNO-STR-095-039.]
The transport of electrons, positrons and gamma rays in SNOMAN is handled by the EGS4 code system. This code is well documented by its authors [7], and a brief outline of how the system works has already been given in this document. The EGS4 code used in SNOMAN is version 2 (see elsewhere for a list of the differences between EGS4 versions 1 and 2).
The EGS code system consists of two user callable routines: EGS4_HATCH and EGS4_SHOWER. EGS4_HATCH is responsible for setting up the data arrays with information drawn from the specified PEGS file, and must be called once before the first electron, positron or gamma ray is propagated. EGS4_SHOWER calls the appropriate EGS routines (describing the physics involved), which, in turn, call two user provided routines, EGS4_AUSGAB and EGS4_HOWFAR (responsible for output and geometry respectively). Information is transferred between EGS subroutines via a number of common blocks.
The various subroutines in the figure will be discussed below, with the exception of the geometry routine GE_NEXT, which is discussed elsewhere in this manual.
The VXEGS4 subroutine is the ``command'' routine for the SNOMAN implementation of EGS and is called by the vertex processor when it attempts to process a vertex whose particle type is identified as that of an electron, positron or gamma ray. It calls EGSINP to establish the initial conditions for the particle it has been called to deal with. The routine INEGS4 has previously performed the following tasks:
VXEGS4 then calls EGS4_SHOWER, the subroutine which actually does most of the hard work in propagating the electromagnetic shower, and finally calls the routine EGSOUT to set up the EGS4 output bank, before returning control to the main code. The contents of the EGS4 bank are documented in:-
Companion/Event Data Structure/EGS4