Курсовая, контрольная работа. Примеры выполнения

Ядерная материя Метод аннигиляции Метод мечения Метод Монте-Карло Идентификация мезонов и нуклонов Алгоритмы определения сечений Результат моделирования Кулоновская диссоциация Фотоядерные реакции Решение прикладных задач



    После того, как конфигурация экспериментального оборудования задана, начинается генерация событий. Число событий задаётся пользователем и ограничено лишь быстродействием ЭВМ и объёмом памяти, доступным для записи параметров каждого из событий. Рассмотрим, из чего состоит генерация каждого события.
    Пользователь “вмешивается” в генерацию события три раза: один раз обязательно, в начале каждого события, и два раза не обязательно: после каждого шага события (о том, что такое шаг события, будет сказано ниже) и в конце каждого события. Любое событие начинается с вылета неких частиц (назовём их исходными частицами) из некой точки экспериментального пространства (первичной точки). При инициализации каждого события GEANT вызывает пользовательскую программу инициализации события, имеющую определённое имя. Назовём её программой инициализации события. В ней пользователь путём вызова соответствующих процедур GEANT’а указывает, какие именно частицы вылетают, (каждая частица имеет в GEANT’е свой номер, и пользователь указывает этот номер). Он указывает также координаты точки их вылета и все три компонента импульса каждой из частиц. И координаты точки вылета, и компоненты импульса для каждой исходной частицы каждого события могут задаваться как фиксированными, так и стохастическими, разыгранными в соответствии с заданной функцией распределения. На этом обязательное участие пользователя в генерации события заканчивается.
    Рассмотрим, из чего состоит генерация события системными объектами пакета GEANT. Прежде всего, событие можно разделить на проводки каждой частицы, как исходной, так и вторичной, от точки её образования (для исходной частицы — первичной точки) до вылета из экспериментального объёма или до точки поглощения или распада частицы, или до того момента, когда энергия частицы станет ниже минимальной энергии для частиц данного типа, заданной пользователем. Проводка каждой частицы делится на шаги. Каждый шаг состоит из свободного пролёта частицы до взаимодействия частицы с одним из атомов вещества того объекта, в котором летит частица и самого взаимодействия (реакции) с этим атомом или до вылета из объекта. Шаг разыгрывается следующим образом. Сначала на основе известных сечений взаимодействия частицы с атомами вещества разыгрывается длина свободного пробега частицы и находится точка, в которой оказывается частица после свободного пробега. Если эта точка находится внутри того же экспериментального объекта, в котором разыгрывался свободный пробег, то вычисляется энергия, которую, возможно, потеряла частица во время свободного пробега (тек, например, электрон вследствие радиационных потерь). Далее, если вещество сложное, разыгрывается тип атома, на котором произошла реакция, потом на основе соотношения сечений возможных реакций разыгрываются тип реакции и, на основе дифференциального сечения реакции, энергии всех продуктов реакции и углы, под которыми они вылетают. Следует отметить, что дифференциальные сечения, заложенные в GEANT, не всегда соответствуют действительности с хорошей точностью. Пользователь может задать свои, более точные значения сечений и “обязать” GEANT использовать их при расчётах. Если эта точка находится вне экспериментального объекта, в котором разыгрывался свободный пробег, то вычисляются координаты точки вылета частицы из объекта, вычисляется энергия, которую, возможно, потеряла частица во время свободного пробега, и на точке выхода из объекта шаг завершается.
    После каждого шага события GEANT вызывает пользовательскую программу, также имеющую определённое имя. Назовём её программой контроля шагов события. В ней пользователь получает доступ к типу произошедшей реакции, к энергии, которую потеряла частица на шаге, и ко всем параметрам как проводимой частицы, так и других объектов, участвующих в событии (физического тела, в котором движется частица, ядра атома, на котором произошла реакция, всех образовавшихся в результате реакции частиц). Отметим, что среди системных переменных GEANT’а, к которым после каждого шага имеет доступ пользователь, есть переменная, которая указывает на то, что произошло в результате шага. Возможные варианты: частица осталась в рассматриваемом объекте, находится в точке выхода из него, находится в начальной точке своего существования, в точке входа в новый объект или в точке вылета из всего экспериментального пространства. Любые из этих параметров пользователь может записать для дальнейшего контроля и анализа, вычислять на основе их интересующие его величины (например, потери энергии в рабочем веществе сцинтилляционного детектора) или, если в этом нет необходимости, оставить программу контроля шагов события пустой.
    Проведя одну частицу до конечной её точки, GEANT берёт следующую, потом следующую, и так до тех пор, пока все частицы, как исходные, так и вторичные, не будут проведены. В результате число шагов события может изменяться от одного (была задана одна исходная частица, и она вылетела из экспериментального пространства, не вступив ни в какие реакции) до нескольких сот тысяч. Недостатком GEANT’a является то, что по ходу эксперимента изменить параметры экспериментальных объектов (например, плотность вещества внутри них) невозможно.
    После каждого сгенерированного события GEANT также вызывает пользовательскую программу. Назовём её программой контроля событий. В ней пользователь получает доступ ко всем сохранённым и вычисленным в процессе генерации события величинам. Как правило, пользователь записывает их в файл особого типа - ntuple. В эти файлы последовательно записываются заданные пользователем наборы величин для всех сгенерированных событий. Отметим, что файлы типа ntuple используются и для записи данных реальных экспериментов, тогда в них записываются величины, измеренные физическими приборами. Если пользователь хочет записывать данные моделирования в ntuple, он должен до начала генерации событий описать структуру файла, то есть те величины каждого события, которые он будет записывать в файл. Это делается посредством вызова системной процедуры GEANT. Для простой переменной указывается её имя и диапазон значений, который она может принимать. Для переменной-массива сначала указываются имена индексов массива (одного или нескольких) и границы их изменений, а потом имя самой переменной массива и границы её изменения. После каждого события пользователь может дать команду записи величин, соответствующих этому событию, в ntuple. Он может также записать эти величины в файл другого типа.
    После генерации всех событий GEANT вызывает последнюю пользовательскую программу. В ней пользователь может сделать финальные вычисления и закрыть файлы, в которые записывалась информация со всех сгенерированных событий. После завершения математического моделирования, если данные моделирования записывались в файл типа ntuple, пользователь посредством пакетов программ PAW или ROOT может построить одномерные или многомерные распределения любых величин, записанных в ntuple, при условии, что одна или несколько участвующих или не участвующих в распределениях величин лежат в определённых пределах.


7271f726
На главную сайта Dvoika.net