Как установить geant4 на windows 10

Required before go ahead: Ubuntu or Bash on Ubuntu on Windows (Windows Subsystem Linux)X window server (X ming)cmake: > version 3.5 About installing Bash on Ubuntu on Windows, view here 1. What …

Required before go ahead:

  • Ubuntu or Bash on Ubuntu on Windows (Windows Subsystem Linux)
  • X window server (X ming)
  • cmake: > version 3.5

About installing Bash on Ubuntu on Windows, view here

1. What is Geant4

Geant4 is a toolkit for the simulation of the passage of particles through matter. It is mostly used for particle experiment.

2. Install Geant4

At now (2017/08/30), 10.03.p02 is the newest version of Geant4. If you want to install another version one, edit numbers and patches

Preparation:

sudo apt-get install libxerces-c3-dev qt4-dev-tools freeglut3-dev libmotif-dev tk-dev cmake libxpm-dev libxmu-dev libxi-dev

1. Make work directory

cd /opt
sudo mkdir path/geant4
cd geant4

2. Downlaod sourch

sudo wget http://geant4.web.cern.ch/geant4/support/source/geant4.10.03.p02.tar.gz
sudo tar -zxf geant4.10.03.p02.tar.gz

3. Build

$ sudo mkdir geant4.10.03.p02-build
$ cd geant4.10.03.p02-build
$ sudo cmake 
    -DCMAKE_INSTALL_PREFIX=../geant4.10.03.p02-install 
    -DGEANT4_INSTALL_DATA=ON 
    -DGEANT4_USE_OPENGL_X11=ON 
    -DGEANT4_USE_GDML=ON
 
    -DGEANT4_USE_XM=ON
 
    -DGEANT4_USE_QT=ON
 
    -DGEANT4_BUILD_MULTITHREADED=ON 
    ../geant4.10.03.p02

After cmake, make

$ make -j

After make、make install

$ make install -jN

4. Add Path

After Install, add path to .bashrc on your home directory (~/.bashrc)

##
# GEANT4
##
source /opt/geant4/geant4.10.03-install/bin/geant4.sh" 

5. Test

Use example/basic

$ mkdir workspace
$ mkdir workspace/g4work
$ mkdir workspace/g4work/basic
$ cd workspace/g4work/basic
$ cp -r /opt/geant4/geant4.10.03.p02/examples/basic/B2
$ mkdir B2-build
$ cd B2-build
$ cmake ../B2
$ make -j
$ cd B2b
$ ./exampleB2b

references:

  • Geant4 Installation Guide – CERN
  • G4Training < Main < TWiki


Содержание

  1. Установка Geant4
  2. Где скачать исходники
  3. Куда установить Geant4
  4. Настраиваем установку Geant4
  5. Если возникли ошибки при установке Geant4
  6. Первая ошибка
  7. Вторая ошибка
  8. Третья ошибка
  9. Четвертая ошибка
  10. Компиляция и установка Geant4
  11. Поздравляю, Geant4 установлен!
  12. Сборка и запуск примера на Geant4
  13. Подготовка к компиляции примера на Geant4
  14. Создание файла CmakeLists.txt для CMAKE
  15. Сборка программы Geant4
  16. Запуск программы на Geant4
  17. Не заданы переменные среды
  18. Нет внешних дополнительных данных
  19. «Мистическое» поведение программы в процессе разработки
  20. Geant4 Introduction Course
  21. Friday, February 27, 2015
  22. 7 comments:
  23. Installing Pre-Compiled Geant4 on Windows
  24. Prerequisites
  25. Unpacking Geant4
  26. Полный рабочий пример на Geant4 с визуализацией
  27. Запуск примера
  28. Схема установки примера
  29. Исходный код проекта
  30. Задание геометрии детектора
  31. Классы инициализации проекта
  32. Make файл
  33. Визуализация и консольный запуск

Установка 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 и будут находится все файлы его касающиеся.

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

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

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

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

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

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

В принципе можно запустить только этого тоже должно хватить для установки Geant4.

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

install Geant4Сообщение об успешной сборке Geant4

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

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

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

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

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

Не найден пакет EXPAT

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

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

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

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

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

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

Не хватает файлов исходных файлов или пакета разработки для QT

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

Не хватает файлов разработки для X11

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

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

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

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

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

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

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

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

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

Источник

Сборка и запуск примера на Geant4

В этом уроке разберем как собирать и запускать проект на Geant4 для Ubuntu, линукса. Для Windows разбор будет опубликован позже, однако принцип тот же самый.

Подготовка к компиляции примера на Geant4

Следует понимать, что проект или программа Geant4 работает используя его как библиотеку, берет из него необходимые классы, данные сечений, параметров частиц и так далее. Поэтому, для компиляции нужно предварительно указать где лежит Джант, и все необходимые исходные данные.

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

описание которой было дано ранее в этой статье.

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

Для примера, директория другой версии Geant

Схематично этот путь выглядит так:

