Developing #143

Developing #134: Симуляция эксперимента - первое приближение

Спектр возбуждений 5H

Added by Ivan Muzalevsky almost 7 years ago. Updated almost 7 years ago.

Status:ЗакрытаStart date:02/18/2018
Priority:ВысокийDue date:02/23/2018
Assignee:Mikhail Kozlov% Done:

100%

Category:-
Target version:-

Description

Сделать возможным задавать распределение энергии возбуждения 5H, из которой будет рассчитываться масса 5H. То есть M_h5 = M0 + M1, где M0 - масса в основном состоянии (константа), M1 - величина, случайно разыгрывающаяся из каког ото распределения, пусть для начала распределение будет состоять из двух гауссов:

1) mean"="0.4" "FWHM"="0.02355"

2)"mean"="1.2"  "FWHM"="0.2355" 

из получившегося распределия, M1 наверное можно будет брать методом GetRandom.

Particle.h Magnifier (5.31 KB) Ivan Muzalevsky, 02/26/2018 09:35 AM

Particle.cpp Magnifier (16.2 KB) Ivan Muzalevsky, 02/26/2018 09:35 AM

exp1803_sim_digi.C Magnifier (12.5 KB) Ivan Muzalevsky, 03/06/2018 06:13 PM

Kinematics5H.pdf (1.93 MB) Ivan Muzalevsky, 03/14/2018 04:19 PM


Related issues

Related to bugs #140: Энергия пучка Закрыта 02/17/2018 02/23/2018
Related to bugs #164: Выполнение условий для распада в PhaseSpace . Закрыта 03/07/2018 03/09/2018

History

#1 Updated by Sergey Belogurov almost 7 years ago

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

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

Вопрос  надо переадресовать к Виталику - в каком месте кода удобнее ввести размазывание добавки к массе  иона?

   Далее стараться реализовать самостоятелоьно.

Монжо ди это делать прям в макросе симуляции или нужен новый интерфейс к erion?

#2 Updated by Sergey Belogurov almost 7 years ago

  • Assignee changed from Mikhail Kozlov to Vitaliy Schetinin

#3 Updated by Vitaliy Schetinin almost 7 years ago

  • Related to bugs #140: Энергия пучка added

#4 Updated by Vitaliy Schetinin almost 7 years ago

  • Assignee changed from Vitaliy Schetinin to Mikhail Kozlov

1) Это должен быть интерфейс класса ERDecayEXP1803. Сейчас там есть интерфейс к массе основного состояния SetH5Mass. Нужно сделать SetH5Exitation(mean,FWHM)

2) Масса, которая идет в TGenPhaseSpace реакции считает как mass5H+Gaus(exitation5Hmean,exitation5Hsigma)

3) Приятно, что в этом классе нет проблем с массой иона.

Задача возвращается Мише

#5 Updated by Ivan Muzalevsky almost 7 years ago

Vitaliy Schetinin wrote:

1) Это должен быть интерфейс класса ERDecayEXP1803. Сейчас там есть интерфейс к массе основного состояния SetH5Mass. Нужно сделать SetH5Exitation(mean,FWHM)

2) Масса, которая идет в TGenPhaseSpace реакции считает как mass5H+Gaus(exitation5Hmean,exitation5Hsigma)

3) Приятно, что в этом классе нет проблем с массой иона.

Задача возвращается Мише

Виталик, интерфейс задания массы частицы (спектра возмуждения) нужно сделать таким, чтобы пользователь мог задавать массу не только из распределения гаусса, как описал ты, но и из любого другого, также задаваемого пользователем. Пример реализации этого есть тут: начинать смореть лучше всего этот метод: void Particle::GenerateMass()  (525 строка particle.cpp).

#6 Updated by Vitaliy Schetinin almost 7 years ago

Ivan Muzalevsky wrote:

Vitaliy Schetinin wrote:

