Це стара версія документу!
GEANT4 — это программный пакет для моделирования прохождения частиц через вещество методом Монте-Карло. Является одним из основных программных инструментов, используемых в CERN.
Будем следовать рецепту1) с официального сайта GEANT4. Установим пакеты, которые потребуются для сборки GEANT4:
apt-get install build-essential cmake libexpat1-dev
Если планируется использовать поддержку OpenGL, то:
apt-get install libglu1-mesa-dev libxmu-dev
Если планируется использовать интерфейс Qt, то:
apt-get install libqt4-dev
mkdir geant cd geant wget -cS 'http://geant4.cern.ch/support/source/geant4.10.00.p02.tar.gz' tar xvf geant4.10.00.p02.tar.gz mkdir geant4.10.00.p02-build cd geant4.10.00.p02-build/
Без поддержки OpenGL (или интерактивного графического интерфейса вообще? ) :
cmake -DCMAKE_INSTALL_PREFIX=/home/user/geant/geant4.10.00.p02-install -DGEANT4_INSTALL_DATA=ON -DGEANT4_BUILD_MULTITHREADED=ON /home/user/geant/geant4.10.00.p02
С поддержкой OpenGL для X11:
cmake -DCMAKE_INSTALL_PREFIX=/home/user/geant/geant4.10.00.p02-install -DGEANT4_INSTALL_DATA=ON -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_USE_OPENGL_X11=ON /home/user/geant/geant4.10.00.p02
Для поддержки интерфейса Qt:
-DGEANT4_USE_QT=ON
time make -j4 make install
В этом примере моделируется прохождение γ-квантов с энергией 6 МэВ через мягкие ткани и кость человека, помещённые в водную среду.
cd /home/user/geant/ cp -r geant4.10.00.p02/examples/basic/B1 ./ mkdir B1-build cd B1-build/ . /home/user/geant/geant4.10.00.p02-install/bin/geant4.sh
С использованием графического интерфейса OpenGL: cmake -DWITH_GEANT4_UIVIS=ON -DGeant4_DIR=/home/user/geant/geant4.10.00.p02-install/lib/Geant4-10.0.2/ ../B1
cd /home/user/geant/B1-build/ ./exampleB1
После запуска видим приглашение. Запустим в нём процесс моделирования пролёта частиц. Для того, чтобы просчитать траектории 10 частиц вводим2):
Idle> /run/beamOn 10
Если используется графический интерфейс, в нём должны появиться траектории 10 частиц.
Как видим, кроме зелёных траекторий исходных частиц появились ещё и красные траектории частиц, образовавшихся в результате взаимодействия исходных частиц со средой. Разными цветами GEANT4 показывает частицы разного заряда. Так траектории положительно заряженных частиц отображаются синим цветом, отрицательно заряженных – красным, а нейтральных – зелёным3).
Полученное изображение можно экспортировать в файл. Для интерфейса OpenGL это делается так:
Idle> /vis/ogl/printEPS File G4OpenGL_0.eps has been saved
Просмотреть EPS-файл можно при помощи команды display
, входящей в пакет ImageMagick:
display G4OpenGL_0.eps
А можно преобразовать в какой-нибудь другой формат. Например,
convert G4OpenGL_0.eps G4OpenGL_0.png
Некоторая модификация поставленной в примере задачи возможна даже без перекомпиляции примера, а только используя его внутренние команды. Например, можно легко изменить энергию налетающих частиц:
Idle> /gun/energy 1 GeV Idle> /run/beamOn 10
Как видим, после увеличения энергии исходных γ-частиц до 1 ГэВ на рисунке появились траектории синего цвета, а это означает, что при таких энергиях становится возможным рождение положительно заряженных частиц, чего не наблюдалось в этом примере ранее.
Обратим также внимание на то, что жёлтые точки, обозначающие места взаимодействия частиц со средой, на красных и синих траекториях разположены гораздо гуще, чем на зелёных. Это вполне соответствует действительности, так как длина свободного пробега заряженных частиц меньше, чем у нейтральных частиц.
Включим отображение границ объёма, в который помещены исследуемые тела. В рассматриваемом примере B1 существует некий общий объём с названием World
, заполненный воздухом, в котором выделен другой объём под названием Envelope
, заполненный водой. Включим отображение их границ:
Idle> /vis/geometry/set/visibility/ World 0 true Idle> /vis/geometry/set/visibility/ Envelope 0 true
После этого появятся границы указанных объёмов, но они будут непрозрачными. Чтобы сделать их прозрачными, изменим стиль отображения логических объёмов:
Idle> /vis/viewer/set/style w
Однко теперь и внутренние исследуемые тела также стали прозрачными. Чтобы вернуть непрозрачность только этим исследуемым телам, делаем так:
Idle> /vis/geometry/set/forceSolid Shape1 0 true Idle> /vis/geometry/set/forceSolid Shape2 0 true
Теперь попробуем изменить тип и энергию налетающих частиц:
Idle> /gun/particle alpha Idle> /gun/energy 500 MeV
И снова запустим моделирование:
Idle> /run/beamOn 10
Geant4 User's Guide for Application Developers
http://wiki.opengatecollaboration.org/index.php/Users_Guide_V6:Introduction
http://geant4.slac.stanford.edu/tutorial/mcgill06/HandsOn3/HandsOn3.htm
http://www.jlab.org/conferences/geant4/
http://en.wikipedia.org/wiki/Geant4
http://geant4.org/geant4/index.shtml
MCNP5 AND GEANT4 COMPARISONS FOR PRELIMINARY FAST NEUTRON PENCIL BEAM DESIGN AT THE UNIVERSITY OF UTAH TRIGA SYSTEM by Christian Amevi Adjei