Установка

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

Для работы я буду использовать ОС 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
    
- Устанавливаем переменные окружения:
    ```bash
    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 для установки дополнительных библиотек.

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

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

Запуск примера

Для проверки работостособности запустим один из примеров.

  • Создадим директорию для сборки примера:

    mkdir build
    cd build
    
  • Запустим систему сборки cmake:

    cmake path/to/GEANT4/install/share/Geant4-10.3.0/examples/basic/B1/ #путь до примера
    make
    
  • Если все отработало без ошибок, то запустим скомпилированный пример:

    ./exampleB1
    

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

Управление сеансом

Для взаимодействия с сеансом и изменения параметров модели пользователь может применять GEANT Shell - это интерактивная оболочка (консльная или графическая), позволяющаю изменять параметры геометрии, генератора частиц, визуализации и прочих параметров с помощью набора команд, а так же исполнющая написанные пользователем макросы. Так запустив пример из предыдущего параграфа мы как раз окажемся в этой интерактивной оболочек. Давайте попробуем провзаимодествовать с симуляцией. Введем в командную строку текст:

\run\beamOn 10

Данная команда запускает симуляцию на 10 событий. Команды в общем виде имебт следующую структуру:

\раздел\подраздел\...\команда обязательный\_аргумент ... [необязательный\_аргумент] ...

Все команды распределены по разделам для удобства (относительного) ориентации и могут иметь или не иметь аргументы. Аргументы могут быть обязательными и необязательными, для последних есть значения по умолчанию. При вводе команнда и аргументы разделяются пробелом.

Разбор полезных команд мы будет производить более детально в соответсвующих тематических параграфах.