HadronicPhysicsLists

Revision as of 08:00, 8 Jun 2006
217.20.214.8 (Talk | contribs)

← Go to previous diff
Revision as of 09:12, 8 Jun 2006
217.20.214.8 (Talk | contribs)

Go to next diff →
Line 19: Line 19:
===Как?=== ===Как?===
(ждите, скоро тут будет контент!!!) (ждите, скоро тут будет контент!!!)
 +
 +Проблемы обозначены, поговорим о решении. Оно существует и, притом, удивительно простое и удобное. В папке <tt>G4INSTALL</tt> вы найдете директорию <tt>physics_lists</tt>, а в ней&nbsp;&mdash; еще две: electromagnetic и hadronic. Это и есть то, что нам необходимо, уже включенное в состав GEANT4, начиная с версии&nbsp;7. Electromagnetic&nbsp;&mdash; это разнообразные пакеты электомагнитных процессов, они не так интересны, а вот hadronic&hellip; О, там больше десятка различных наборов физики для самых разных применений. А как применять, о том я расскажу. Но сначала, коротко, о представленном разнообразии моделей.
 +
 +Все пакеты в наборе hadronic снабжены именами. Это в общем-то не оригинально. Выгодно отличает их на фоне всеобщей серости тот факт, что в имени каждого закодирована его суть. Вот как ее расшифровать:
 +* LHEP: Low and High Energy Parameterized, это самая быстрая адронная модель, основанная на параметризации некоторых экспериментальных сечений;
 +* QGSP: Quark Gluon String, эта модель немного медленнее, но и результат значительно точнее
 +* FTFP: как расшифровывается, не знаю, но F точно отвечает за Fragmentation. Это как-то связвано со следующим заклинанием вуду: diffractive string excitation. Что это такое, я не знаю. Утверждается, что результат получается похожим на QGSP.
 +
 +Плюс к этому в названии пакета обычно имеется еще несколько приставок.
 +
 +* BIC и BERT&nbsp;&mdash; это соответственно Binary Cascade и Bertini Cascade. Первый лучше, но значительно медленнее.
 +* HP означает использование базы данных по прохождению нейтронов в веществе. Ее необходимо скачать отдельно с сайта G4.
 +* Что такое PRECO, LBE, EMV и LEAD для меня так и осталось полнейшей загадкой.
 +
 +====Как выбрать, глаза разбегаются====
 +
 +При таком разнообразии, как выбрать нужный, единственный и неповторимый, пакет, лучше всего нам подходящий? А очень просто. Скажем, необходимо нам промоделировать рождение всяческих разнообразных частиц в водородной мишени при попадании в нее пучка электронов с энергией, скажем, 12 ГэВ. Не теряя времени на бабские причитания, мы идем на [http://geant4.web.cern.ch/geant4/physics_lists/ этот], очень полезный сайт, который Ханс-Петер Веллих (J. P. Wellisch) для нас специально сделал. Там, в табличке, видим, что наша задачка отлично подходит под категорию &laquo;Medium Energy Production Targets&raquo;, идем по ссылке, и выясняется, что для счастья ничего нам не надо, а только подавай пакет 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/physics_lists и наберите команду make.

Revision as of 09:12, 8 Jun 2006

Содержание

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

Зачем?

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

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

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

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

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

Ситуация обстоит гораздо хуже с адронными процессами. Набор моделей так широк, что запутаться в них проще простого, плюс каждая имеет какой-нибудь параметр, который неизвестно из каких-соображений устанавливать. Например модель 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/physics_lists и наберите команду make.

Edit page