Установка Geant4

Установка Geant4

Для установки Geant4 нам понадобится Linux и Cmake. В данном примере установка проходила на Ubuntu 16.04 и cmake 3.5.1.

Описанный способ установки подходит для версии Geant4 начиная с 9.6, только необходимо проследить, какая версия cmake потребуется для установки Джанта.

Где скачать исходники

Официальный сайт Geant4 сейчас находится по адресу http://geant4.web.cern.ch и на нем можно скачать последнюю версию Geant4. Установочные файлы предоставляются в виде исходных кодов в разделе «Source files» в виде архива tar или zip.

Можно еще устанавливать из предварительно скомпилированных исходников, это раздел «Pre-compiled Libraries», но советую устанавливать именно из исходников, так как тогда финальная собранная программа будет работать быстрее.

Итак, скачиваем исходник, файл geant4.10.03.p03.tar.gz

Куда установить Geant4

Далее, для удобства выделяем специальную папку в домашней директории, где будет установлен Geant4 и будут находится все файлы его касающиеся.

/home/black/geant4/install_path

Назвать директорию можно как угодно, но лучше избегать пробелов и если у вас локаль в системе не UTF8, тогда путь должен быть весь только английскими буквами и цифрами, иначе могут начаться проблемы из-за отличия в кодировках.

Разархивируем архив, по умолчанию он распаковывается в папку geant4.10.03.p03, полный адрес к ней теперь

/home/black/geant4/install_path/geant4.10.03.p03

Что бы установить Geant4 создадим еще две директории

geant4.10.03-build
geant4.10.03-install

Как понятно из названия, папка с build предназначена для компиляции, а с install для установки.

Настраиваем установку Geant4

Открываем консоль и заходим в папку geant4.10.03-build

cd /home/black/geant4/install_path/geant4.10.03-build

Для начала необходимо запустить cmake и с полноценными параметрами запуска команда будет выглядеть так:

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 -DGEANT4_BUILD_MULTITHREADED=ON

где -DCMAKE_INSTALL_PREFIX — путь, куда устанавливать, ../geant4.10.03.p03 — папка, где лежат исходники, она находится на директорию выше, иначе лучше указать полный путь, -DGEANT4_INSTALL_DATA — включать ли загрузку данных при установке, по умолчанию выключено, но предлагаю включить, пусть все скачает, что бы потом не возникали проблемы что не хватает данных, скачает примерно 500 Мбайт, -DGEANT4_USE_QT — включить использование QT, и -DGEANT4_USE_OPENGL_X11 — возможность отрисовать с помощью OpenGL в окошке, если не работает QT. -DGEANT4_BUILD_MULTITHREADED — опция многопоточности, в версии 4.11 опция включена по умолчанию. Компиляция по умолчанию настроена на выпуск, в Release, т.е. в Geant4 отладки нет, для настройки отладки Debug смотрите здесь.

В принципе можно запустить только

cmake -DCMAKE_INSTALL_PREFIX=../geant4.10.03.p03-install ../geant4.10.03.p03
этого достаточно для установки Geant4.

Вывод получился такой:

-- 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
успешная сборка Geant4
Сообщение об успешной сборке Geant4

Самое важное, или есть в конце эти строчки

-- Configuring done
-- Generating done
-- Build files have been written to:

они говорят об успешной отработке cmake и если они есть, то можно далее приступать к компиляции. Если есть ошибки, смотрите следующий раздел.

Если возникли ошибки при установке Geant4

Однако на свежей установке Ubuntu может выдать ошибки, когда не хватает некоторых пакетов, вот примеры

Первая ошибка

Не найден пакет 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)

Решение поставить пакет expat через synaptic или командой

sudo apt-get install  expat

Иногда это не работает, тогда попробуем команду:

sudo apt-get install libexpat1-dev

Вторая ошибка

Не хватает файлов QT

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)

Решение установить QT4

sudo apt-get install qt4-qmake

или

sudo apt-get install qt4-default

Так же следует смотреть внимательно, в более новых версиях вероятно требуется версия QT5.

Третья ошибка

Не хватает файлов исходных файлов или пакета разработки для 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

Так же следует смотреть внимательно, в более новых версиях вероятно требуется версия QT5.

Четвертая ошибка

Не хватает файлов разработки для 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

На чистой установке Ubuntu 18.04 LTS потребовалось установить немного больше, команда:

sudo apt-get install libx11-dev libxmu-dev

При чистой установке Ubuntu больше ошибок не возникает, проверено на Ubuntu 18.04 LTS в июне 2018 года.

Установка Geant4.11

Установка Geant4.11 не отличается от установки Geant4.10, принцип тот же. Качаем архив с исходниками и распаковываем в директорию geant4-v11.0.3.

Создаем директории geant4-v11.0.3-install, geant4-v11.0.3-build и заходим в последнюю:

cd geant4-v11.0.3-build

И запускаем

cmake -DCMAKE_INSTALL_PREFIX=../geant4-v11.0.3-install ../geant4-v11.0.3 -DGEANT4_INSTALL_DATA=ON  -DCMAKE_BUILD_TYPE=Debug -DGEANT4_USE_QT=ON

Дальше смотрите в следующем разделе.

Компиляция и установка Geant4

Далее после успешного выполнения cmake компилируем все командой

make

Что бы процесс проходил быстрее компиляцию можно проводить не нескольких ядрах процессора, у меня 4 потока, поэтому компилирую командой

make -j4

После компиляции выполняем установку

make install

Поздравляю, Geant4 установлен!

Полное руководство на английском можно найти по ссылке http://geant4-userdoc.web.cern.ch/geant4-userdoc/UsersGuides/InstallationGuide/html/installguide.html

Для того что бы использовать именно эту установку Geant4, установите пути в консоли в которой будете собирать и выполнять проект на Geant4 командой:

source /home/black/geant4/install_path/geant4.10.03-install/bin/geant4.sh

Более кратко, нужно указать путь к файлу geant4.sh в директории установки

source path-to-geant4-install/bin/geant4.sh

Про запуск примера можно почитать здесь.

Удачи!