installation

Подготовка к работе и установка программ

Для работы я буду использовать ОС Ubuntu, однако большая часть излагаемого материала будет верна для любой платформы.

Для того что бы использовать GEANT4 мы должны его установить. Есть три способа сделать это:

  • Скачать скомпилированный GEANT4 (бинарную сборку) с официального сайта.

  • Скачать виртуальную машину с предустановленным GEANT4.

  • Скачать исходный код и скомпилировать его самостаятельно.

Для учащихся ещё только осваивающих мир linux, наиболее удобным будет второй путь, однако для практического использования наиболее правильным является последний пункт, по трем причинам. Во-первых, бинарная сборка не содержит некоторых библиотек необходимых нам для изучения тем продвинутого уровня, а также может не подойти к используемой вами платформе. Во-вторых, это позволяет попрактиковаться в сборке крупных библиотек на C++. В-третьих, исходный код нам все равно понадобится, как для лучшего понимания внутреннего устройства GEANT4, так и для решения наших прикладных задач.

Итак, мы скачали и распаковали архив с исходным кодом GEANT4.

Рассмотрим процесс установки GEANT4. Для его сборки нам необходимы некоторые библиотеки (их список дам в руководстве по установке), так же нам потребуются некоторые полезные утилиты.

Базовая сборка:

  • Процесс сборки описан для версии 4.10.03, однако данная инструкция может использоваться и для сборки других версий с небольшими отличиями в процессе.

  • Скачиваем архив с официального сайта.

  • Создаем директорию GEANT4 в своем домашнем каталоге.

  • Распаковываем в неё скачанный архив.

  • В директории GEANT4 создаем папки build и install. В папке build мы будем собирать GEANT4, а в папку install устанавливать.

  • Опционально: можно скачать data-файлы, и разместить их в директории data, что бы затем использовать их при установке. Это совершенно необязательно, так как GEANT4 может скачать их сам при сборке.

  • Устанавливаем необходимые утилиты для сборки: компилятор С++, cmake и консольный конфигуратор ccmake, а также необходимые библиотеки (для Debian/Ubuntu, в других дистрибутивах Linux вам следует использовать пакетный менеджер этого дистрибутива):

      sudo apt-get install g++ cmake cmake-curses-gui
      sudo apt-get install libexpat1 libexpat1-dev
  • Переходим в директорию build:

      cd ~/GEANT4/build
  • Запускаем ccmake:

      ccmake ../geant4.10.03

    Здесь в качестве аргумента команды ccmake используется путь до директории, распакованной из скаченного нами архива с GEANT4. ccmake читает расположенный в этой директории файл CMakeLIsts.txt, для того чтобы настроить параметры сборки.

  • После того как ccmake открылся, жмем клавишу c, если все нормально, то ccmake выдаст предупреждение об отсуствии data-файлов, которое можно смело проигнорировать. Так же может выдать ошибку если в системе не установлена какая-либо библиотека, тогда её надо доустановить.

  • Если ccmake успешно сконфигурировался, отредактируем следующие параметры:

    • CMAKE_INSTALL_PREFIX - по умолчанию он пытается утсановить GEANT4 в системную директорию, однако я предлагаю прописать здесь путь до папки install (если же вы будет устанавливать в директорию по умолчанию, то не забудьте добавить команду sudo перед make install).

    • GEANT4_INSTALL_DATA - установим значение ON, для того чтобы GEANT4 сам скачал data-файлы. Если у вас уже есть эти файлы, укажаите к ним путь в параметре GEANT4_INSTALL_DATADIR.

  • Жмем клавишу c, до тех пор пока не появиться опция нажать клавишу g. Жмем g. ccmake создаст makefile и закроется.

  • Собираем GEANT4:

      make -jN
      # где N количество ядер которое вы хотите задействовать,
      # посмотреть количество ядер можно в htop 
      # (sudo apt-get install htop)
  • Устанавливаем GEANT4:

      make install
      # если вы не изменяли параметр CMAKE_INSTALL_PREFIX, 
      # то используйте sudo make install, 
      # еще лучше воспользуейтесь checkinstall
  • Устанавливаем переменные окружения:

      source /path/to/install/bin/geant4.sh
      # Данную команду нужно прописать в ~/.bashrc для автоматической установки переменных среды.
  • Проверяем работоспособность на примерах согласно этому параграфу.

  • Папку build мы не удаляем, так как она пригодится нам когда мы захотим пересобрать GEANT4 с другими опциями. Это позволит нам в дальнейшем пересобирать только те файлы, которые будут изменены (не забудьте только изменить значение параметра, отвечающего за загрузку data-файлов, дабы не скачивать их несколько раз).

Если у вас в системе установлен пакет anaconda могут возникнуть проблемы с зависимостями библиотек. Это решается или удалением пути к anaconda из переменной PATH, или использованием anaconda (смотрим раздел Установка с помощью conda).

Подключение GDML

Для загрузки геометрии из внешних gdml-файлов, нам потребуется подключить GDML.

  • Устанавливаем необходимые библиотеки:

    sudo apt-get install libxerces-c3.1 libxerces-c-dev
  • Запускаем ccmake в папке build.

  • Установим значение ON для параметра GEANT4_USE_GDML.

  • Конфигурируем, генерируем, собираем и устанавливаем.

Подключение GUI

Для GUI будем использовать qt - установим значение параметра GEANT4_USE_QT равным ON. Если хотим использовать qt4 (а я рекомендую его использовать), то установите значение параметра GEANT4_FORCE_QT4 равным ON. Для установки необходимых зависимостей выполните:

sudo apt-get install libxmu-dev lubxmu

sudo apt-get install qt5-default
#или
sudo apt-get install qt4-default

Установка с помощью conda cross-linux

Если вы не имеет прав суперпользователя, или системные репозитории безнадежно устарели, или вы просто не хотите с ними связываться, то можно использовать пакетный менеджер conda для установки дополнительных библиотек.

  • Устанавливаем Anaconda или Miniconda c официального сайта.

  • Устанавливаем необходимые пакеты:

      conda install -c anaconda gcc
      conda install libgcc
      conda install -c anaconda xerces-c
      conda install -c anaconda cmake
      conda install -c anaconda qt

    Конфигурируем, генерируем, собираем и устанавливаем согласно базовой инструкции.

Last updated