The GEANT/GHEISHA Interface

+-------------+                                               +----------##
| Geant 3.10  |               GEANT User's Guide              | PHYS510  ##
+-------------+                                               +----------##
                                   

Author(s) : F.Carminati Submitted: 24.02.86 Origin : H.C. Fesefeldt Revised: 19.12.92

Introduction

This package contains an interface between GEANT and the hadronic shower development program GHEISHA [bib-GHEI].

This interface generates hadronic interactions with the nuclei of the current tracking medium according to the GHEISHA code (including cross sections calculation and final state multiplicity and kinematics), while the GEANT philosophy is preserved for the tracking. The GHEISHA code is stored in the GEANH car file. The GHEISHA printing flags are set via the SWIT card of GEANT with the following rule. Each switch greater than 100 but smaller that 111 sets the corresponding printing flag of GHEISHA module 100, so that SWIT 105 will set the printing flag 5 of GHEISHA. The printing flags of GHEISHA have the following meaning:

NPRT(1)
one header for each track in the shower
NPRT(2)
all tracking information
NPRT(3)
kinematic of decays (not effective)
NPRT(4)
kinematic of nuclear interactions
NPRT(5)
kinematic of electromagnetic interactions (not effective)
NPRT(6)
material constants, dE/dX and absorbed energies (not effective)
NPRT(7)
event summary
NPRT(8)
history of all interactions/decays
NPRT(9)
free
NPRT(10)
tables of the geometry, cross sections, etc.

NPRT(1), NPRT(2) and NPRT(6) should be used only in case of errors and bugs. NPRT(8) produces the most illustrative output. Those flags work in conjunction with the DEBUG data card (and the IDEBUG switch) of GEANT.

Description of the routines

 +----------------------------------------------------------------------+
 | CALL GHESIG (P,EK,AVER,A,Z,W,NLM,DENS,CORR,IPART) |
 +----------------------------------------------------------------------+
                                  

-1 This function returns the total macroscopic cross section in cm . The meaning of the parameters is:

P
momentum of the particle (in GeV/c)
EK
kinetic energy of the partcle (in GeV)
AVER
average mass number of the material
A
vector of length NLM containing the mass numbers of the components of the mixture, the same as AVER in case of a non compound material
Z
vector of length NLM containing the atomic numbers of the components ofthe mixture, or the atomic number in case of a non compound material
W
vector of length NLM containing the relative weights of the components of the mixture (normalized to one), one in case of a non compound material
NLM
number of components of the mixture, one in case of a non compound material
DENS
density of the material
CORR
correction flag, if this flag is set, then corrections are applied to the cross section in case of mixture (like BGO see below for more details)
IPART
GEANT particle code
t The correction flag, if present, is stored in the 26 h word of the second bank in the tracking medium linear structure pointed by LQ(JTMED- NUMED).

The cross sections on nucleus are known only for pions and protons. The general law:

                                        alpha
    sigma(A) =1. 25*sigma   .(Proton)* A
                         tot

is used but it is valid only for momenta > 2 GeV. The parametrisation done gives only a behaviour averaged over momenta and particle types. For a detector with only a few materials it would be of course much better to use tables of the measured cross sections. For H, Al, Cu and Pb the measured cross sections are stored in a data statement.

The cross section as stored are the GHEISHA cross section precalculated. As a starting point the measured cross sections of pion, kaon, proton, antiproton and neutron over protons are used. The cross sections tabulated are measured values taken from the CERN HERA compilations. The values for

0 0 K /K are updated until July 1980. Strange baryon cross section are s l calculated using a parametrisation in terms of quark quark forward scattering amplitudes and optical theorem. The additive quark quark scattering model is used. The quark scattering amplitude are defined as follow:

               =          =    P
               =          =    P
                =          =    0
               =          =    P - S
             =        =    P - S
               =          =    0
             =        =    P
             =        =    P + A
             =        =    A
                                                  2
               =                 =    (P-S) / P    2    2
             =                 =    (P+ A)*(P +S) ; /P
             =        =    A*(P - S)/P
                                  
