Prerequisites

the following programs should be installed to have full functionality of the interface example. If the user is only interested in interfacing Geant4 with Garfield++, the installation of Degrad is not mandatory as it is used as an external build at runtime. On the other hand, it is not possible to build the project without a working version of Garfield++.

Geant4

Geant4 is used to simulate the primary interaction of the particle with the gas medium and for tracking the particles through the rest of the detector setup. The author used version 10.4p02 of Geant4. Hence, it is recommended to use a version at least as recent, since some parts of the interface code are not supported by previous versions.

Garfield++

Garfield simulates the secondary interactions in the gas such as ionization, electron drift, signal creation, etc… The author used revision 567. More recent versions should work as well.

Degrad

Degrad is the most detailed software package on the market regarding the interaction of particles with a gas medium. It includes a variety of processes subsequent to the primary ionization among which are, Auger, Coster-Kronig, shake-off and fluorescence emission. As mentioned above, the user can run the Interface project without an installation of Degrad, e.g. if the user is not interested in running a detailed simulation of ionisation and subsequent de-excitation processes. To run the Degrad part of the project an environment variable DEGRAD_HOME has to be defined, pointing to the folder containing the executable. For example, when using bash, this line should be added to your .bashrc file:

export DEGRAD_HOME=/home/mydir/degrad

Other

Installation of the following packages and libraries are required to build and/or run the Interface project. Which part of the project needs the particular prerequisite is mentioned in brackets.

  • A C++11 compiler
  • A fortran compiler, e.g. GFortran (for Degrad and Garfield++)
  • The ROOT framework (to build Garfield++)
  • python2.7 or python3x (for the Degrad part of the interface code)