Показаны сообщения с ярлыком физика. Показать все сообщения
Показаны сообщения с ярлыком физика. Показать все сообщения

вторник, 19 января 2010 г.

Аннигиляция протон-антипротон и метод монте-карло

Пожалуй, это довольно хороший повод написать в блог. Подобные записи, возможно, могут нести какую-нибудь пользу, а также внесут ясности мне в голову.

Итак, начнём с физики. В природе существует вещество и антивещество. При столкновении вещества и антивещества происходит аннигиляция. Привычной нам частице протону соответствует антипротон с отрицательным зарядом. Сейчас речь пойдёт о их аннигиляции.
Аннигиляция протона с антипротоном может проходить очень по-разному. Обычно её проводят в камерах, где можно фиксировать следы от заряженных частиц. Интерес представляют случаи, когда фиксируются 4 видимых следа после аннигиляции. Эти следы оставляют за собой 4 пиона, два положительных, два отрицательных. С помощью формулы недостающей массы(основанной на релятивистском инварианте) считают массу частиц, которые не видны на снимках, нейтральных частиц.

Пример снимка:


Если масса этих невидимых частиц превышает 135 МэВ, то можно утверждать, что родился один нейтральный пион. Из некоторых теоретических соображений, было предположенно, что в данном процессе рождается ещё одна нейтральная частица. Эта частица распадается на нейтральную тройку: pi+,pi-,pi0. Для простоты:
Задача состоит в нахождении массы этой частицы X(предполагаемый omega0-мезон).
В реальном опыте физики считали инвариантные массы всех четырёх нейтральных троек мезонов, и строили график количества случаев с той или иной инвариантной массой. Если бы частица X не рождалась бы совсем, то график был бы равномерным. Если бы она рождалась всегда, то график вылился бы в одну точку. А вот если бы она рождалась иногда, то график был бы равномерным, но в нём был бы пик, который бы отвечал за инвариантную массу частицы X.

Итак, физики просто отбирали случаи с 4 следами на снимке, проверяли наличие pi0-мезона, считали инвариантные массы нейтральных троек и клали их на график. В итоге они получили вот такую картинку:




Как видно, при массе около 0,8 ГэВ(0,782 ГэВ) наблюдается подскок. Это и есть наш omega0-мезон. Ура-ура!

Всё это хорошо работает, если вам нужно только замерять числа и считать. А что делать, если вам нужно смоделировать этот процесс, если числа выдаются не природой, а генератором случайных чисел?

Изначально делалось так: бралась начальная энергия, распиливалась на 4 части, "отдавалась" четырём частицам(объектам), после чего считалась недостающая масса, делалась проверка, чтобы она была больше 135. После чего считалась инвариантная масса, и ставилась на график. Однако, чего ждать, тут же случайные числа, конечно мы можем как-то ограничиться порогами реакции, можем предположить, что у нас есть что-то вроде фазового объёма или резонанса(формула Брейта-Вигнера), и отрезать всё что непохоже на неё. Итак, вот что получилось:
(Фиолетовые скопления - средние арифметические значения энергий в интервале 30 МэВ).

Вполне себе похоже на пик, но что делать дальше? Придётся принять, что всё-же 782 МэВ должно выпадать чаще, и ему уделять больший вес. То есть при попадании такого случая прибавлять не один случай, а несколько. При чём неплохо было бы делать это в окрестностях, в соответствии с формулой Брейта-Вигнера.

Всё, выговорился, жду ваших комментариев

четверг, 11 июня 2009 г.

Формулировка конечной задачи

Требования в виде списка более понятны.

Основная задача

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


Подробнее

  • Пользователь взаимодействует с программой по средствам экспериментов.
  • Эксперимент — это и есть микрозадача, в которой должны задаваться параметры, при чём по разному(мы можем задавать те или иные параметры и получать из них тот или иной результат).
  • Пользователь также может проводить серию экспериментов и видеть статистику для каждого.
  • Пользователь может проводить несколько экспериментов параллельно(различные типы экспериментов) и видеть возможную связь между ними.

