Overview of COMMON Blocks

+-------------+                                               +----------##
| Geant 3.12  |               GEANT User's Guide              | BASE030  ##
+-------------+                                               +----------##
                                   

Author(s) : Submitted: 01.10.84 Origin : GEANT3 Revised: 08.01.92

Introduction

The communication between program segments of the GEANT3 system is ensured by the contents of the data structures and by the definition of `long range' variables in several common blocks. In addition, within the program segments, the subroutines communicate with each other through explicit arguments and through the common block variables.

The data structures are described in separate papers. Here, the main features of the common blocks used in GEANT3 are summarized, with special mention of the variables initialized in GINIT and of the possibility of overriding them through data records [BASE040] or interactive commands [XINT]. In most of the cases there is a correspondance between a given data structure and a given common block where the current contents of the banks are stored. The labelled common blocks are accessible through Patchy sequences identified by the name of the COMMON. They are defined in the Patch GCDES.

Note:

Unless otherwise specified, the long range variables are initialized in GINIT. When non-zero, default values are quoted between brackets. If the value may be modified the keyword for the data record and for the interactive command is also given in bold characters between brackets.

Dynamic memory

The GEANT3 data structures are stored in the common /GCBANK/ accessible through the following Patchy sequence:

+-------------------------------------------------------------------------------------+
|+SEQ /GCBANK/ Dynamic core for the GEANT data structures |
+-------------------------------------------------------------------------------------+
                                  

      PARAMETER (KWBANK=69000,KWWORK=5200)
      COMMON/GCBANK/NZEBRA,GVERSN,ZVERSN,IXSTOR,IXDIV,IXCONS,FENDQ(16)
     +             ,LMAIN,LR1,WS(KWBANK)
      DIMENSION IQ(2),Q(2),LQ(8000),IWS(2)
      EQUIVALENCE (Q(1),IQ(1),LQ(9)),(LQ(1),LMAIN),(IWS(1),WS(1))
      EQUIVALENCE (JCG,JGSTAT)
      COMMON/GCLINK/JDIGI ,JDRAW ,JHEAD ,JHITS ,JKINE ,JMATE ,JPART
     +      ,JROTM ,JRUNG ,JSET  ,JSTAK ,JGSTAT,JTMED ,JTRACK,JVERTX
     +      ,JVOLUM,JXYZ  ,JGPAR ,JGPAR2,JSKLT
C

The /GCLINK/ variables are pointers to the GEANT3 data structures in the /GCBANK/ common. They belong to a permanent area declared in GZINIT.

Other labelled COMMON blocks

     +--------------------------------------------------------------+
     |+SEQ /GCCUTS/ Tracking thresholds |
     +--------------------------------------------------------------+
                                  

 COMMON/GCCUTS/CUTGAM,CUTELE,CUTNEU,CUTHAD,CUTMUO,BCUTE,BCUTM,
 +             DCUTE,DCUTM,PPCUTM,TOFMAX,GCUTS(5)

CUTGAM
Kinetic energy cut threshold for gammas (0.001, CUTS)
CUTELE
Kinetic energy cut threshold for electrons (0.001, CUTS)
CUTNEU
Kinetic energy cut threshold for neutral hadrons (0.01, CUTS)
CUTHAD
Kinetic energy cut threshold for charged hadrons (0.01, CUTS)
CUTMUO
Kinetic energy cut threshold for muons (0.01, CUTS)
BCUTE
Kinetic energy cut threshold for electron Bremsstrahlung (CUTGAM, CUTS)
BCUTM
Kinetic energy cut threshold for muon Bremsstrahlung (CUTGAM, CUTS)
DCUTE
Kinetic energy cut threshold for electron delta rays (CUTELE, CUTS)
DCUTM
Kinetic energy cut threshold for muon or hadron delta rays (CUTELE, CUTS) + -
PPCUTM
Total energy cut threshold for e e pair production by muon (0.002, CUTS)
TOFMAX
Tracking cut threshold on time of flight 10 integrated from primary interaction time (10 , CUTS)
GCUTS
For user applications (CUTS)

Note: The cuts BCUTE, BCUTM and DCUTE, DCUTM are given the respective default values CUTGAM and CUTELE. Experienced users can make use of the facility offered (command CUTS) to change BCUTE, DCUTE, BCUTM and DCUTM.

+--------------------------------------------------------------------------------+
|+SEQ /GCDRAW/ Variables used by the drawing package |
+--------------------------------------------------------------------------------+
                                  

      COMMON/GCDRAW/NUMNOD,MAXNOD,NUMND1,LEVVER,LEVHOR,MAXV,IPICK,
     + MLEVV,MLEVH,NWCUT,JNAM,JMOT,JXON,JBRO,JDUP,JSCA,JDVM,JPSM,
     + JNAM1,JMOT1,JXON1,JBRO1,JDUP1,JSCA1,JULEV,JVLEV,
     + LOOKTB(16),
     + GRMAT0(10),GTRAN0(3),IDRNUM,GSIN(41),GCOS(41),SINPSI,COSPSI,
     + GTHETA,GPHI,GPSI,GU0,GV0,GSCU,GSCV,NGVIEW,
     + ICUTFL,ICUT,CTHETA,CPHI,DCUT,NSURF,ISURF,
     + GZUA,GZVA,GZUB,GZVB,GZUC,GZVC,PLTRNX,PLTRNY,
     + LINATT,LINATP,ITXATT,ITHRZ,IPRJ,DPERS,ITR3D,IPKHIT,IOBJ,LINBUF,
     + MAXGU,MORGU,MAXGS,MORGS,MAXTU,MORTU,MAXTS,MORTS,
     + IGU,IGS,ITU,ITS,NKVIEW,IDVIEW,
     + NOPEN,IGMR,IPIONS,ITRKOP,IHIDEN,
     + DDUMMY(18)
C

NUMNOD
number of nodes in non-optimized tree
MAXNOD
max. number of nodes of non-optimized tree. (MIN(NLEFT,16,200)).
NUMND1
number of nodes in optimized tree
LEVVER
vertical level in the tree currently scanned by tree routines
LEVHOR
horizontal node in the tree currently scanned by tree routines
MAXV
max vertical levels in the tree to be scanned by tree routines
IPICK
node selected by GDTREE
MLEVV
number of vertical levels in the last tree scanned
MLEVH
number of horizontal nodes in the last tree scanned
NWCUT
max. workspace allocated by cut routines, (5000)
JNAM-JVLEV
pointers used by the tree routines
LOOKTB
colour look-up table, (LOOKTB(I)=I,I=1,16)
GRMAT0
rotation matrix saved by GDRVOL, (unitary matrix)
GTRAN0
translation matrix saved by GDRVOL, (0.,0.,0.)
IDRNUM
flag for GDRAW, set to 1 when called by GDRVOL, (0) o
GSIN
sine table (at 9 steps) o
GCOS
cosine table (at 9 steps)
SINPSI
SIN(GPSI*DEGRAD)
COSPSI
COS(GPSI DEGRAD)
GTHETA
theta angle of the parallel projection of o 3-dimensional images on the screen (45 )
GPHI
phi angle of the parallel projection of o 3-dimensional images on the screen (135 )
GPSI
psi angle of rotation of the image on the o screen (0 )
GU0
U position (X in screen coordinates) of the origin of the drawing screen in screen units (10.)
GV0
V position (Y in screen coordinates) of the origin of the drawing screen in screen units (10.)
GSCU
scale factor for the U screen coordinate (0.015)
GSCV
scale factor for the V screen coordinate (0.015)
NGVIEW
flag informing GDFR3D and GD3D3D if the view point has changed (0)
ICUTFL
flag informing GDRAW if it was called by cut routines
ICUT
axis along which the cut is performed (1, 2 or 3, 0 if no cut)
CTHETA
theta angle of cut supplied to GDRAWX (used by GDCUT)
CPHI
phi angle of cut supplied to GDRAWX (used by GDCUT)
DCUT
coordinate value (along axis ICUT) at which the cut is performed
NSURF
number of surfaces stored in SURF
ISURF
pointer for array SURF
GZUA
zoom parameter (horizontal scale factor) (1.)
GZVA
zoom parameter (vertical scale factor) (1.)
GZUB
zoom parameter (0.)
GZVB
zoom parameter (0.)
GZUC
zoom parameter (0.)
GZVC
zoom parameter (0.)
PLTRNX
screen and plotter X range, PLTRNX x PLTRNY cm. (20.)
PLTRNY
screen and plotter Y range, PLTRNX x PLTRNY cm. (20.)
LINATT
current line attributes (colour=1, width=1, style=1, fill=1)
LINATP
permanent line attributes (LINATT)
ITXATT
current text attributes (colour = 1, width = 1)
ITHRZ
string containing the status of THRZ option of GDOPT ('OFF ')
IPRJ
string containing the status of PROJ option of GDOPT ('PARA')
DPERS
distance of the view point from the origin (used with perspective) (1000.)
ITR3D
track being scanned (used together with THRZ option)
IPKHIT
flag for GPHITS, if >0 then print only hit number, (0)
IOBJ
type of the object being drawn (detector, track, hit, etc.) (0)
LINBUF
flag informing GDRAWV if line buffering is wanted or not (0)
MAXGU
current physical number of words for graphic unit banks
MORGU
number of words to be pushed in graphic unit banks
MAXGS
current physical number of words for graphic segment banks
MORGS
number of words to be pushed in graphic segment banks
MAXTU
current physical number of words for text unit banks
MORTU
number of words to be pushed in text unit banks
MAXTS
current physical number of words for text segment banks
MORTS
number of words to be pushed in text segment banks
IGU
pointer to current graphic unit bank
IGS
pointer to current graphic segment bank
ITU
pointer to current text unit bank
ITS
pointer to current text segment bank
NKVIEW
number of view data banks (0)
IGVIEW
current view bank number or 0 for screen (0)
NOPEN
unused (0)
IGMR
flag informing if APOLLO-GMR is being used (0)
IPIONS
unused (0)
ITRKOP
string containing the status of TRAK option of GDOPT ('LINE')
DDUMMY
array of dummy words

+---------------------------------------------------------------------------------+
|+SEQ /GCFLAG/ Flags and variables to control the run |
+---------------------------------------------------------------------------------+
                                  

      COMMON/GCFLAG/IDEBUG,IDEMIN,IDEMAX,ITEST,IDRUN,IDEVT,IEORUN
     +        ,IEOTRI,IEVENT,ISWIT(10),IFINIT(20),NEVENT,NRNDM(2)
C

IDEBUG
Flag set internally to 1 to activate debug output if IEVENT (below)
IDEMIN
is greater or equal to IDEMIN (DEBU)
IDEMAX
and less or equal to IDEMAX (DEBU)
ITEST
Flag to request printing of IEVENT, IDEVT and NRNDM (below) every ITEST events (DEBU)
IDRUN
Current user run number (1, RUNG)
IDEVT
Current user event number (1, RUNG)
IEORUN
Flag to terminate run if non-zero
IEOTRI
Flag to abort current event if non-zero
IEVENT
Current event sequence number (1)
ISWIT
Flags reserved for user in relation to debug (0, SWIT)
IFINIT
Flags used for initialisation
NEVENT
Number of events to be processed (10000000, TRIG)
NRNDM
Initial seeds for the random number generator. If NRNDM(2) the sequence number NRNDM(1) is taken from a predefined set of 215 indipendent sequences. Otherwise the random number generator is initialised with the two seeds NRNDM(1), NRNDM(2). (9876, 54321)

    +----------------------------------------------------------------+
    | +SEQ /GCGOBJ/ CG package variables |
    +----------------------------------------------------------------+
                                  

      PARAMETER (NTRCG=1)
      PARAMETER (NWB=207,NWREV=100,NWS=1500)
      PARAMETER (C2TOC1=7.7, C3TOC1=2.,TVLIM=1296.)
      COMMON /GCGOBJ/IST,IFCG,ILCG,NTCUR,NFILT,NTNEX,KCGST
     +             ,NCGVOL,IVFUN,IVCLOS,IFACST,NCLAS1,NCLAS2,NCLAS3
      COMMON /CGBLIM/IHOLE,CGXMIN,CGXMAX,CGYMIN,CGYMAX,CGZMIN,CGZMAX
C

NTRCG
NWB
NWREV
NWS
C2TOC1
C3TOC1
TVLIM
IST
IFCG
ILCG
NTCUR
NFILT
NTNEX
KCGST
NCGVOL
IVFUN
IVCLOS
IFACST
NCLAS1
NCLAS2
NCLAS3
IHOLE
CGXMIN
CGXMAX
CGYMIN
CGYMAX
CGZMIN
CGZMAX

+---------------------------------------------------------------------------------+
|+SEQ /GCHILN/ Temporary link area for the CG package |
+---------------------------------------------------------------------------------+
                                  

      COMMON/GCHILN/LARECG(2), JCGOBJ, JCGCOL, JCOUNT, JCLIPS,
     +              ICLIP1, ICLIP2
*

+-------------------------------------------------------------------------------------------+
|+SEQ /GCJLOC/ JMATE substructure pointers for current material |
+-------------------------------------------------------------------------------------------+
                                  

      COMMON/GCJLOC/NJLOC(2),JTM,JMA,JLOSS,JPROB,JMIXT,JPHOT,JANNI
     +                  ,JCOMP,JBREM,JPAIR,JDRAY,JPFIS,JMUNU,JRAYL
     +                  ,JMULOF,JCOEF,JRANG
C

See [CONS199].

+------------------------------------------------------------------------+
|+SEQ /GCJUMP/ Pointers for the jump package |
+------------------------------------------------------------------------+
                                  

      PARAMETER    (MAXJMP=30)
      COMMON/GCJUMP/JUDCAY, JUDIGI, JUDTIM, JUFLD , JUHADR, JUIGET,
     +              JUINME, JUINTI, JUKINE, JUNEAR, JUOUT , JUPHAD,
     +              JUSKIP, JUSTEP, JUSWIM, JUTRAK, JUTREV, JUVIEW,
     +              JUPARA
      DIMENSION     JMPADR(MAXJMP)
      EQUIVALENCE  (JMPADR(1), JUDCAY)
*

 +----------------------------------------------------------------------+
 |+SEQ /GCKINE/ Kinematics of current track |
 +----------------------------------------------------------------------+
                                  
      COMMON/GCKINE/IKINE,PKINE(10),ITRA,ISTAK,IVERT,IPART,ITRTYP
     +      ,NAPART(5),AMASS,CHARGE,TLIFE,VERT(3),PVERT(4),IPAOLD
C

IKINE
user integer word (0, KINE)
PKINE
user array of real (0, KINE)
ITRA
Current track number
ISTAK
Current stack track number
IVERT
Current vertex number
IPART
Current particle number
ITRTYP
Current particle tracking type
NAPART
Name of current particle (ASCII codes stored in an integer array, 4 characthers per word)
AMASS
Mass of current particle
CHARGE
Charge of current particle
TLIFE
Average life time of current particle
VERT
Coordinates of origin vertex for current track
PVERT
Track kinematics at origin vertex (PVERT(4) not used)
IPAOLD
Particle number of the previous track.

+----------------------------------------------------------------------------------------------------------------------+
|+SEQ /GCKMAX/ Size of the /GCKING/ stack |
+----------------------------------------------------------------------------------------------------------------------+
                                  

      INTEGER MXGKIN
      PARAMETER (MXGKIN=100)
+---------------------------------------------------------------------------------+
|+SEQ /GCMUTR/ Auxiliary variables for the CG package |
+---------------------------------------------------------------------------------+
                                  

      PARAMETER (MULTRA=50)
      CHARACTER*4 GNASH, GNNVV, GNVNV
      COMMON/GCMUTR/NCVOLS,KSHIFT,NSHIFT,ICUBE,NAIN,JJJ,
     +              NIET,IOLDSU,IVOOLD,IWPOIN,IHPOIN,IVECVO(100),
     +              PORGX,PORGY,PORGZ,POX(15),POY(15),POZ(15),GBOOM,
     +              PORMIR(18),PORMAR(18),IPORNT,
     +              ICGP,CLIPMI(6),CLIPMA(6),
     +              ABCD(4),BMIN(6),BMAX(6),CGB(16000),CGB1(16000),
     +              GXMIN(MULTRA),GXMAX(MULTRA),GYMIN(MULTRA),
     +              GYMAX(MULTRA),GZMIN(MULTRA),GZMAX(MULTRA),
     +              GXXXX(MULTRA),GYYYY(MULTRA),GZZZZ(MULTRA)
*
      COMMON/GCMUTC/   GNASH(MULTRA),GNNVV(MULTRA),GNVNV(MULTRA)
*

+------------------------------------------------------------------------------+
|+SEQ /GCKING/ Kinematics of generated secondaries |
+------------------------------------------------------------------------------+
                                  

      COMMON/GCKING/KCASE,NGKINE,GKIN(5,MXGKIN),
     +                           TOFD(MXGKIN),IFLGK(MXGKIN)
C
      PARAMETER (MXPHOT=1000)
      COMMON/GCKIN2/NGPHOT,XPHOT(10,MXPHOT)
C

KCASE
Mechanism which has generated the secondary particles
NGKINE
Number of generated secondaries th
GKIN(1,I)
x component of momentum of I particle
GKIN(2,I)
y component of momentum
GKIN(3,I)
z component of momentum
GKIN(4,I)
Total energy
GKIN(5,I)
Particle code
TOFD(I)
Time offset with respect to current time of flight
IFLGK(I)
Flag controlling the handling of track by GSKING/GSSTAK
<0=
particle is stored in the temporary stack JSTAK and in the data structure JKINE attached to vertex -IFLGK(I)
0 =
(D) particle is stored in the temporary stack JSTAK for further tracking
1 =
like 0 but particle is stored in JVERTX/JKINE structure as well
2 =
entry in JKINE already exists for this track
NGPHOT
number of Cerenkov photons generated in the current step th
XPHOT(1,I)
x position of the I photon
XPHOT(2,I)
y position
XPHOT(3,I)
z position
XPHOT(4,I)
x component of momentum
XPHOT(5,I)
y component of momentum
XPHOT(6,I)
z component of momentum
XPHOT(7,I)
momentum of the photon
XPHOT(8,I)
x component of the polarisation vector
XPHOT(9,I)
y component of the polarisation vector
XPHOT(10,I)
z component of the polarisation vector

+--------------------------------------------------------------------------------------------------------------+
|+SEQ /GCLINK/ See /GCBANK/ above |
+--------------------------------------------------------------------------------------------------------------+
                                  

+------------------------------------------------------------------------+
|+SEQ /GCLIST/ Various system and user lists |
+------------------------------------------------------------------------+
                                  

      COMMON/GCLIST/NHSTA,NGET ,NSAVE,NSETS,NPRIN,NGEOM,NVIEW,NPLOT
     +       ,NSTAT,LHSTA(20),LGET (20),LSAVE(20),LSETS(20),LPRIN(20)
     +             ,LGEOM(20),LVIEW(20),LPLOT(20),LSTAT(20)
C

NHSTA
Number of histograms declared on data record HSTA
NGET
Number of data structures declared on data record GET
NSAVE
Number of data structures declared on data record SAVE
NSETS
Number of items described on data record SETS
NPRIN
Number of items described on data record PRIN
NGEOM
Number of items described on data record GEOM
NVIEW
Number of items described on data record VIEW
NPLOT
Number of items described on data record PLOT
NSTAT
Number of items described on data record STAT. Obsolete.
LHSTA,...LSTAT
Corresponding user lists of items (HSTA,...,STAT)

LSTAT(1) is reserved by the system for volume statistics.

+-------------------------------------------------------------------------+
|+SEQ /GCMATE/ Parameters of current material |
+-------------------------------------------------------------------------+
                                  

      COMMON/GCMATE/NMAT,NAMATE(5),A,Z,DENS,RADL,ABSL
C

NMAT
Current material number
NAMATE
Name of current material (ASCII codes stored in an integer array, 4 characthers per word)
A
Atomic weight of current material
Z
Atomic number of current material -3
DENS
Density of current material in gcm
RADL
Radiation length of current material
ABSL
Absorption length of current material

+---------------------------------------------------------------------------------+
|+SEQ /GCMULO/ Energy binning and multiple scattering |
+---------------------------------------------------------------------------------+
                                  

Precomputed quantities for multiple scattering and energy binning for JMATE banks. See also [CONS199] for the energy binning and [PHYS325] for a description of the variables OMCMOL and CHCMOL.

      COMMON/GCMULO/SINMUL(101),COSMUL(101),SQRMUL(101),OMCMOL,CHCMOL
     +  ,EKMIN,EKMAX,NEKBIN,NEK1,EKINV,GEKA,GEKB,EKBIN(200),ELOW(200)

SINMUL
Not used any more
COSMUL
Not used any more
SQRMUL
Not used any more
OMCMOL
Constant Omega of the Moli'ere theory 0
CHCMOL
Constant of the Moli'ere theory
EKMIN
Lower edge of the energy range of the -5 tabulated cross sections (10 , ERAN)
EKMAX
Upper edge of the energy range of the 4 tabulated cross sections (10 , ERAN)
NEKBIN
Number of energy bins to be used (90, ERAN)
NEK1
NEKBIN+1
EKINV
1/(log (EKMAX)-log (EKMIN)) 10 10
GEKA
NEKBIN*EKINV
GEKB
1-GEKA*EKBIN(1)
EKBIN
log (ELOW)
ELOW
Low edges of the energy bins

+-------------------------------------------------------------------------+
|+SEQ /GCMZFO/ I/O descriptors of GEANT banks |
+-------------------------------------------------------------------------+
                                  

      COMMON/GCMZFO/IOMATE,IOPART,IOTMED,IOSEJD,IOSJDD,IOSJDH,IOSTAK
     +             ,IOMZFO(13)
C

+-------------------------------------------------------------------------+
|+SEQ /GCNUM/ Current number for various items |
+-------------------------------------------------------------------------+
                                  

      COMMON/GCNUM/NMATE ,NVOLUM,NROTM,NTMED,NTMULT,NTRACK,NPART
     +            ,NSTMAX,NVERTX,NHEAD,NBIT
      COMMON /GCNUMX/ NALIVE,NTMSTO
C

NMATE
Number of Materials
NVOLUM
Number of Volumes
NROTM
Number of Rotation matrices
NTMED
Number of Tracking media
NTMULT
Number of tracks processed in current event (including secondaries), reset to 0 for each event
NTRACK
Number of Tracks in JKINE bank for current event
NPART
Maximum particle code
NSTMAX
Maximum number of tracks in stack JSTAK for current event, reset to 0 for each event
NVERTX
Number of Vertices in JVERTX mother bank for current event
NHEAD
Number of data words in the JHEAD bank (10)
NBIT
Number of bits per word (initialized in GINIT via ZEBRA)

NALIVE
Number of particles to be tracked in the parallel tracking stack (see [TRAK???]
NTMSTO
Total number of tracks tracked in the current event so far. Same as NTMULT in /GCTRAK/.

+--------------------------------------------------------------------------+
|+SEQ /GCOMIS/ Variables for the COMIS package |
+--------------------------------------------------------------------------+
                                  

      COMMON/GCOMIS/ICOMIS,JUINIT,JUGEOM,JUKINE,JUSTEP,JUOUT,JULAST
*

       +----------------------------------------------------------+
       |+SEQ /GCONST/ Basic constants |
       +----------------------------------------------------------+
                                  

      COMMON/GCONST/PI,TWOPI ,PIBY2,DEGRAD,RADDEG,CLIGHT ,BIG,EMASS
      COMMON/GCONSX/EMMU,PMASS,AVO
C

PI
pi (ACOS(-1))
TWOPI
2pi
PIBY2
pi/2
DEGRAD
Degree to radian conversion factor (pi/180)
RADDEG
Radian to degree conversion factor (180/pi) 10 -1
CLIGHT
Light velocity (2.99792458x 10 cm sec ) 10
BIG
Arbitrary large number (10 ) -3
EMASS
Electron mass (0.5110034x 10 GeV)
EMMU
Muon mass (0.105659GeV)
PMASS
Proton mass (0.93828GeV) 23
AVO
Avogadro's number x10 (0.6022045)

+---------------------------------------------------------------------------+
|+SEQ /GCOPTI/ Control of Geometry optimisation |
+---------------------------------------------------------------------------+
                                  

      COMMON/GCOPTI/ IOPTIM
C

IOPTIM
Optimization flag
-1 =
No optimisation at all. GSORD calls disabled
0 =
No optimisation. Only user calls to GSORD kept
1 =
All non-GSORDered volumes are ordered along the best axis
2 =
All volumes are ordered along the best axis

+------------------------------------------------------------------------------------+
|+SEQ /GCPARA/ Control of parametrized energy deposition |
+------------------------------------------------------------------------------------+
                                  

      PARAMETER (LSTACK = 5000)
      LOGICAL    SYMPHI, SYMTEU, SYMTED
C
      COMMON    /GCPARA/
     +                   JJLOST, EPSMAX, JJWORK,
     +                   IFOUNP, IFOUNT, IFNPOT,
     +                   SYMPHI, SYMTEU, SYMTED
C

LSTACK
Dimension of the Energy ray stack
JJLOST
Number of Energy rays lost in each tracking step
EPSMAX
Maximum number of radiation lengths that an Energy ray can travel
JJWORK
Actual size of the Energy ray stack
IFOUNP
Number of Energy rays that change cell in phi direction
IFOUNT
Number of Energy rays that change cell in theta direction
IFNPOT
Number of Energy rays that change cell either in phi or in theta o
SYMPHI
.TRUE. if PHIMAX-PHIMIN= 360 o
SYMTEU
.TRUE. if TETMIN= 0 o
SYMTED
.TRUE. if TETMAX= 180

 +----------------------------------------------------------------------+
 | +SEQ /GCPARM/ Control of parametrization |
 +----------------------------------------------------------------------+
                                  

      COMMON/GCPARM/IPARAM,PCUTGA,PCUTEL,PCUTNE,PCUTHA,PCUTMU
     +             ,NSPARA,MPSTAK,NPGENE
      REAL PACUTS(5)
      EQUIVALENCE (PACUTS(1),PCUTGA)
      PARAMETER (NWPPAR=14)
      PARAMETER (NWERAY=40)
C

IPARAM
Parametrization flag (0, PCUT)
0 =
parametrization is not in effect, normal tracking will be used
1 =
parametrization is in effect
PCUTGA
Parametrization threshold for photons (0., PCUT)
PCUTEL
Parametrization threshold for electrons and positrons (0., PCUT)
PCUTNE
Parametrization threshold for neutral hadrons (0., PCUT)
PCUTHA
Parametrization threshold for charged hadrons (0., PCUT)
PCUTMU
Parametrization threshold for muons (0., PCUT)
NSPARA
not used
MPSTAK
Optimum size of the Energy ray stack (2000)
NPGENE
Number of Energy rays generated per primary particle (20)
NWPPAR
Number of words stored for each track to be parametrized
NWERAY
Number of words stored for each Energy-ray

+------------------------------------------------------------------------+
| +SEQ /GCPHYS/ Control of physics processes |
+------------------------------------------------------------------------+
                                  

   COMMON/GCPHYS/IPAIR, SPAIR, SLPAIR,ZINTPA,STEPPA
  +             ,ICOMP, SCOMP, SLCOMP,ZINTCO,STEPCO
  +             ,IPHOT, SPHOT, SLPHOT,ZINTPH,STEPPH
  +             ,IPFIS, SPFIS, SLPFIS,ZINTPF,STEPPF
  +             ,IDRAY, SDRAY, SLDRAY,ZINTDR,STEPDR
  +             ,IANNI, SANNI, SLANNI,ZINTAN,STEPAN
  +             ,IBREM, SBREM, SLBREM,ZINTBR,STEPBR
  +             ,IHADR, SHADR, SLHADR,ZINTHA,STEPHA
  +             ,IMUNU, SMUNU, SLMUNU,ZINTMU,STEPMU
  +             ,IDCAY, SDCAY, SLIFE ,SUMLIF,DPHYS1
  +             ,ILOSS, SLOSS, SOLOSS,STLOSS,DPHYS2
  +             ,IMULS, SMULS, SOMULS,STMULS,DPHYS3

- +
IPAIR
Control variable for the e /e pair production process.
SPAIR
Distance to the next pair production in the current material.
SLPAIR
Distance travelled by the gamma when pair production occurs.
ZINTPA
Number of interaction lengths to the next pair production.
STEPPA
Interaction length for pair production for the current material and energy.
ICOMP
Control variable for the Compton scattering process.
SCOMP
Distance to the next Compton scattering in the current material.
SLCOMP
Distance travelled by the gamma when Compton scattering occurs.
ZINTCO
Number of interaction lengths to the next Compton scattering.
STEPCO
Interaction length for Compton scattering for the current material and energy.
IPHOT
Control variable for the photoelectric effect process.
SPHOT
Distance to the next photoelectric effect in the current material.
SLPHOT
Distance travelled by the gamma when photoelectric effect occurs.
ZINTPH
Number of interaction lengths to the next photoelectric effect.
STEPPH
Interaction length for photoelectric effect for the current material and energy.
IPFIS
Control variable for the gamma-induced nuclear fission process.
SPFIS
Distance to the next gamma-induced nuclear fission in the current material.
SLPFIS
Distance travelled by the gamma when gamma-induced nuclear fission occurs.
ZINTPF
Number of interaction lengths to the next gamma-induced nuclear fission.
STEPPF
Interaction length for gamma-induced nuclear fission for the current material and energy.
IDRAY
Control variable for the delta-ray production process.
SDRAY
Distance to the next delta-ray production in the current material.
SLDRAY
Distance travelled by the particle when delta-ray production occurs.
ZINTDR
Number of interaction lengths to the next delta-ray production.
STEPDR
Interaction length for delta-ray production for the current material and energy.
IANNI
Control variable for the positron annichilation process.
SANNI
Distance to the next positron annichilation in the current material.
SLANNI
Distance travelled by the positron when positron annichilation occurs.
ZINTAN
Number of interaction lengths to the next positron annichilation.
STEPAN
Interaction length for positron annichilation for the current material and energy.
IBREM
Control variable for the Bremstrahlung process.
SBREM
Distance to the next Bremstrahlung in the current material.
SLBREM
Distance travelled by the particle when Bremstrahlung occurs.
ZINTBR
Number of interaction lengths to the next Bremstrahlung.
STEPBR
Interaction length for Bremstrahlung for the current material and energy.
IHADR
Control variable for the hadronic interaction process.
SHADR
Distance to the next hadronic interaction in the current material.
SLHADR
Distance travelled by the particle when hadronic interaction occurs.
ZINTHA
Number of interaction lengths to the next hadronic interaction.
STEPHA
Interaction length for hadronic interaction for the current material and energy.
IMUNU
Control variable for the mu nuclear interaction process.
SMUNU
Distance to the next mu nuclear interaction in the current material.
SLMUNU
Distance travelled by the mu when mu nuclear interaction occurs.
ZINTMU
Number of interaction lengths to the next mu nuclear interaction.
STEPMU
Interaction length for mu nuclear interaction for the current material and energy.
IDCAY
Control variable for the decay in flight process.
SDCAY
Distance to the next decay in flight in the current material.
SLIFE
Distance travelled by the particle when decay in flight occurs.
SUMLIF
Time to the next interaction point in ct units.
DPHYS1
Not used. and energy.
ILOSS
Control variable for the energy loss process.
SLOSS
Step limitation due to the energy loss process.
SOLOSS
Not used.
STLOSS
Not used. Set equal to STEP for backward compatibility.
DPHYS2
Not used.
IMULS
Control variable for the energy loss process.
SMULS
Maximum step allowed by the multiple scattering simulation.
SOMULS
Not used.
STMULS
Not used. Set equal to step for backward compatibility.
DPHYS3
Not used.

For more details on IDRAY and ILOSS see [BASE040]. For all other variables see [PHYS010].

+-----------------------------------------------------------------------------------------+
|+SEQ /GCPOLY/ Internal flags for polygon and polycone shapes |
+-----------------------------------------------------------------------------------------+
                                  

      COMMON/GCPOLY/IZSEC,IPSEC
C

IZSEC
Z section number
IPSEC
phi sector number

+--------------------------------------------------------------------------------------------+
|+SEQ /GCPUSH/ Initial and incremental size of some mother banks |
+--------------------------------------------------------------------------------------------+
                                  

      COMMON/GCPUSH/NCVERT,NCKINE,NCJXYZ,NPVERT,NPKINE,NPJXYZ
C
NCVERT
Initial size of mother bank JVERTX (5)
NCKINE
Initial size of mother bank JKINE (50)
NCJXYZ
Initial size of mother bank JXYZ (50)
NPVERT
Increment for size of mother bank JVERTX (5)
NPKINE
Increment for size of mother bank JKINE (10)
NPJXYZ
Increment for size of mother bank JXYZ (10)

+----------------------------------------------------------------------------+
|+SEQ /GCRZ/ Direct access files control variables |
+----------------------------------------------------------------------------+
                                  

      COMMON/GCRZ1/NRECRZ,NRGET,NRSAVE,LRGET(20),LRSAVE(20)
      COMMON/GCRZ2/RZTAGS
      CHARACTER*8 RZTAGS(4)
C

NRECRZ
Record size (argument of RZMAKE)
NRGET
Number of data structures declared on data card RGET
NRSAVE
Number of data structures declared on data card RSAV
LRGET,LRSAVE
Corresponding user lists of items
RZTAGS
Key names (argument of RZMAKE)

+------------------------------------------------------------------------+
| +SEQ /GCSCAL/ Scan geometry ZEBRA pointers |
+------------------------------------------------------------------------+
                                  
      PARAMETER(MXSLNK=100)
      COMMON/GCSCAL/ ISLINK(MXSLNK)
      EQUIVALENCE (LSLAST,ISLINK(MXSLNK))
      EQUIVALENCE (LSCAN ,ISLINK(1)),(LSTEMP,ISLINK(2))
      EQUIVALENCE (LSPARA,ISLINK(3)),(LSERAY,ISLINK(4))
*

+---------------------------------------------------------------------------+
|+SEQ /GCSCAN/ Scan geometry control parameters |
+---------------------------------------------------------------------------+
                                  

      PARAMETER (MSLIST=32,MAXMDT=3)
      COMMON/GCSCAN/SCANFL,NPHI,PHIMIN,PHIMAX,NTETA,TETMIN,TETMAX,
     +              MODTET,IPHIMI,IPHIMA,IPHI1,IPHIL,NSLMAX,
     +              NSLIST,ISLIST(MSLIST),VSCAN(3),FACTX0,FACTL,
     +              FACTR,IPHI,ITETA,ISCUR,SX0,SABS,TETMID(MAXMDT),
     +              TETMAD(MAXMDT)
     +             ,SX0S,SX0T,SABSS,SABST,FACTSF
     +             ,DLTPHI,DLTETA,DPHIM1,DTETM1
     +             ,FCX0M1,FCLLM1,FCRRM1
      LOGICAL SCANFL
      COMMON/GCSCAC/SFIN,SFOUT
      CHARACTER*80 SFIN,SFOUT
*

MSLIST
Dimension of ISLIST array (32)
MAXMDT
Number of theta division types (3)
SCANFL
SCAN flag (.FALSE., SCAN, STURN)
.TRUE.
creation of SCAN geometry, geantinos will be tracked
.FALSE.
normal tracking
NPHI
Number of phi divisions (90, SCAN, PHI) o
PHIMIN
Minimum phi in degrees (0 , SCAN, PHI) o
PHIMAX
Maximum phi in degrees (360 , SCAN, PHI)
NTETA
Number of theta divisions (90, SCAN, TETA) o
TETMIN
Minimum value of theta (0 , SCAN, TETA)
TETMAX
Maximum value of theta (180., SCAN, theta)
MODTET
Type of theta division (1, SCAN, theta)
1 =
theta is expressed in terms of degrees
2 =
theta is expressed in terms of pseudorapidity
3 =
theta is expressed in terms of cos(theta)
IPHIMI
not used
IPHIMA
not used
IPHI1
internal index (PHIMIN)
IPHIL
internal index (PHIMAX)
NSLMAX
not used
NSLIST
Number of volumes to be scanned (1, SCAL)
ISLIST
List of volumes to be scanned (SCAL, SLIST)
VSCAN
Scan vertex origin (SCAP, VERTEX)
FACTX0
Scale factor for SX0 (100., SCAP, SFACTORS)
FACTL
Scale factor for SABS (10., SCAP, SFACTORS)
FACTR
Scale factor for R (100., SCAP, SFACTORS)
IPHI
phi bin of the current cell
ITETA
theta bin of the current cell
ISCUR
Pointer in LPHI to first triplet of words for a given ITETA cell
SX0
Sum of radiation lengths up to current R boundary
SABS
Sum of absorbtion lengths up to current R boundary
TETMID
Bound value for TETMIN (0., -10., -1. if MODTET is 1, 2 or 3 respectively)
TETMAD
Bound value for TETMAX (180., 10., 1. if MODTET is 1, 2 or 3 respectively)
SX0S
Sum of radiation lengths for the sensitive mediums in the current cell
SX0T
Sum of radiation lengths in the current cell
SABSS
Sum of absorption lengths for the sensitive mediums in the current cell
SABST
Sum of absorbtion lengths in the current cell
FACTSF
Scale factor for the sampling fractions (1000.)
DLTPHI
Bin in phi, (PHIMAX-PHIMIN)/NPHI
DLTETA
Bin in theta, (TETMAX-TETMIN)/NTETA -1
DPHIM1
DLTPHI -1
DTETM1
DLTETA -1
FCX0M1
FACTX0 -1
FCLLM1
FACTL -1
FCRRM1
FACTR
SFIN
not used
SFOUT
not used

+--------------------------------------------------------------------------+
|+SEQ /GSECTI/ Hadronic partial cross sections |
+--------------------------------------------------------------------------+
                                  
      COMMON/GSECTI/ AIEL(20),AIIN(20),AIFI(20),AICA(20),ALAM,K0FLAG
C

AIEL
Elastic cross sections. AIEL(I) is the elastic th cross section for the I element composing the current material
AIIN
Inelastic cross sections
AIFI
Fission cross sections
AICA
Nuclear capture cross sections
ALAM
Total cross section
K0FLAG
Obsolete

+---------------------------------------------------------------------------------------+
|+SEQ /GCSETS/ Identification of current sensitive detector |
+---------------------------------------------------------------------------------------+
                                  

      COMMON/GCSETS/IHSET,IHDET,ISET,IDET,IDTYPE,NVNAME,NUMBV(20)
C

IHSET
Set identifier. ASCII equivalent of 4 characters.
IHDET
Detector identifier. ASCII equivalent of 4 characters.
ISET
Position of set in bank JSET
IDET
Position of detector in bank JS=LQ(JSET-ISET)
IDTYPE
User defined detector type
NVNAME
Number of elements in NUMBV
NUMBV
List of volume copy numbers to identify the detector

+---------------------------------------------------------------------------+
|+SEQ /GCSHNO/ Symbolic codes for system shapes |
+---------------------------------------------------------------------------+
                                  

      PARAMETER ( NSBOX=1,  NSTRD1=2, NSTRD2=3, NSTRAP=4, NSTUBE=5,
     +  NSTUBS=6, NSCONE=7, NSCONS=8, NSSPHE=9, NSPARA=10,NSPGON=11,
     +  NSPCON=12,NSELTU=13,NSHYPE=14,NSGTRA=28, NSCTUB=29 )

+---------------------------------------------------------------------------------+
|+SEQ /GCSPEE/ Auxiliary variables for the CG package |
+---------------------------------------------------------------------------------+
                                  

      COMMON/GCSPEE/S1,S2,S3,SS1,SS2,SS3,LEP,IPORLI,ISUBLI,
     +              SRAGMX,SRAGMN,RAINT1,RAINT2,RMIN1,RMIN2,
     +              RMAX1,RMAX2,PORJJJ,ITSTCU,IOLDCU,ISCOP,
     +              NTIM,NTFLAG,LPASS
*

S1
S2
S3
SS1
SS2
SS3
LEP
IPORLI
ISUBLI
SRAGMX
SRAGMN
RAINT1
RAINT2
RMIN1
RMIN2
RMAX1
RMAX2
PORJJJ
ITSTCU
IOLDCU
ISCOP
NTIM
NTFLAG
LPASS

+----------------------------------------------------------------------------------+
|+SEQ /GCSTAK/ Control variables for parallel tracking |
+----------------------------------------------------------------------------------+
                                  

      PARAMETER (NWSTAK=12,NWINT=11,NWREAL=12,NWTRAC=NWINT+NWREAL+5)
      COMMON /GCSTAK/ NJTMAX, NJTMIN, NTSTKP, NTSTKS, NDBOOK, NDPUSH,
     +                NJFREE, NJGARB, NJINVO, LINSAV(15), LMXSAV(15)
C

NWSTAK
NWINT
NWREAL
NWTRAC
NJTMAX
NJTMIN
NTSTKP
NTSTKS
NDBOOK
NDPUSH
NJFREE
NJGARB
NJINVO
LINSAV
LMXSAV

   +------------------------------------------------------------------+
   | +SEQ /GCTIME/ Execution time control |
   +------------------------------------------------------------------+
                                  

      COMMON/GCTIME/TIMINT,TIMEND,ITIME,IGDATE,IGTIME
C

TIMINT
Total time left after initialization (TIME)
TIMEND
Time requested for program termination phase (1, TIME)
ITIME
Number of events between two tests of time left (1, TIME)
IGDATE
Current date in integer format YYMMDD
IGTIME
Current time in integer format HHMM

+--------------------------------------------------------------------------------------+
|+SEQ /GCTMED/ Array of current tracking medium parameters |
+--------------------------------------------------------------------------------------+
                                  

      COMMON/GCTMED/NUMED,NATMED(5),ISVOL,IFIELD,FIELDM,TMAXFD,STEMAX
     +      ,DEEMAX,EPSIL,STMIN,CFIELD,PREC,IUPD,ISTPAR,NUMOLD
C

NUMED
Current tracking medium number
NATMED
Name of current tracking medium (ASCII codes stored in an integer array, 4 characthers per word)
ISVOL
-1 =
Non-sensitive volume with sensitive volume tracking parameters
0 =
Non-sensitive volume
1 =
Sensitive volume
IFIELD
0 =
No field
1 =
User defined field (GUFLD)
2 =
User defined field (GUFLD) along z
3 =
Uniform field (FIELDM) along z
FIELDM
Maximum field
TMAXFD
Maximum turning angle in one step due to the magnetic field
STEMAX
Maximum step allowed
DEEMAX
Maximum fraction of energy loss in one step for ionization
EPSIL
Boundary crossing accuracy
STMIN
Minimum step size by energy loss or by multiple scattering
CFIELD
Constant for field step evaluation
CMULS
Effective step for boundary crossing (0.1x EPSIL)
IUPD
0 =
New particle or new medium in current step
1 =
No change of medium or particle
ISTPAR
0 =
Global tracking parameters are used
1 =
Special tracking parameters are used for this medium
NUMOLD
Number of the previous tracking medium

+------------------------------------------------------------------------------------------+
|+SEQ /GCTRAK/ Track parameters at the end of the current step |
+------------------------------------------------------------------------------------------+
                                  

      PARAMETER (MAXMEC=30)
      COMMON/GCTRAK/VECT(7),GETOT,GEKIN,VOUT(7),NMEC,LMEC(MAXMEC)
     + ,NAMEC(MAXMEC),NSTEP ,MAXNST,DESTEP,DESTEL,SAFETY,SLENG
     + ,STEP  ,SNEXT ,SFIELD,TOFG  ,GEKRAT,UPWGHT,IGNEXT,INWVOL
     + ,ISTOP ,IGAUTO,IEKBIN, ILOSL, IMULL,INGOTO,NLDOWN,NLEVIN
     + ,NLVSAV,ISTORY
C

VECT
Current track parameters (x,y,z,p /p,p / p,p /p, p) x y z
GETOT
Current particle total energy
GEKIN
Current particle kinetic energy
VOUT
Track parameters at the end of the step. Used internally by GEANT.
NMEC
Number of mechanisms active for current step
LMEC
List of mechanism indices for current step
NAMEC
List of mechanism names for current step (ASCII codes stored in an integer, 4 characthers per word)
NSTEP
Number of steps for current track
MAXNST
Maximum number of steps allowed (default = 10000)
DESTEP
Total energy lost in current step
DESTEL
Same as DESTEP. Kept for backward compatibility.
SAFETY
Underestimated distance to closest medium boundary
SLENG
Track length at current point
STEP
Size of curent tracking step
SNEXT
Distance to current medium boundary along the direction of the particle
SFIELD
Obsolete.
TOFG
Current time of flight in ct units.
GEKRAT
Interpolation coefficient in the energy table ELOW
UPWGHT
User word for current particle
IGNEXT
0 =
SNEXT has not been computed in current step
1 =
SNEXT has been computed in current step
INWVOL
0 =
track is inside a volume
1 =
track has entered a new volume
2 =
track is exiting current volume
3 =
track is exiting the setup
ISTOP
0 =
particle will continue to be tracked
1 =
particle has disappeared (decay, inelastic interaction ...)
2 =
particle has fallen below the cutoff energy or has interacted but no secondaries have been generated.
IGAUTO
0 =
tracking parameters are given by the user
1 =
tracking parameters are calculated by GEANT
IEKBIN
Current kinetic energy bin in table ELOW
ILOSL
Local energy loss flag (see /GCPHYS/)
IMULL
Local multiple scattering flag (see /GCPHYS/)
INGOTO
Volume which the particle will enter if continuing along a straight line for SNEXT centimeters
NLDOWN
Lowest level reached down the tree (parallel tracking only)
NLEVIN
Number of levels currently filled and valid in /GCVOLU/
NLVSAV
Current level (parallel tracking only)
ISTORY
User flag for current track history (reset to 0 in GLTRAC)

List of mechanisms considered at tracking time:

      DATA MEC/'NEXT','MULS','LOSS','FIEL','DCAY','PAIR','COMP','PHOT'
     +        ,'BREM','DRAY','ANNI','HADR','ECOH','EVAP','FISS','ABSO'
     +        ,'ANNH','CAPT','EINC','INHE','MUNU','TOFM','PFIS','SCUT'
     +        ,'RAYL','PARA','PRED','LOOP','NULL','STOP'/

+-------------------------------------------------------------------------+
|+SEQ /GCUNIT/ Description of logical units'  |
+-------------------------------------------------------------------------+
                                  

   COMMON/GCUNIT/LIN, LOUT, NUNITS, LUNITS(5)
   COMMON/GCMAIL/CHMAIL
   CHARACTER 132 CHMAIL

LIN
Input unit to read data records
LOUT
Line printer output unit
NUNITS
Number of additional units
LUNITS
List of additional units
CHMAIL
Character string containing the message to be printed by GMAIL
LIN and LOUT are defined in GINIT through ZEBRA. NUNITS and LUNITS are reserved for user-declared ZEBRA files.

+---------------------------------------------------------------------------------+
|+SEQ /GCVOLU/ Multi-level current volume description |
+---------------------------------------------------------------------------------+
                                  

      COMMON/GCVOLU/NLEVEL,NAMES(15),NUMBER(15),
     +LVOLUM(15),LINDEX(15),INFROM,NLEVMX,NLDEV(15),LINMX(15),
     +GTRAN(3,15),GRMAT(10,15),GONLY(15),GLX(3)
C

NLEVEL
Level at which the last search stopped.
NAMES
Volume names at each level. (ASCII codes stored in an integer, 4 characthers per word)
NUMBER
Volume copy numbers at each level.
LVOLUM
System volume numbers at each level.
LINDEX
Physical tree volume indices at each level.
INFROM
NLEVMX
NLDEV
LINMX
GTRAN
x,y,z offsets of the cumulative coordinate transformation from the master system to the system at each level.
GRMAT
Rotation matrix elements for the cumulative transformation from the master system to the system at each level. GRMAT(10,LEVEL)= 0 indicates the null rotation.
GONLY
Uniqueness flags at each level.
GLX
Current point in local coordinates system (local use only!)
+----------------------------------------------------------------------------------------------------------------+
|+SEQ /GCVOL2/ Back-up for /GCVOLU/ |
+----------------------------------------------------------------------------------------------------------------+
                                  

+-------------------------------------------------------------------------------------------+
|+SEQ /GCXLUN/ Logical units number for the interactive version |
+-------------------------------------------------------------------------------------------+
                                  

      COMMON/GCXLUN/LUNIT(128)
*

LUNIT
Logical units numbers