+-------------+                                               +----------##
| Geant 3.12  |               GEANT User's Guide              | BASE030  ##
+-------------+                                               +----------##
                                   
                                   
Author(s) :                                            Submitted: 01.10.84
Origin    : GEANT3                                       Revised: 08.01.92
                                  
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.
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.
     +--------------------------------------------------------------+
     |+SEQ /GCCUTS/ Tracking thresholds |
     +--------------------------------------------------------------+
                                  
COMMON/GCCUTS/CUTGAM,CUTELE,CUTNEU,CUTHAD,CUTMUO,BCUTE,BCUTM, + DCUTE,DCUTM,PPCUTM,TOFMAX,GCUTS(5)
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
+---------------------------------------------------------------------------------+
|+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
    +----------------------------------------------------------------+
    | +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
+---------------------------------------------------------------------------------+
|+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
+----------------------------------------------------------------------------------------------------------------------+
|+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
+--------------------------------------------------------------------------------------------------------------+
|+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
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
+---------------------------------------------------------------------------------+
|+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)
+-------------------------------------------------------------------------+
|+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
+--------------------------------------------------------------------------+
|+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
+---------------------------------------------------------------------------+
|+SEQ /GCOPTI/ Control of Geometry optimisation |
+---------------------------------------------------------------------------+
                                  
      COMMON/GCOPTI/ IOPTIM
C
+------------------------------------------------------------------------------------+
|+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
 +----------------------------------------------------------------------+
 | +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
+------------------------------------------------------------------------+
| +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
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
+--------------------------------------------------------------------------------------------+
|+SEQ /GCPUSH/ Initial and incremental size of some mother banks |
+--------------------------------------------------------------------------------------------+
                                  
      COMMON/GCPUSH/NCVERT,NCKINE,NCJXYZ,NPVERT,NPKINE,NPJXYZ
C
+----------------------------------------------------------------------------+
|+SEQ /GCRZ/ Direct access files control variables |
+----------------------------------------------------------------------------+
                                  
      COMMON/GCRZ1/NRECRZ,NRGET,NRSAVE,LRGET(20),LRSAVE(20)
      COMMON/GCRZ2/RZTAGS
      CHARACTER*8 RZTAGS(4)
C
+------------------------------------------------------------------------+
| +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
*
+--------------------------------------------------------------------------+
|+SEQ /GSECTI/ Hadronic partial cross sections |
+--------------------------------------------------------------------------+
                                  
      COMMON/GSECTI/ AIEL(20),AIIN(20),AIFI(20),AICA(20),ALAM,K0FLAG
C
+---------------------------------------------------------------------------------------+
|+SEQ /GCSETS/ Identification of current sensitive detector |
+---------------------------------------------------------------------------------------+
                                  
      COMMON/GCSETS/IHSET,IHDET,ISET,IDET,IDTYPE,NVNAME,NUMBV(20)
C
+---------------------------------------------------------------------------+
|+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
*
+----------------------------------------------------------------------------------+
|+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
   +------------------------------------------------------------------+
   | +SEQ /GCTIME/ Execution time control |
   +------------------------------------------------------------------+
                                  
      COMMON/GCTIME/TIMINT,TIMEND,ITIME,IGDATE,IGTIME
C
+--------------------------------------------------------------------------------------+
|+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
+------------------------------------------------------------------------------------------+
|+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
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
+---------------------------------------------------------------------------------+
|+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
+----------------------------------------------------------------------------------------------------------------+
|+SEQ /GCVOL2/ Back-up for /GCVOLU/ |
+----------------------------------------------------------------------------------------------------------------+
                                  
+-------------------------------------------------------------------------------------------+
|+SEQ /GCXLUN/ Logical units number for the interactive version |
+-------------------------------------------------------------------------------------------+
                                  
      COMMON/GCXLUN/LUNIT(128)
*