Custom process in Geant4

/ / hep-sw :: , , , ,

Процедура создания кастомного процесса в Geant4 достаточно детально освещена здесь — это официальный гайд для разработчиков‐контрибьюторов.

Я буду рассматривать дело на примере собственного экзотического процесса. Начинаю я с исходным кодом вычисляющим сечение и довольно общим окружением уже подготовленного Geant4‐приложения.

Нужно, однако, сказать несколько слов о том, что представляет собой мой процесс.

Процесс — примесь к виртуальным фотонам

Эксперимент p348 (недавно утверждённый комитетом SPS и получивший идентификатор NA64 в номенклатуре CERN) посвящён поиску лёгкой тёмной материи. Гипотетическая частица $A'$ («тёмный фотон») обладает, предположительно, массой от нескольких МэВ до нескольких ГэВ и может возникать при рассеянии высокоэнергетических частиц на нуклонах.

В статье Bjorken et al. приводится оценка дифференциального сечения примесного фоторождения $A'$ на основании модифицированной формулы для спектра виртуальных фотонов (метод Вейцзекера‐Вильямса). Аппроксимация сечения даётся формулой (A12) из статьи:

$$ \frac{1}{E^2_0} \frac{ d \sigma_{3 \rightarrow 2}}{d x d \cos{\theta_{A'}}} = (8 \alpha \epsilon^2 \chi \beta_{A'}^2) \left[ \frac{ 1 - x + x^2/2 }{U^2} + \frac{ (1-x)^2 m^2_{A'} }{U^4} \cdot ( m^2_{A'} - \frac{U x}{1 - x} ) \frac{}{} \right], $$

где $x = E_0/E_{A'} \in (m_e/E_0, 1 - m_e/E_0)$ — относительная энергия $A'$, $\theta_{A'} \in (-\pi, \pi]$ — угол вылета, относительная скорость $\beta = \sqrt{ 1 - m_{A'}/E_0 }$, и $U = (E_0 \theta_{A'} )^2 x + m^2_{A'} (1-x)/x + m_e^2 x$; форм‐фактор $\chi$ даётся интегральным выражением (A17) и его вычисление — довольно трудёмкая численная процедура.

Для практической реализации генератора событий важно, что энергия инициирующей частицы (в статье рассмотрены электроны), вообще говоря, входит в формулу как параметр. Это значит, что при разыгрывании событий в ливне форм‐фактор должен быть рассчитан для каждого значения энергии электрона, что, конечно, сильно замедлило бы моделирование.

Полностью, рассчёт сечений реализован в библиотеке p348g4, в файле evGen/aprime_cross_section.c. Процедуры написаны на C, для интегрирования $\chi$ используется GSL QAGS adaptive integration with singularities, поскольку у функции дифференциального сечения есть особенность при $x \rightarrow 1$ и $\theta_{A'} \rightarrow 0$. Подробнее, качественная картина в этой области обсуждается в части II статьи, в п. «B».

Согласно оценкам дифференциального сечения из этой статьи, появившийся $A'$ в основном полетит под малым углом к инициирующей частице ($\theta_{A'} \rightarrow 0$) и будет склонен забирать с собой бо́льшую часть энергии инициирующей частицы ($x \rightarrow 1$). Взаимодействия в конечном состоянии, если я правильно понимаю дело, происходить не будет, что изрядно облегчает задачу встраивания процесса в Geant4. В терминах объектов API Geant4 процесс будет выражаться в изменении кинематических характеристик инициирующей частицы и появлении новой частицы ($A'$). Всякое прочее взаимодействие инициирующей частицы с веществом — независимые процессы по отношению к примесному рождению $A'$, и, таким образом, могут быть разыграны отдельно.

В статье так же есть готовые калибровочные оценки на тонкой мишени, благодаря которым возможно оценить согласие написанного генератора с теоретическим ожиданием (см. Appendix B).

Важно заметить, что $A'$ может каскадно распадаться на «видимые» частицы. Эксперимент P348 предполагает анализ и видимой моды. С точки зрения Монте‐Карло моделлирования процессы примесного фотообразования и последующего распада независимы и должны быть реализованы в отдельных классах, связанных посредством экземпляра новой невзаимодействующей частицы.

Мотивация

Прикладная задача возникающая в рамках Монте‐Карло моделлирования состоит теперь в том чтобы встроить этот процесс в Geant4. Практически, интересно то, как появившийся в электромагнитном ливне $A'$ повлияет на общефизическую картину, — иными словами, какова будет сигнатура такого события в заданной постановке эксперимента. Разумеется, можно сделать определённые качественные предположения, и, в случае общих соображений предшествующих эксперименту, этих предположений может быть вполне достаточно. Но, как и всегда, моделлирование может указать на какие‐то неожиданные эффекты в общей картине, которые из общих соображений не следуют или неочевидны.

Предварительные соображения

Согласно официальному гайду, для того чтобы добавить новый процесс, необходимо реализовать один из интерфейсов процессов и зарегистрировать его в специальном мнеджере‐синглетоне. Рисунок 19 из гайда — UML‐диаграмма классов‐интерфейсов отражающая важные для предмета заметки аспекты.

Тут важно заметить, что мы сосредоточимся на реализации одного процесса, который, хотя и имеет под собой ряд пока ещё довольно непрозрачных теоретических моделей, всё‐таки наименее инвазивно (по отношению к Geant4) может быть описан аппроксимацией. Дело в том, что для фундаментальных теоретических моделей в Geant4 предусмотрена своя инфраструктура. Для примера можно посмотреть Bertini cascade или интеграцию с Pythia.

Прежде всего, важно определить место нашего процесса в цепочке абстракций. Ясно, что из процессов для конкретного типа частиц возможных на лету (discrete process) или в покое (at rest) для рождения $A'$ мы имеем дело с процессом первого типа. В руководстве электромагнитные процессы по какой‐то причине не включены в диаграммы, но видно, например, что процесс комптононовского или релеевского рассеяния наслуедуется от класса‐интерфейса G4VEmProcess.hh — общего для всех электромагнитных процессов с участием летящей частицы (discrete processes).

Надеюсь, не имеет смысла здесь переводить руководство на русский или перерисовывать UML диаграммки, и достаточно просто заявить, что описанный выше процесс «примешивания» тёмных фотонов лучше отнести к упругому рассеянию на адроне. Хотя в целом процесс скорее всего лучше рассматривать в целостности как неупругий для того, чтобы более детально отследить прявление поляризационных эффектов, энергетический масштаб адронных превращений вызванных обменом виртуальным фотоном (вполне ещё, надо заметить, «светлым») остаётся на порядок меньше основного эффекта.

Trivia

Бегло ознакомился с моделями перечисленными в каталоге Geant4, попутно вычитывая исходники. Формализм реакций на виртуальных фотонах в них реализован таким образом, что разыгрывание самих реакций происходит уже после того, как виртуальный фотон «конвертируется в реальный» («a real gamma is produced from the virtual photon spectrum») в рамках модели G4ElectroVDNuclearModel (она реализована как электрон‐нуклонное взаимодействие — наследник интерфейса G4HadronicInteraction). Интересно, что эта модель используется всеми PhysicsList из стандартной библиотеки Geant4, хотя она и актуальна только для $(e^{+}/e^{-})Z$ взаимодействий — для мюонов, например, применяется другая модель.

То есть, наиболее правильно расширить G4ElectroVDNuclearModel таким образом, чтобы примесь $A'$ была разыграна на этом этапе, до создания реальных $\gamma$, которые затем фигурируют в Bertini-/Binary-каскадах. Как более простой вариант, можно рассмотреть реализацию через переопределение методов SteppingAction — так, собственно, уже и сделали старшие товарищи в группе P348. Но мы пойдём другим путём.


Comments