Linux and Cmake are needed for this tutorial to install Geant4. Ubuntu 16.04 and cmake 3.5.1 was used.
The described installation method is suitable for Geant4 version starting from 9.6. The version of cmake depends on a version of Geant4.
How to get Geant4 source code
The official website of Geant4 is now located at http://geant4.web.cern.ch and there you can download last version of Geant4. Installation files are provided as source code in the Source Files section as a tar or zip archive.
You can also install from precompiled sources, it is the section «Pre-compiled Libraries». I advise you to install it from the source, since then the final programs will work faster.
So, let us download the last source file as
Where to install Geant4
Further, for convenience, a special folder is selected in the home directory where Geant4 will be installed and all files relating to it will be located.
You can name the directory as you like, but it is better to avoid spaces and if your locale in the system is not UTF-8, then the path should be all from English letters and numbers, otherwise problems may occur due to differences in encoding.
Unzip the archive, by default it is unpacked into a folder
geant4.10.03.p03, the full path to it now is
To install Geant4 create two directories
How it is clear from the names, the "build" folder is for compilation and with "install" is for the installation of Geant4.
Configuration of the Geant4 installation
Open the console and go to the folder
First you need to run cmake and the command with full launch options looks like:
cmake -DCMAKE_INSTALL_PREFIX=../geant4.10.03.p03-install ../geant4.10.03.p03 -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_QT=ON -DGEANT4_USE_OPENGL_X11=ON
-DCMAKE_INSTALL_PREFIX is a path of installation,
../geant4.10.03.p03 is the directory in which the source code is located. You can put
.. if it is located in the directory above, otherwise it is better to indicate the full path,
-DGEANT4_INSTALL_DATA enables data download during installation. It is turned off by default, but I propose to enable it, let download everything. In another case you can get problem with not not enough data. About 500 MB will be download.
-DGEANT4_USE_QT enables use of QT and
-DGEANT4_USE_OPENGL_X11 switchs on the ability to draw using OpenGL in the window if QT does not work. The compilation is configured for
Release by default, it means there is no debugging in Geant4, to configure debugging
Debug look here.
You can just run
it should be enough to install Geant4.
cmake -DCMAKE_INSTALL_PREFIX=../geant4.10.03.p03-install ../geant4.10.03.p03
The output is:
-- The C compiler identification is GNU 5.4.0 -- The CXX compiler identification is GNU 5.4.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found EXPAT: /usr/lib/x86_64-linux-gnu/libexpat.so (found version "2.1.0") -- Looking for Q_WS_X11 -- Looking for Q_WS_X11 - found -- Looking for Q_WS_WIN -- Looking for Q_WS_WIN - not found -- Looking for Q_WS_QWS -- Looking for Q_WS_QWS - not found -- Looking for Q_WS_MAC -- Looking for Q_WS_MAC - not found -- Found Qt4: /usr/bin/qmake (found version "4.8.7") -- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found -- Looking for gethostbyname -- Looking for gethostbyname - found -- Looking for connect -- Looking for connect - found -- Looking for remove -- Looking for remove - found -- Looking for shmat -- Looking for shmat - found -- Looking for IceConnectionNumber in ICE -- Looking for IceConnectionNumber in ICE - found -- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so -- Looking for sys/types.h -- Looking for sys/types.h - found -- Looking for stdint.h -- Looking for stdint.h - found -- Looking for stddef.h -- Looking for stddef.h - found -- Check size of off64_t -- Check size of off64_t - done -- Looking for fseeko -- Looking for fseeko - found -- Looking for unistd.h -- Looking for unistd.h - found -- Configuring download of missing dataset G4NDL (4.5) -- Configuring download of missing dataset G4EMLOW (6.50) -- Configuring download of missing dataset PhotonEvaporation (4.3.2) -- Configuring download of missing dataset RadioactiveDecay (5.1.1) -- Configuring download of missing dataset G4NEUTRONXS (1.4) -- Configuring download of missing dataset G4PII (1.3) -- Configuring download of missing dataset RealSurface (1.0) -- Configuring download of missing dataset G4SAIDDATA (1.1) -- Configuring download of missing dataset G4ABLA (3.0) -- Configuring download of missing dataset G4ENSDFSTATE (2.1) -- The following Geant4 features are enabled: GEANT4_BUILD_CXXSTD: Compiling against C++ Standard '11' GEANT4_USE_SYSTEM_EXPAT: Using system EXPAT library GEANT4_USE_QT: Build Geant4 with Qt support GEANT4_USE_OPENGL_X11: Build Geant4 OpenGL driver with X11 support -- Configuring done -- Generating done -- Build files have been written to: /home/black/geant4/install_path/geant4.10.03.p03-build
If there are these lines at the end
-- Configuring done -- Generating done -- Build files have been written to:
it means the successful development of cmake and you can start compiling. If there are errors, see the next section.
If you got errors while installing Geant4
However, on a fresh installation of Ubuntu some errors may appear when packages are missing, here are some examples
Not found package EXPAT
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message): Could NOT find EXPAT (missing: EXPAT_LIBRARY EXPAT_INCLUDE_DIR) Call Stack (most recent call first): /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE) /usr/share/cmake-3.5/Modules/FindEXPAT.cmake:56 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) cmake/Modules/Geant4OptionalComponents.cmake:102 (find_package) CMakeLists.txt:75 (include)
The solution is to install the expat package via synaptic or with the command
sudo apt-get install expat
Sometimes it doesn’t work, then try the command:
sudo apt-get install libexpat1-dev
Some QT files are missing
qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory CMake Error at /usr/share/cmake-3.5/Modules/FindQt4.cmake:1326 (message): Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x Call Stack (most recent call first): cmake/Modules/Geant4InterfaceOptions.cmake:117 (find_package) CMakeLists.txt:80 (include)
The solution is to install QT4
sudo apt-get install qt4-qmake
sudo apt-get install qt4-default
Missing source files or development kit (dev) for QT
CMake Warning at /usr/share/cmake-3.5/Modules/FindQt4.cmake:626 (message): /usr/bin/qmake reported QT_INSTALL_LIBS as "/usr/lib/x86_64-linux-gnu" but QtCore could not be found there. Qt is NOT installed correctly for the target build environment. Call Stack (most recent call first): cmake/Modules/Geant4InterfaceOptions.cmake:117 (find_package) CMakeLists.txt:80 (include)
sudo apt-get install libqt4-dev
Missing development files for X11
CMake Error at cmake/Modules/Geant4InterfaceOptions.cmake:225 (message): could not find X11 Xmu library and/or headers Call Stack (most recent call first): CMakeLists.txt:80 (include)
sudo apt-get install libx11-dev
On fresh installation of Ubuntu 18.04 LTS it required to install a more packages:
sudo apt-get install libx11-dev libxmu-dev
On fresh Ubuntu installation it wasn't more error. It was checked on Ubuntu 18.04 LTS in June 2018.
Compilation and installation of Geant4
After successfully executing cmake, compile the command
To make the process faster, compilation can be carried out on several processor cores. I have 4 threads and compile with the command
Install after compilation with command
Congratulations, Geant4 is installed!
For a more complete guide in English lock a link http://geant4-userdoc.web.cern.ch/geant4-userdoc/UsersGuides/InstallationGuide/html/installguide.html
In order to use this particular Geant4 installation, set the paths in the console where you will build and execute the project of Geant4 with the command:
More briefly, you need to specify the path to the file
geant4.sh in the installation directory
You can read about running the example. here.