and from these the following cross sections are computed:

  PI- P   =    6P + 2A
  PI+ P   =    6P + A
  K- P    =    6P + 2A - 3S
  K0S P   =    6P + A/2- 3S
  K0L P   =    6P + A/2- 3S
  K0 P    =    6P- 3S == >sigma(K0) = sigma(K+)
  K0B P   =    6P + A -3S == >sigma(K0B)= sigma(K+)/4+sigma; (K0L)/3+5sigma(K-)/12
  K+ P    =    6P - 3S
  P P     =    9P
  PB P    =    9P + 5A
  N P     =    9P
                                  

Then the following amplitudes are computed:

                  P    =   sigma(P,P)/9
                  A    =   (sigma(PB,P)-sigma(P,P))/5
                  S    =   2*sigma(P,P)/9-sigma(K+,P)/3
                                  

and from here:

                        NB P     =   9P + 4A
                        L P      =   9P - 3S
                        LB P     =   9P + 2A - 3S
                        S- P     =   9P - 3S
                        S+ P     =   9P - 3S
                        S-B P    =   9P + 2A - 3S
                        S+B P    =   9P + 4A - 3S
                        X0 P     =   9P - 6S
                        X- P     =   9P - 6S
                        X0B P    =   9P + 2A - 6S
                        X-B P    =   9P + A - 6S
                                  

All the cross sections are contained in data statements so no external file is needed.

                    +--------------------------------+
                    |CALL GPGHEI  |
                    +--------------------------------+
                                  

This routine returns the distance to the next hadronic interaction according to the GHEISHA cross sections. It calls GHESIG and has to be called by GUPHAD. The standard user routines suggested to be able to select the hadronic shower interface at compile time are the following:

 +DECK,GUPHAD.
        SUBROUTINE GUPHAD
 C.
 C   *************************************************************
 C.  *                                                           *
 C.  *                                                           *
 C.  *   GEANT3 user routine called at each step to evaluate     *
 C.  *   the remaining distance to the hadronic interaction point*
 C.  *                                                           *
 C.  *             (GHEISHA)uses the GHEISHA cross-sections      *
 C.  *                                                           *
 C.  *************************************************************
 C.
 C.
 C.-------------------------------------------------------------
 C.
       CALL GPGHEI
 C
       END
 +DECK,GUHADR.
 SUBROUTINE GUHADR
 C.
 C.**************************************************************
 C.*                                                            *
 C.*     GEANT3 user routine called when a hadronic process     *
 C.*     has been selected in the current step, in order to     *
 C.*     generate the final particle's state                    *
 C.*                                                            *
 C.**************************************************************
 C.
 C.
 C.--------------------------------------------------------------
 C.
        CALL GHEISH
 C
        END

The inclusion of these two routines, to be compiled with the PATCHY flag GHEISHA activated, is all the user has to do in order to switch on the GHEISHA code.

                    +--------------------------------+
                    |CALL GHEISH  |
                    +--------------------------------+
                                  

This is the main steering routine for the hadronic interactions and is basically a fan out switch yard to the various "cascade" routines of GHEISHA which treat the particular hadronic interaction. Here the kind of interaction that is going to happen is decided via the setting of the INT flag, with the following meaning:

INT=0
no interaction (NONE)
INT=1
elastic scattering occurs (ECOH)
INT=2
inelastic incoherent interaction occurs (INHE) 1 and 2 include also nuclear reaction processes at very low energies.
INT=3
nuclear fission with inhelastic scattering occurs (FISS)
INT=4
neutron nuclear captur occurs (CAPT)