Создание файла CmakeLists.txt для CMAKE

Для сборки проекта используется CMAKE, это специальная утилита для автоматической сборки приложений. Она существенно упрощает сборку и компиляцию программ.

В файлах примеров с этого сайта и в примерах Geant4 присутствует файл CmakeLists.txt, который необходим для работы CMAKE. В нем присутствуют инструкции для сборки примеров. Перед сборкой убедитесь, что в системе присутствует установленный CMAKE нужной версии.

cmake versionПроверка версии CMAKE, как правило нужна версия выше 2.6

В примерах требуется CMAKE версии новее 2.6. В качестве исходника можно использовать файл из статьи о простом примере на Geant4.

При минимальной правке стоит обратить внимание только на следующие строчки из CmakeLists.txt файла:

В частности /src/*.cpp — в какой папке в проекте находятся файлы исходного кода и их расширение, а так же /include/*.hh — в какой директории находятся заголовочные файлы.

Сборка программы Geant4

Итак, немножко затронем культуру программирования, как компилировать программу с CMAKE правильно.

Т.е. пусть все наши проекты будут в папке

и в дальнейшем будем работать в ней, но команды попробуем сделать все относительные, что бы не зависеть от того, где лежит проект.

Итак, важное правило программирования: директории, где находятся исходники проекта, где собирается проект и где он устанавливается, должны быть разными!

В статье, где описывается установка Geant4, сделано по этому принципу.

Мы пока просто учимся и устанавливать проект не будем, поэтому пока обойдемся двумя папками — исходников и сборки.

Итак, рядом с папкой, где лежат исходники, создадим папку для сборки.

В консоли команды выглядят так:

можем проверить что находимся в нужной папке командой

Geant4 project buildПодготовка к компилированию программы на Geant4

Далее собираем проект с помощью команды CMAKE

Можем компилировать в много поточном режиме

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

Запуск программы на Geant4

Для запуска исполняемого файла необходимо задать переменные среды для Geant4.

Для этого в консоли задаем команду

Если у вас другая версия Geant4, то схема команды

Пройдемся по основным ошибкам запуска

Не заданы переменные среды

Если просто запустить исполняемый файл — экзешник или бинарник, зачастую появится ошибка.

Для исправления нужно указать на файл geant4.sh в папке bin/ в директории установки

Т.е. открываем консоль, выполняем команду выше, исправив путь установки Джанта на свой, и в этой же консоли запускать программу.

Имя пользователя у меня black (производная от моего ника black-bycel, что по белоруски звучит как «чорны бусел» или по русски «чёрный аист». Это редкий вид аиста, живущего на Полесье, в глухих лесах и болотах, где людей практически нет.)

Нет внешних дополнительных данных

«Мистическое» поведение программы в процессе разработки

Иногда бывает «мистическое» поведение, когда программа то не видит новые файлы, то какие то классы, или ведет себя совершенно не понятно.

Возможно это проблема в коде, но очень часто так же и результат кэширования при компиляции. Команда очистить кэш компиляции

Если вы добавили новые файлы к проекту, то нужно еще раз запускать CMAKE.

Был случай, когда проект копировали в другую папку на другой компьютер и запуск CMAKE не помогал, просто поменялись все пути, а система сборки этого не видела. Вот здесь и важно правило программирования, что папка с исходными файлами и файлы компиляции находятся в разных папка. Мы просто удаляем все что находится в папке сборки, в консоли это можно сделать командой

Источник

Geant4 Introduction Course

The brief introductory course for MSU students involving my own experience

Friday, February 27, 2015

Capture1

Capture2

Capture3

Capture4

Capture6

Здравствуйте! У меня уже второй раз при попытке собрать g4 выскакивает вот такая ошибка. Не знаете, с чем может быть проблема?
https://yadi.sk/i/mKnB9x_Meynq5

Да, ручная загрузка помогла. Спасибо!
Но теперь еще одна проблема: скрипт, что мы пишем (myqtcreator.sh) открывается как обычный текстовый файл, и там, хм, негде нажать RUN. Может, надо что-то еще сделать, чтобы он стал исполняемым?

Народ! Если у вас вылетает сборка с какой-нибудь такой ошибкой:
с++: internal compile error: Killed (program cc1plus) и т.д.
Это означает, что у вас не хватает оперативной памяти!
Попробуйте два варианта решения проблемы. Первый: Запустите Task Manager и почистите свои фоновые процессы. Постарайтесь сделать так, чтобы объем свободной оперативы соответствовал величине, которую вы заявили для виртуальной машины.
После того, как вы это сделали и не помогло, переустановите виртуалку, увеличив объем выделяемой под нее опретивной памяти. Должно помочь.

Молодца! Все работает! Красава!

Всем привет!
А вот у меня после запуска примера b1 через Qt вылезает следующая ошибка, как быть?

Источник

Installing Pre-Compiled Geant4 on Windows

Prerequisites

To compile and use Geant4 under windows some additional tools are required. First you need Microsoft Visual Studio version 6 (with service pack 5 or later). This is commercial software that you will need to purchase and install. When installing Visual Studio you will be asked whether you want to allow it to modify your environment variables. I find it best to answer No to this question, and instead set the variables in my cygwin startup script (see below).

Secondly you will need to install cygwin, a Unix emulation layer for windows. The cygwin software is freely available from http://www.cygwin.com/. It can be quite tricky to install the correct components of the cygwin toolkit, but Norman Graf has written detailed installation instructions which are included on this CD. I find the easiest way to set up visual studio to run under cygwin is to modify my cygwin.bat file (normally in c:cygwin) as follows:

You may need to change the path to vcvars32.bat if you installed visual studio in a different location.

Unpacking Geant4

Open the ZIP file containing the pre-compiled Geant4:

Unpack the entire file into c: (or somewhere else if you prefer).

Start a cygwin shell, by clicking on the cygwin icon on your desktop:

Window1

Then issuing something like the following commands:

cd c:
cd geant4
source geant4-setup.sh

(If you unpacked Geant4 somewhere other than c: you will need to modify the geant4-setup.sh script appropriately)

Your done! Now you are ready to continue with the rest of the installation exercise.

Источник

Полный рабочий пример на Geant4 с визуализацией

Рассмотрим полностью рабочий пример на Geant4 с визуализацией, который «хоть что-то делает». Этот проект является более сложным, чем первый пример на Geant4, однако этот пример позволяет полноценно провести моделирование установки, записать спектр в файл, угловое распределение при попадании в детектор. Так же предыдущий пример существенно более прост, в том числе и для понимания основных частей проекта на Джанте.

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

Для запуска проекта в консоли смотрите сюда. Если же вы хотите все сделать «по человечески», с возможностью отлаживать программу, тогда вам нужно посмотреть статью об интеграции QtCreator и Geant4.

Схема установки примера

И начнем мы разбирать этот пример со схемы установки.

chema ustanovkiСхема моделируемой установки, P — источник частиц, протоны, 1 — мишень, 2 — чувствительная область, детектор.

У нас есть некий источник начальных частиц, из которого вылетают протоны. Обозначено через вектор P на рисунке. Далее частицы попадают на мишень 1, которая представляет собой некую пластинку. Первичные частицы взаимодействуют с мишенью и вместе с вторичными частицами попадают на детектор 2.

В детекторе у нас размещена чувствительная область, в которой мы и регистрируем частицы, узнаем их энергию и направление полета. Так как далее они нам не нужны, то все их «убиваем», т.е. уничтожаем. И после моделирование выводим спектр протонов и их угловое распределение.

Исходный код проекта

Основной файл проекта example2.cpp

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

Задание геометрии детектора

Далее заголовочный файл класса создания установки, детектора и объявления всех необходимых материалов ExG4DetectorConstruction01.hh

И заголовочные файлы класса чувствительной области детектора, где снимаются параметры частиц ExG4DetectorSD.hh

Однако следует помнить, что таким образом можно снимать параметры только для проекта не использующего распаралеливание.

А теперь файл реализации конструкции установки и детектора ExG4DetectorConstruction01.cpp

И файл реализации чувствительного объема ExG4DetectorSD.cpp

Классы инициализации проекта

Далее идут важные и обязательные файлы инициализации проекта ExG4ActionInitialization01.hh

И файл класса задания начальных частиц ExG4PrimaryGeneratorAction01.hh

Файл реализации инициализации ExG4ActionInitialization01.cpp

И файл реализации задания начального источника частиц ExG4PrimaryGeneratorAction01.cpp

Make файл

Так как изменилось имя проекта, то соответственно немного изменился CMakeLists.txt

Визуализация и консольный запуск

Для визуализации используется следующий файл vis.mac

А для простого, консольного запуска файл run1.mac

В других статья будут подробней разбираться команды отрисовки и запуска примеров Geant4.

Весь представленный код примера находится здесь.

Источник

Build Geant4 (including OpenGL visualization) using Cygwin on Windows

[Updated on Nov 15, 2019]

There has been a lack of official documentation on how to build Geant4 using Cygwin on Windows. This post is intended to fill the gap. All we need to do is to install several Cygwin packages, modify a couple of cmake scripts, and change a few lines of Geant4 source code.

Test conditions

  • Geant4 10.5.1
  • Windows 10 (64-bit)
  • Cygwin 64 version 3.0.7
  • gcc and g++ version 7.4.0
  • cmake version 3.14.5

The following Cygwin packages are required to build C++ project under CMake.

  • gcc-g++
  • cmake
  • make

The following Cygwin packages are required to build Geant4 core engine.

  • expat, libexpat-devel
  • zlib, zlib-devel

The following Cygwin packages are required to build Geant4 OpenGL visualization module.

  • libX11-devel
  • libXmu-devel
  • libGL-devel
  • xinit
  • xorg-server
  • xorg-x11-fonts-*

Steps

  • Modify cmake scripts.
    • In both cmakeModulesG4BuildSettings.cmake and cmakeModulesG4ConfigureCMakeHelpers.cmake, change CMAKE_CXX_EXTENSIONS from OFF to ON, i.e.
      set(CMAKE_CXX_EXTENSIONS ON)
      

      The above steps are crucial in that they let the compiler flag -std=gnu++11 be automatically added in place of the initial flag -std=c++11. On Cygwin -std=c++11 will make the Posix function posix_memalign() inaccessible, which will cause Geant4 compile errors.

  • Modify source code.
    • In sourceprocesseselectromagneticdnautilsincludeG4MoleculeGun.hh, add declaration of explicit specialization immediately after class definition:
      template<typename TYPE>
      class TG4MoleculeShoot : public G4MoleculeShoot
      {
      public:
          TG4MoleculeShoot() : G4MoleculeShoot(){;}
          virtual ~TG4MoleculeShoot(){;}
          void Shoot(G4MoleculeGun*){}
      
      protected:
          void ShootAtRandomPosition(G4MoleculeGun*){}
          void ShootAtFixedPosition(G4MoleculeGun*){}
      };
      
      // Above is class definition in Geant4
      // We need to add three lines of code here
      // to declare explicit specialization
      
      template<> void TG4MoleculeShoot<G4Track>::ShootAtRandomPosition(G4MoleculeGun* gun);
      template<> void TG4MoleculeShoot<G4Track>::ShootAtFixedPosition(G4MoleculeGun* gun);
      template<> void TG4MoleculeShoot<G4Track>::Shoot(G4MoleculeGun* gun);
      

      Otherwise the compiler would complain about multiple definition.

    • In sourceglobalmanagementsrcG4Threading.cc, comment out syscall.h include. Apparently Cygwin does not offer the OS specific header file syscall.h, and thus do not support multithreading in Geant4 that relies on syscall.h.
      // #include  // comment out this line
      
  • Create out-of-source build script. Due to lack of syscall.h in Cygwin, only single-threaded Geant4 can be built.
    • Release build
      cmake ../geant4_src -DCMAKE_C_COMPILER=/usr/bin/gcc.exe 
      -DCMAKE_CXX_COMPILER=/usr/bin/g++.exe 
      -DCMAKE_INSTALL_PREFIX=/opt/geant4/release 
      -DCMAKE_BUILD_TYPE=Release 
      -DGEANT4_USE_SYSTEM_EXPAT=ON 
      -DGEANT4_USE_SYSTEM_ZLIB=ON 
      -DGEANT4_INSTALL_DATA=ON 
      -DGEANT4_USE_OPENGL_X11=ON
      
  • Build.
    make
    

    For faster compile, use make -j6 which uses 6 parallel processes.

  • Install.
    make install
    
  • Visualization
    To visualize B1 example, in one Cygwin terminal:

    startxwin
    

    In another terminal:

    export DISPLAY=:0.0
    ./exampleB1.exe
    
  • Have fun with Geant4 !!! … and remember: If you love something, set it free.

Acknowledgement

Thanks to Charlie for making me aware of the issues in newer Geant4.

Premise

Since I found some difficulties in installing Geant4 on my Windows Subsystem for Linux (WSL), I decided to make an installation guide of Geant4, for myself (so that I can check all the passages when I format my PC) and for you, that are reading this blog article. If you already took a look at the article “How to install ROOT on Windows Subsystem for Linux“, you’ll notice that the first half of this article is perfectly identical. This happens because the first passages are common to the installation of ROOT on the WSL and because Geant4 uses almost the same libraries.

This guide will show how to make a clean installation on your Windows 10 PC of a powerful tool which is Linux. Keep in mind that not only Geant4 can be installed in this Windows Subsystem for Linux, but any linux-based software. You’ll also learn how to enable the Graphic User Interface, in order perform some simulations. Details on how to compile and run a Geant4 example are reported in another article of this blog.

Requirements

A Windows 10 PC

Preparing for the WSL

First of all, you have to go to Settings and click on Apps. On the right side of the window, you’ll find Programs and Features. If you click on that, the window will change and you’ll find on the left Turn Windows features on or off. By clicking on that, a pop-up will open with many option. Be sure to put the check on Windows Subsystem for Linux, then hit Ok and Restart Now.

Installing the WSL

Open the Microsoft Store and search for Ubuntu. Be sure to install the latest version (by now the last one is Ubuntu 20.04) by clicking, first on Get and then on Install. Follow the instructions and create a username with a password, which will be your account for the WSL.

You can start Ubuntu by searching Ubuntu or bash in the start menu.

The first thing to do with a new linux system is to bring it up-to-date, so open the terminal and hit:

sudo apt update && sudo apt upgrade

Then hit Y or Yes every time is asked to. Don’t forget to clean your system of the useless packages by hitting:

sudo apt autoclean && sudo apt autoremove

Once the upgrade is finished.

Enabling the Graphic User Interface (GUI) with XMing

You have noticed for sure that until now you only interacted with your linux system by hitting commands in the terminal, with no programs which have a graphic user interface. You’ll also notice that if you start any software you know has a GUI, you’ll receive an error (for instance calling gedit in the terminal or firefox).

You have to install an external graphic server that can manage the Ubuntu graphics, which is XMing. You can download it here. It’s very easy to install, just follow the installer instructions.

Now, if you kept open the terminal windows during the installation, you’ll notice that hitting firefox won’t get better. In fact, the XMing server has to be opened before the terminal is. So, to test it, you can open it by calling in the Start menu XMing and only then opening the terminal by calling Ubuntu.

If you don’t want to bother about it, I suggest to set XMing as a Start App, so that you don’t have to remember to open it before the terminal because it will be automatically executed.

Preparing for GEANT4 installation

First of all, you have to install the dependencies by hitting:

sudo apt-get install dpkg-dev cmake g++ gcc binutils libx11-dev libxpm-dev 
libxft-dev libxext-dev libxmu-dev python

I also suggest to install the optional packages:

sudo apt-get install gfortran libssl-dev libpcre3-dev 
xlibmesa-glu-dev libglew1.5-dev libftgl-dev 
libmysqlclient-dev libfftw3-dev libcfitsio-dev 
graphviz-dev libavahi-compat-libdnssd-dev 
libldap2-dev python-dev libxml2-dev libkrb5-dev 
libgsl0-dev libqt5opengl5-dev qt5-default libxerces-c-dev 
python3-dev python3-numpy-dev

Once is done, move to the Download area and choose a release which is compatible with your WSL. I chose the release 4.10.07.p2 for Ubuntu 20.04, which you can download here.

Once the compressed package is downloaded, open the terminal and hit:

sudo mv /mnt/c/Users/YOURUSERNAME/Downloads/geant4.10.07.p02.tar.gz /opt/

Be sure to change YOURUSERNAME with the name of the user you are logged in. If you don’t know, after Users/ start hitting the Tab button to enable the suggestions.

Now change your directory with:

cd /opt/

If you hit ls or ll you’ll obtain the name of the root package. Hit:

gunzip geant4.10.07.p02.tar.gz

It may not work for two reasons: gunzip is not installed (which you can solve by hitting sudo apt install gunzip) or because you did not use the super user command, so repeat the previous command putting at the top of the line “sudo“.

Now you’ll have a package named “geant4.10.07.p02.tar“. Extract it by hitting:

tar -xvf geant4.10.07.p02.tar

Usually you will obtain a folder named geant, but sometimes it can have the full name, so something like geant4.10.07.p02. Be sure to check with an ls command because the last part of the installation process will need the name of the folder.

Now we are going to compile the source code into the Geant4 libraries, so we can start creating two directories: one for the code building instructions, that will be named geant4-build, and one where Geant4 will be installed, called Geant4.

mkdir geant4-build && mkdir Geant4

Installing CLHEP and DAWN

Now, before starting the installation, I’d consider installing some other libraries that are very useful when coupled with Geant4, such as CLHEP (A Class Library for High Energy Physics) and DAWN (Drawer for Academic WritiNgs).

Go in /opt/ with:

cd /opt/

And then create a directory named CLHEP:

sudo mkdir CLHEP

Then, on CLHEP website, the appropriate version can be downloaded, I chose clhep-2.4.4.2. We now can move the package in the right directory and untar it by hitting:

sudo mv /mnt/c/Users/YOURUSERNAME/Downloads/clhep-2.4.4.2.tgz /opt/CLHEP/
sudo gunzip clhep-2.4.4.2.tgz && sudo tar -xvf clhep-2.4.4.2.tar

You should now have a folder named 2.4.4.2 containing CLHEP source file. Let’s create a build directory and compile the code with cmake:

sudo mkdir build && cd build
sudo cmake -DCMAKE_INSTALL_PREFIX=/opt/CLHEP ../2.4.4.2/CLHEP
sudo make 
sudo make install

Now we can clean the CLHEP directory by hitting:

sudo rm -r /opt/CLHEP/build
sudo rm -r /opt/CLHEP/clhep-2.4.4.2.tgz
sudo rm -r /opt/CLHEP/2.4.4.2

You should now have only three folders named “bin“, “include” and “lib” if you hid ls in your terminal. Installation of CLHEP is now done and we can move on DAWN. Let’s download from here, I chose the 3.91a version and insert the following instructions to create a directory, build the code and install DAWN in /opt/. Paste the following commands line by line, as you should have done till now.

cd /opt/
sudo mkdir DAWN
cd DAWN
sudo mv /mnt/c/Users/YOURUSERNAME/Downloads/dawn_3_91a.tgz .
sudo gunzip dawn_3_91a.tgz
sudo tar -xvf dawn_3_91a.tar
sudo mv dawn_3_91a/* .
sudo make clean
sudo make guiclean
sudo make
sudo make install

Finishing GEANT4 installation

Now we are finally ready to conclude Geant4 installation. Let’s get back to the build directory with:

cd /opt/geant4-build

Let’s now give instructions for Geant4 installation. You can activate or deactivate some extensions or libraries by using cmake instructions, so be aware of what you are doing now. We are going to install Geant4 in the folder with the same name under /opt/ and we are going to link both CLHEP and DAWN with the appropriate commands. Before hitting cmake let’s tell our WSL that CLHEP is installed by giving it the paths. Hit:

sudo nano /home/YOURUSERNAME/.bashrc

And paste the following at the end of the file:

sudo nexport CLHEP_DIR=/opt/CLHEP/
export CLHEP_INCLUDE_DIR=${CLHEP_DIR}/include/
export CLHEP_LIBRARY=${CLHEP_DIR}/lib/
export LD_LIBRARY_PATH=${CLHEP_LIBRARY}:${LD_LIBRARY_PATH}
export PATH=$CLHEP_DIR/bin/:$PATH

Then Ctrl+O to save and Ctrl+X to quit. To load the instructions you can close the WSL and reopen it. Then go back to the build directory with “cd /opt/geant4-build”. Once you have returned to the build directory, insert:

sudo cmake -DCMAKE_INSTALL_PREFIX=/opt/Geant4 -DGEANT4_USE_QT=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_RAYTRACER_X11=ON -DGEANT4_USE_GDML=ON -DGEANT4_USE_SYSTEM_CLHEP=ON -DGEANT4_INSTALL_EXAMPLES=ON /opt/geant4.10.07.p02

Carefully read if there is any error. If not hit:

sudo make

This process is the longest of all the installation. And finally:

sudo make install

Now Geant4 should be correctly installed on your WSL. Reopen .bashrc:

sudo nano /home/YOURUSERNAME/.bashrc

and paste the following at the end of the file:

# geant4
source /opt/Geant4/bin/geant4.sh

Now you are ready to build and run your first example!

Ph.D. student in chemistry?‍?  Homebrewer? Japanese language student ?? Webdesigner ? Amateur cook ?  What else? ☕️

Find out in a brief overview which describes the project. More detail is provided in the Introduction to Geant4, and in full journal articles NIM A 506 (2003) 250-303,  IEEE Nuc. Sci. 53 No. 1 (2006) 270-278 and NIM A 835 (2016) 186-225.

As you encounter questions or problems, please consult the FAQ or take advantage of the user support provided by Geant4 developers.

Installing Geant4

You can begin installing Geant4 by downloading the code from the distribution page. Next, consult the Installation Guide for the instructions required to set up Geant4 in your computing environment.

Building an Application

Once you have installed the toolkit, the Application Developers Guide will provide information and examples for building your own simulation application.

Getting Help

As problems arise, try browsing the user forum to see whether or not your problem has already been encountered. If it hasn’t, you can post it and Geant4 developers will do their best to find a solution. This is also a good place to discuss Geant4 topics in general.

Запуск и сборка примера на Geant4

В этом уроке разберем как собирать и запускать проект на Geant4 для Ubuntu, линукса. Для Windows разбор будет опубликован позже, однако принцип тот же самый.

Подготовка к компиляции примера на Geant4

Следует понимать, что проект или программа Geant4 работает используя его как библиотеку, берет из него необходимые классы, данные сечений, параметров частиц и так далее.
Поэтому, для компиляции нужно предварительно указать где лежит Джант, и все необходимые исходные данные.

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

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

описание которой было дано ранее в этой статье.

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

/home/black/geant4/install_path/geant4.10.03.p03-install/lib/Geant4-10.3.3

Для примера, директория другой версии Geant

/home/black/geant4/install_path/geant4.10.05-install/lib/Geant4-10.5.1

Схематично этот путь выглядит так:

install path/installed Geant4 folder/lib/Geant4-10.x.x

Создание файла CmakeLists.txt для CMAKE

Для сборки проекта используется CMAKE, это специальная утилита для автоматической сборки приложений. Она существенно упрощает сборку и компиляцию программ.

В файлах примеров с этого сайта и в примерах Geant4 присутствует файл CmakeLists.txt, который необходим для работы CMAKE. В нем присутствуют инструкции для сборки примеров.
Перед сборкой убедитесь, что в системе присутствует установленный CMAKE нужной версии.

Проверка версии cmake

Проверка версии CMAKE, как правило нужна версия выше 2.6

В примерах требуется CMAKE версии новее 2.6. В качестве исходника можно использовать файл из статьи о простом примере на Geant4.

При минимальной правке стоит обратить внимание только на следующие строчки из CmakeLists.txt файла:

# Расположение исходного кода и заголовочных файлов этого проекта
# Заголовочные файлы подключаются, значит что они будут показаны в
# IDE - среде разработки
file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cpp)
file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh)

В частности /src/*.cpp — в какой папке в проекте находятся файлы исходного кода и их расширение, а так же /include/*.hh — в какой директории находятся заголовочные файлы.

И строчки

# Добавление исполняемого файла и линковка его с библиотеками Geant4
 add_executable(example1 example1.cpp ${sources} ${headers})
   target_link_libraries(example1 ${Geant4_LIBRARIES})

где следует поменять название основного файла проекта, если у вас он отличается от example1.cpp.
И таким образом уже сформированный файл CmakeLists.txt подойдет практически под любой проект для Джанта.

Сборка программы Geant4

Итак, немножко затронем культуру программирования, как компилировать программу с CMAKE правильно.

Пусть наш проект лежит где-то в папке example1_rus,
для совсем новичков приведем полный путь

/home/black/geant4/projects/example1_rus

Т.е. пусть все наши проекты будут в папке

/home/black/geant4/projects/

и в дальнейшем будем работать в ней, но команды попробуем сделать все относительные, что бы не зависеть от того, где лежит проект.

Итак, важное правило программирования: директории, где находятся исходники проекта, там, где собирается проект и где он устанавливается, должны быть разными!

В статье, где описывается установка Geant4, сделано по этому принципу.

Мы пока просто учимся и устанавливать проект не будем, поэтому пока обойдемся двумя папками — исходников и сборки.

Итак, рядом с папкой, где лежат исходники, создадим папку для сборки.

  • Исходники example1_rus
  • Создаем папку сборки example1_rus-build и в неё заходим.

В консоли команды выглядят так:

cd /home/black/geant4/projects

создаем папку

mkdir example1_rus-build

в нее заходим

cd example1_rus-build/

можем проверить что находимся в нужной папке командой

pwd

Подготовка к компилированию программы

Подготовка к компилированию программы на Geant4

Далее собираем проект с помощью команды CMAKE

cmake -DGeant4_DIR=/home/black/geant4/install_path/geant4.10.05-install/lib/Geant4-10.3.3 ../example1_rus

где через параметр -DGeant4_DIR передаем папку из устанвоки Geant4, в которой находятся нужные файлы для сборки проекта. Вторым параметром указываем папку с исходниками. Так как она находится на директорию выше, указываем выйти выше и зайти в папку с исходниками example1_rus.

Далее компилируем

make

Можем компилировать в много поточном режиме

make -j4

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

Запуск программы на Geant4

Для запуска исполняемого файла необходимо задать переменные среды для Geant4.

Для этого в консоли задаем команду

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

Если у вас другая версия Geant4,
то схема команды

source path to Geant4 install/bin/geant4.sh

Пройдемся по основным ошибкам запуска

Не заданы переменные среды

Если просто запустить исполняемый файл — экзешник или бинарник, зачастую появится ошибка.

black@black-bycel:~/geant4/projects/example1_rus-build$ ./example1
 ./example1: error while loading shared libraries: libG4processes.so: cannot open shared object file: No such file or directory

Для исправления нужно указать на файл geant4.sh в папке bin/ в директории установки

source path to Geant4 install/bin/geant4.sh

Т.е. открываем консоль, выполняем команду выше, исправив путь установки Джанта на свой,
и в этой же консоли запускать программу.

Что бы не нужно было постоянно задавать переменные среды, можно эту команду поместить в файл .bashrc в родительском каталоге вашего пользователя.

У меня например в

/home/black

Имя пользователя у меня black (производная от моего ника black-bycel, что по беларуски звучит как «чорны бусел» (ударение на о и у) или по русски «чёрный аист». Это редкий вид аиста, живущего на Полесье, в глухих лесах и болотах, где людей практически нет.)

Нет внешних дополнительных данных

Иногда не до конца скачиваются дополнительные данные Geant4, необходимые для моделирования. Можно много времени потратить разбираясь в чем проблема, однако самый простой и быстрый рецепт — очищаем все содержимое папок сборки и установки Geant4. Переустанавливаем его и не забываем указать параметр -DGEANT4_INSTALL_DATA=ON
для CMAKE.

«Мистическое» поведение программы в процессе разработки

Иногда бывает «мистическое» поведение, когда программа то не видит новые файлы, то какие то классы, или ведет себя совершенно не понятно.

Возможно это проблема в коде, но очень часто так же и результат кэширования при компиляции.
Команда очистить кэш компиляции

make clean

Я бы рекомендовал ее выполнять каждый раз перед make.

Если вы добавили новые файлы к проекту, то нужно еще раз запускать CMAKE.

Был случай, когда проект копировали в другую папку на другой компьютер и запуск CMAKE не помогал, просто поменялись все пути, а система сборки этого не видела. Вот здесь и важно правило программирования, что папка с исходными файлами и файлы компиляции находятся в разных папка. Мы просто удаляем все что находится в папке сборки, в консоли это можно сделать командой

rm -r *

где команда rm — удалить, -r — удалять рекурсивно, т. е. папки и все что в них тоже, * — маска, в таком виде означает удалить все, так как подходит к любому файлу и папке. И заново собираем проект.

Рассмотрим процесс установки GEANT4.

  1. Скачиваем архив отсюда download page.
  2. Создаем директорию GEANT4 в своем домашнем каталоге.

  3. Распаковываем в неё скачанный архив.
  4. В директории GEANT4 создаем папки build и install. В папке build мы будем собирать GEANT4, а в папку install устанавливать.
  5. Опционально: можно скачать data-файлы, и разместить их в директории data, что бы затем использовать их при установке. Это совершенно необязательно, так как GEANT4 может скачать их сам при сборке.

Установка на Ubuntu

Сборка без дополнительных опций

  1. Устанавливаем необходимые утилиты для сборки: компилятор С++, cmake и консольный конфигуратор ccmake, а ткаже необходимые библиотеки:

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

  3. Открываем ccmake:

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

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

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

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

  7. Собираем GEANT4:

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

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

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

    cd ~
    mkdir temp
    cd temp
    mkdir build
    cd build
    cmake ../../GEANT4/install/share/Geant4-10.3.0/examples/basic/B1/ #путь до примера
    make
    ./exampleB1
  11. PROFIT
  12. Папку build мы не удалаем, так как она пригодится нам когда мы захотим пересобрать GEANT4 с другими опциями. Это позовлит нам в дальнейшем пересобирать только те файлы которые будут изменены.

Anaconda

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

Сборка дополнительных опций

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

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

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

    apt-get install libxerces-c3.1 libxerces-c-dev
    
  2. Запускаем ccmake в папке build.
  3. Установим значение ON для параметра GEANT4_USE_GDML.
  4. Конфигурируем, генерируем, собираем и устанавливаем.

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

Для GUI будем использовать qt — установим значение параметра GEANT4_USE_QT равным ON. Если хотим использовать qt4, то установите значение параметра  GEANT4_FORCE_QT4 равным  ON.

apt-get install qt5-default
#или apt-get install qt4-default libqt4-opengl-dev

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

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

  1.  Устанавливаем Anaconda или Miniconda c официального сайта.
  2. Устанавливаем необходимые пакеты:

    conda install -c anaconda gcc
    conda install libgcc
    conda install -c anaconda xerces-c
    conda install -c anaconda cmake
    conda install -c anaconda qt # если ставили miniconda
    
    
  3. Конфигурируем, генерируем, собираем и устанавливаем.


This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters

Show hidden characters

#! /usr/bin/env bash
sudo apt-get -y install
autotools-dev
axel
binutils
build-essential
cmake
console-setup
dpkg-dev
expat
freeglut3-dev
ftp
g++
g++-6
gcc
gfortran
imagemagick
libblas-dev
libblas3
libblas3gf
libboost-all-dev
libboost-dev
libboost-signals-dev
libcuda1
libcudart9.1
libexpat1
libexpat1-dev
libfftw3-3
libfftw3-bin
libfftw3-dev
libfftw3-long3
libfftw3-quad3
libgsl-dev
libhdf5-dev
liblapack-dev
liblapack3
liblapack3gf
libmpich-dev
libmpikmeans-dev
libmpikmeans1
libopenblas-base
libopenblas-dev
libopengl0
libopenmpi-dev
libopenmpi3
libtbb-dev
libtiff-dev
libwt-common
libwt-dev
libwt38
libwt40
libx11-dev
libxerces-c-dev
libxext-dev
libxft-dev
libxi-dev
libxmu-dev
libxpm-dev
libz3-dev
mpich
mpikmeans-tools
nmap
nvidia-cuda-dev
nvidia-cuda-doc
nvidia-cuda-gdb
nvidia-cuda-mps
nvidia-cuda-toolkit
nvidia-smi
openssh-server
perl-tk
qt5-assistant
qt5-default
qtbase5-dev
qtbase5-dev-tools
qtcreator
xzdec
mkdir ~/Sources
cd ~/Sources
wget -c http://cern.ch/geant4-data/releases/geant4.10.04.p02.tar.gz
tar -xzvf geant4.10.04.p02.tar.gz
mkdir geant4.10.04.p02-build
cd geant4.10.04.p02-build
cmake
-DGEANT4_INSTALL_DATA=ON
-DGEANT4_USE_HDF5=ON
-DGEANT4_BUILD_MUONIC_ATOMS_IN_USE=ON
-DGEANT4_USE_SYSTEM_ZLIB=ON
-DGEANT4_USE_QT=ON
-DGEANT4_USE_GDML=ON
-DGEANT4_BUILD_MULTITHREADED=ON
-DCMAKE_INSTALL_PREFIX=/opt/geant4
../geant4.10.04.p02
make
sudo make install

Понравилась статья? Поделить с друзьями:
  • Как установить google play на windows 11 2022
  • Как установить gds2 на windows 7
  • Как установить google disk для windows 10
  • Как установить gcc на windows 10 через командную строку
  • Как установить google chrome по умолчанию на windows 10