1) Это должен быть интерфейс класса ERDecayEXP1803. Сейчас там есть интерфейс к массе основного состояния SetH5Mass. Нужно сделать SetH5Exitation(mean,FWHM)

2) Масса, которая идет в TGenPhaseSpace реакции считает как mass5H+Gaus(exitation5Hmean,exitation5Hsigma)

3) Приятно, что в этом классе нет проблем с массой иона.

Задача возвращается Мише

Виталик, интерфейс задания массы частицы (спектра возмуждения) нужно сделать таким, чтобы пользователь мог задавать массу не только из распределения гаусса, как описал ты, но и из любого другого, также задаваемого пользователем. Пример реализации этого есть тут: начинать смореть лучше всего этот метод: void Particle::GenerateMass()  (525 строка particle.cpp).

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

#7 Updated by Vratislav Chudoba almost 7 years ago


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

#8 Updated by Mikhail Kozlov almost 7 years ago

Добавил возможность закладывать произвольное количество гауссов с весами через интерфейс:
 targetDecay->SetH5Exitation(excMean, fwhm, distibWeight).

Заданные через этот метод распределения хранятся в порядке их передачи в макросе симуляции.

Выбор номера распределения в каждом событии с распадом присходит по номеру интервала, в который попадает результат равномерного разыгрывания gRandom->Uniform(0., Wsum);

Например, при следующих параметрах:
  targetDecay->SetH5Exitation(0.4, 0.02355, 1);
  targetDecay->SetH5Exitation(1.2, 0.2355, 1);
Равномерное распределение разыгрывается на интервале (0, 2). Результат от 0 до 1 соответсвует Гауссу с параметрами (0.4, 0.02355), а от 1 до 2 - (1.2, 0.2355) .

#9 Updated by Vratislav Chudoba almost 7 years ago

  • Parent task set to #134

#10 Updated by Ivan Muzalevsky almost 7 years ago

Mikhail Kozlov wrote:

Добавил возможность закладывать произвольное количество гауссов с весами через интерфейс:
 targetDecay->SetH5Exitation(excMean, fwhm, distibWeight).

Заданные через этот метод распределения хранятся в порядке их передачи в макросе симуляции.

Выбор номера распределения в каждом событии с распадом присходит по номеру интервала, в который попадает результат равномерного разыгрывания gRandom->Uniform(0., Wsum);

Например, при следующих параметрах:
  targetDecay->SetH5Exitation(0.4, 0.02355, 1);
  targetDecay->SetH5Exitation(1.2, 0.2355, 1);
Равномерное распределение разыгрывается на интервале (0, 2). Результат от 0 до 1 соответсвует Гауссу с параметрами (0.4, 0.02355), а от 1 до 2 - (1.2, 0.2355) .

Миша, я не нашёл коммит с этими добавлениями.

#11 Updated by Ivan Muzalevsky almost 7 years ago

В результате симуляции, не увидел распределение массы 5H, которое задавал в макросе симуляции. 

Макрос симуляции прикрепляю

#12 Updated by Mikhail Kozlov almost 7 years ago

  • Related to bugs #164: Выполнение условий для распада в PhaseSpace . added

#13 Updated by Ivan Muzalevsky almost 7 years ago

  • File Kinematics5H.pdf added
  • Status changed from Открыта to Закрыта
  • % Done changed from 0 to 100

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

Также, был обнаружен и полечен баг, связанный с записью 5H в стек. Конструктор класса ERMCTrack брал массу иона из данных FairIon и записывал её как параметр в стек. Метод SetH5Mass класса ERDecayEXP1803 позволяет изменять это значение в данных FairIon и таким образом задавать пользователем любую энергию основного состояния.

Была сделана симуляция с спектром возбуждения, аналогичным используемому в SIMONE. Источник находился в 3 см от мишени. Картинки прикреплены. Единственное, пока не до конца понятное различие:более низкое энергетическое разрешение, чем в SIMONE. 

Also available in: Atom PDF