С точки зрения интерфейса


  • Окно будет реализовано в обычном Windows-стиле, без особых эффектов.
  • Эксперименты будут в различных вкладках(TabView).
  • Для создания эксперимента будет сделан собственных диалог(wizard).
  • Редактирование параметров эксперимента будет выделено в отдельный диалог, который будет принимать объект списка параметров(см. "С точки зрения программирования").

Скриншот интерфейса стадии альфа:




С точки зрения программирования

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

Иерархия классов:

Подробно снизу-вверх:
  • ParameterList - класс, реализующий список элементов ParameterListUnit, в нём хранятся все параметры для данного эксперимента.
  • SomeVisualization - несуществующий класс, приведенный в роли примера класса, наследованного от GraphicsPrimitive
  • Expirement - класс, реализующий связь между параметрами эксперимента и его визуализацией, именно объекты этого класса будут сохранятся в файлы и передаваться куда-либо.
  • ExpirementControl - класс, реазуализующий "User Control", для прорисовки в табах.
  • Ну и верхняя связь подрузумевает что класс главной формы должен хранить в себе все объекты ExpirementControl


В разработке

  • Разработка иерархии
  • Внедрение готовых микрозадач в программу
  • Воможно: внедрение MVC(разделение GraphicsPrimitive на вычисление и рисование).
  • Возможно: вынос типов проектов в dll-файлы(плагины).

суббота, 25 апреля 2009 г.

Рассеяние Резерфорда

Одна из задач, которые я сейчас выполняю - это визуализация рассеяния Резерфорда. Решил вот написать о этом.

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

Немного подробнее
Изначально у нас есть несколько параметров:
  • b - "прицельное расстояние" - расстояние от траектории частицы в бесконечности до параллельной ей прямой, проходящей через ядро.
  • m,v - масса и скорость частицы(в бесконечности). Эти 2 параметра было решено заменить на 1 - энергию.
  • Z - заряд ядра(я думаю не нужно пояснять что это не его заряд, а количество протонов).
Всё происходящее пожно поделить на 3 части:
  1. Частица летит в бесконечности.
  2. На частицу начинает действовать сила отталкивания, она начинает лететь по гиперболической траектории.
  3. Сила отталкивания перестаёт действовать и она летит по своей ассимптоте.
Для пункта 1 всё ясно, тут движение можно задать прямой y = b.
Проблемы начинаются во втором пункте, когда начинаются откланения. В материалах, по которым изучается весь этот процесс, можно найти только формулу для силы, которая действует на альфа-частицу. Конечно можно выразить ускорение через второй закон Ньютона, но, как сказал наш научный руководитель - это затратно по вычислениям и вообще так никто не делает.
В третьем пункте всё более-менее ясно, формула для угла Θ дана, если всё правильновысчитать то можно легко выразить всё что нужно. Подсчёт Θ имеет некоторые проблемы, которые я опишу далее.

Задача
На данном этапе нужно визуализировать движение частицы.

Проблемы
Итак, по пунктам:
  1. Не ясен алгоритм, сейчас в коде идёт перебор всех углов от пи, до теты, что мне кажется неверным. Для каждого угла находятся координаты точек.
  2. При вычислении теты и прочего неясна ситуация со степенями. Примером служит тета, при расчёте которой фигурируют числа порядка 10^32, что не очень приемлемо.
Выше приведены основные проблемы, из них вытекают последствия неправильной визуализации.

Мысли о решении проблем
Пока я дошёл до того, что нужно разбивать всё это дело на 3 функции и рисовать, а не перебирать углы.
Также нужно решить что-то с коэфициентами чтобы получались адекватные результаты.

Заключение
Погуглив, было найдено несколько готовых визуализаций, одну из которых можете увидеть тут.
Продолжаем биться.