The hadron code implemented in SNOMAN is based on the structure currently used for muons. Newly introduced code typically has the prefix "hadron" as part of the name. Most of the code has only been added to snoman. However, a few control routines (mainly, tkmain.for, vxcern.for, and vxint.for) have been altered to accommodate hadron control.
Any hadron that is present within SNOMAN (including neutrons with energies above 20 MeV) is handled by the new hadron code. The code takes care of the following physics processes:
Ionization and Cerenkov production are handled in much the same way as is done for muons, and the routines are nearly identical. Decay of unstable particles are handles by the gdeca2.for and gdeca3.for routines, which are derivative of geant routines. T he decay routines isotropically decay particles in 2 and 3 body decays. Finally, hadron-nucleon interactions are handled by FLUKA and GCALOR routines[31]. FLUKA and GCALOR are pre-existing hadron routines widely used in high energy physics. Certain routines have been modified so as to interface with SNOMAN. These routines work very well from 20 MeV to 1 TeV.
The hadron code is invoked anytime it detects a hadron as one of the generated
routines, which can be introduced either via a hard interaction or from the
originally generated particle. The particles supported by the hadron code have
been placed into id_ particles.inc,phi_attributes.dat, and symbol_table.dat;
and are listed in Table 13.1. For the most part, particles were only
added to this list. EXCEPTION: Originally, names were set
aside for K_ZERO and
K_ZERO_BAR. Since the real particle states are and
, these names have been fixed.
The code makes use of a few data files for cross-section calculations. These files are chetc.dat and flukaaf.dat.