HadronicPhysicsLists

Содержание

Использование стандартных пакетов физики в GEANT4

Зачем?

 Hard and EasyВ третьем, фортрановском, geant (http://wwwasd.web.cern.ch/wwwasd/geant/)'е никогда не возникало необходимости детально подстраивать работу неэлектромагнитных процессов. Да и вообще практически не нужно было менять внутренние параметры физики, поскольку основной задачей пакета было корректно моделировать распространение частиц в веществе — оно обусловлено, в основном, электромагнитным взаимодействием. Конечно, существовал еще пакет адронной физики GHEISHA, но и он был не особенно сложен в использовании.

В GEANT4 все изменилось существенным образом. Система теперь должна с максимальной точностью описывать по возможности все явления, происходящие в реальных детекторах, а это значит, что к простым электромагнитным моделям добавили еще множество разных других: оптические, адронные, возможно, еще какие-нибудь, о которых я даже не слышал. Более того, почти для каждого отдельного физического явления, сегодня существует несколько расчетных моделей (здесь под словом «модель» прежде всего понимается класс на [[Си++]], входящий в состав G4, численно описывающий тем или иным образом некоторое явление), и для корректной симуляции реальной установки необходимо попробовать их все, с тем чтобы понять, какая больше подходит в данном конкретном случае.

Но и это еще не все. Многие модели просто несовместимы друг с другом на программном уровне, а некоторые из них совсем никак не документированы. Например, для стандартной задачи GEANT4, моделирования прохождения частиц не очень большой энергии (порядка МэВов) через вещество, существует как минимум четыре разных набора процессов:

  • стандартный, включающий G4eIonisation и т. п.;
  • набор процессов LowEnergy, использующий базу данных экспериментальных сечений, куда входят такие процессы, как G4LowEnergyeIonisation;
  • стандартные процессы из версий 5.2 и 7.1

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

 Hadronic models inventoryДело обстоит гораздо хуже с адронными процессами. На картинке показана лишь часть из имеющихся моделей и их рабочая область энергии. Набор моделей так широк, что запутаться в них проще простого, плюс каждая имеет какой-нибудь параметр, который неизвестно из каких-соображений устанавливать. Например модель G4LElastic имеет параметры MinEnergy и MaxEnergy, и черт его разберет, во что их устанавливать. Плюс ко всему, количество процессов и частиц, которые необходимо зарегистрировать для корректного описания жизни, совершенно сумасшедшее. В общем, подводя черту, можно резюмировать: руками описывать адронную физику чревато. Ошибками, усталостью, головной болью и т. п.

Как?

Проблемы обозначены, поговорим о решении. Оно существует и, притом, удивительно простое и удобное. В папке G4INSTALL вы найдете директорию physics_lists, а в ней — еще две: electromagnetic и hadronic. Это и есть то, что нам необходимо, уже включенное в состав GEANT4, начиная с версии 7. Electromagnetic — это разнообразные пакеты электомагнитных процессов, они не так интересны, а вот hadronic… О, там больше десятка различных наборов физики для самых разных применений. А как применять, о том я расскажу. Но сначала, коротко, о представленном разнообразии моделей.

Все пакеты в наборе hadronic снабжены именами. Это в общем-то не оригинально. Выгодно отличает их на фоне всеобщей серости тот факт, что в имени каждого закодирована его суть. Вот как ее расшифровать:

  • LHEP: Low and High Energy Parameterized, это самая быстрая адронная модель, основанная на параметризации некоторых экспериментальных сечений;
  • QGSP: Quark Gluon String, эта модель немного медленнее, но и результат значительно точнее
  • FTFP: как расшифровывается, не знаю, но F точно отвечает за Fragmentation. Это как-то связвано со следующим заклинанием вуду: diffractive string excitation. Что это такое, я не знаю. Утверждается, что результат получается похожим на QGSP.

Плюс к этому в названии пакета обычно имеется еще несколько приставок.

  • BIC и BERT — это соответственно Binary Cascade и Bertini Cascade. Первый лучше, но значительно медленнее.
  • HP означает использование базы данных по прохождению нейтронов в веществе. Ее необходимо скачать отдельно с сайта G4.
  • Что такое PRECO, LBE, EMV и LEAD для меня так и осталось полнейшей загадкой.

Как выбрать, глаза разбегаются

При таком разнообразии, как выбрать нужный, единственный и неповторимый, пакет, лучше всего нам подходящий? А очень просто. Скажем, необходимо нам промоделировать рождение всяческих разнообразных частиц в водородной мишени при попадании в нее пучка электронов с энергией, скажем, 12 ГэВ. Не теряя времени на бабские причитания, мы идем на этот (http://geant4.web.cern.ch/geant4/physics_lists/), очень полезный сайт, который Ханс-Петер Веллих (J. P. Wellisch) для нас специально сделал. Там, в табличке, видим, что наша задачка отлично подходит под категорию «Medium Energy Production Targets», идем по ссылке, и выясняется, что для счастья ничего нам не надо, а только подавай пакет QGSP.


Ну а как его подключить?

Да проще простого. Предположим, вы выбрали, как и я, пакет QGSP и желаете теперь использовать его в своей революционной высоконаучной работе. Для этого вам надо просто подключить его, как вы раньше подключали свой PhysicsList. В основном файле программы включаете необходимый заголовочный файл

#include <QGSP.hh>

А дальше, в коде, вместо

runManager->SetUserInitialization(new PhysicsList); // было

делаете

runManager->SetUserInitialization(new QGSP); // стало

А потом добавляете еще вот в мейкфайл:

CPPFLAGS+=-I$(G4INSTALL)/physics_lists/hadronic/QGSP/include \
          -I$(G4INSTALL)/physics_lists/hadronic/Packaging/include

EXTRALIBS+=-L$(G4INSTALL)/lib/plists/Linux-g++/ -lQGSP -lPackaging  

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

Еще можно задавать каты. В vis.mac добавляете строчку

/run/setCuts 10 mm

и все у вас работает с катами 10 мм.

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

И последнее

Если линкер вопит об ошибках, зайдите в папку $G4INSTALL/source/physics_lists и наберите команду make.

Еще ссылки по теме

  1. Очень полезная и поучительная презентация (http://vserv.sinp.msu.ru/w/images/static/LCG4Physics.ppt)
  2. Еще одна (http://vserv.sinp.msu.ru/w/images/static/tutorial.had.g4.ppt)
  3. И еще (http://vserv.sinp.msu.ru/w/images/static/wellisch_3.pdf)

Но первая, конечно, вне конкуренции.

Edit page