Then the corresponding cascade routine is called. Upon exit from this there is a check whether the interaction has generated new particles or not. If yes, the particles generated are copied in the GEANT temporary stack (GKING). If the particle is an heavy fragment or a proton and it is below the energy cut specified via the CUTS data card, it is not stored in the stack but the kinetic energy is collected. There is a limit to 100 particles in the GEANT stack. The user is left to decide in GUSTEP what to do with these new tracks.This routine is called also in case of a stopping particle, i.e. particles with kinetic energy below the GEANT cuts. In this case the routine GHSTOP (see later) is called to handle the stopping particle. The printing flags for GHEISHA are also set in this routine according to the current value of IDEBUG.

This routine should be called by the user routine GUHADR (see above).

The tuning of the final state kinematics as well as the calculation of the cross sections (see GHESIG above) may be changed by four parameters which are. stored sequentially in the bank pointed to by LQ(JTMED- NUMED) (if any). These parameters are empirical corrections which at the moment have the values: 1. 0.7 1.2 0.5 and are currently set in GHEISHA for the following materials:

        +--------------+-------------------------------------------
        |              |               |                          |
        +---Material---+---Component---+---Rel.-number-of-atoms---+
        |              |               |                          |
        |     BGO      |      Bi       |            4             |
        |              |      Ge       |            3             |
        |              |      O        |           12             |
        |     CHK      |      C        |            1             |
        |              |               |                          |
        |              |      H        |            1             |
        |    CH05      |      C        |            1             |
        |              |      H        |            5             |
        |    CH10      |      C        |            1             |
        |              |      H        |           10             |
        |    CH50      |      C        |            1             |
        |              |               |                          |
        |              |      H        |           50             |
        |     PBD      |      C        |           20             |
        |              |      H        |           22             |
        |              |      N        |            2             |
        |              |      O        |            1             |
        |    POPOF     |      C        |           24             |
        |              |               |                          |
        |              |      H        |           16             |
        |              |      N        |            2             |
        |              |      O        |            2             |
        |     PPO      |      C        |           15             |
        |              |      H        |           11             |
        |              |      N        |            1             |
        |              |               |                          |
        |              |      O        |            1             |
        |     NAI      |      Na       |            1             |
        |              |      I        |            1             |
        |     CSI      |      Cs       |            1             |
        |              |      I        |            1             |
        |     LII      |      Li       |            1             |
        |              |               |                          |
        |              |      I        |            1             |
        |    CAI2      |      Ca       |            1             |
        |              |      I        |            2             |
        |     KI       |      K        |            1             |
        |              |      I        |            1             |
        |    PLEX      |      C        |            5             |
        |              |               |                          |
        |              |      H        |            8             |
        |              |      O        |            2             |
        |    MYLA      |      C        |            5             |
        |              |      H        |            4             |
        |              |      O        |            2             |
        |    AERO      |      Si       |            1             |
        |              |               |                          |
        |              |      O        |            4             |
        +--------------+------H--------+------------4-------------+
        |              |
                                  
The setting of the parameter for a given tracking medium can be achieved with the following piece of code:

      CALL GSTPAR(ITMED,'GHCOR1',1.0)
      CALL GSTPAR(ITMED,'GHCOR2',0.7)
      CALL GSTPAR(ITMED,'GHCOR3',1.2)
      CALL GSTPAR(ITMED,'GHCOR4',0.5)

The first parameter is actually a flag which, if different from 0 triggers the calculation of the cross section correction, but in view of future developments it is good practice set it to 1.0 when those corrections are required. ITMED is the tracking medium number as set in GSTMED for which corrections are requested.

                    +--------------------------------+
                    |CALL GHSTOP  |
                    +--------------------------------+
                                  

This is an internal routine used to handle stopping particles, called by GHEISH. Here again we have a switchyard to the various routines handling the low energy particles. In particular this routine can lead to nuclear absorption for negative pions and negative kaons (ABSO), to annihilation for antineutrons,and antiprotons (ANNH). The kinetic energy is completely absorbed, and in all the cases not mentioned above (excluding neutrons, protons,deuterons, tritiums and alphas particles) the particle is decayed at rest via the standard GEANT decay routine GDECAY.