Установка¶
Подготовка к работе и установка программ¶
Для работы я буду использовать ОС 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
для установки дополнительных библиотек.
Устанавливаем 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
Конфигурируем, генерируем, собираем и устанавливаем согласно базовой инструкции.
Запуск примера¶
Для проверки работостособности запустим один из примеров.
Создадим директорию для сборки примера:
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 событий. Команды в общем виде имебт следующую структуру:
\раздел\подраздел\...\команда обязательный\_аргумент ... [необязательный\_аргумент] ...
Все команды распределены по разделам для удобства (относительного) ориентации и могут иметь или не иметь аргументы. Аргументы могут быть обязательными и необязательными, для последних есть значения по умолчанию. При вводе команнда и аргументы разделяются пробелом.
Разбор полезных команд мы будет производить более детально в соответсвующих тематических параграфах.