Developing #66
Updated by Vitaliy Schetinin over 7 years ago
<p>Необходимо разработать класс ERBeamDetPID(particle identification) для идентификации парамеров частицы, летящей в BeamDet.<br />
Результатом работы будет один объект класса будут два объекта типа ERBeamDetParticle - fProjectile.<br ERBeamDetParticle(fProjectile, fCM0).<br />
Компонентами ERBeamDetParticle являются 4-x вектор ее состояния (TLorentzVector),PDG код,probability - вероятность того, что мы угодали частицу правильно.</p>
<p>PDG и probability:<br />
Пользователь подразумевает какую частицу(ион) он должен регистрировать, поэтому PDG код необходимо сделать интерфейсом.<br />
Для идентификации частицы используется tof и dE в TOF.<br />
tof - время пролета между пластиками, dE - суммарная энергия оставшаяся на них.<br />
Для задания отбора по этим параметрам необходимо сделать интерфейс: SetBoxPID(tof1,dE1,tof2,dE2). Probability=1, когда tof между tof1, tof2, tof1<=tof<=tof2, dE1 <= dE между dE1 и dE2, если не попало в границе probability = 0<br <= dE2<br />
В дальнейшем понадобится такой же отбор, но с заданием границ как эллипс.<br />
Нужно ННужно сделать интерфейс probability threshold. Если probability получилось ниже, чем probability threshold, то писать event в выходной файл не нужно по умолчанию равен нулю.</p>
<p>TLorentzVector состояния на мишени<br />
Мы определяем Энергию иона по времени пролета:<br />
1)tof = tof1-tof2 + tof_offset<br />
tof_offset - каллибровочный параметр. Задается пользователем, нужен интерфейс.</p>
<p>2)Высчитываем beta фактор иона<br />
beta = расстояние между tof(из BeamDetSetup)/tof/C (C - скорость света)</p>
<p>3) делаем отбор событий на абсурдность. Если не прошли - не пишем в файл.<br />
beta между 0 и 1</p> beta>=0.&&beta<=1.</p>
<p>4) Считаем гамма фактор и модуль импульса<br />
gamma= 1./sqrt(1.-beta*beta);<br />
p= beta*Mprojectile*gamma; (Mprojectile из TDatabasePDG и знания PDG)</p>
<p>5) По имульсу и знания направления на мишени формируем TLorentzVector состояни на мишени и сам объект fProjectile(выходной объект таска в этом событии)<br fProjectile<br />
Px = p*sin(theta)*cos(phi)<br />
Py = p*sin(theta)*sin(phi)<br />
Pz = p*cos(theta)<br />
E = гуглим как из импульса и массы получить полную энергию</p>
<p>6) Создаем частицу target<br />
импульс нулевой, в энергии только масса (из BeamDetSetup)</p>
<p>7) Создаем частицу fCMO - центр масс реакции. (PDG = -1)<br />
Четырех вектор fCMO равен сумме четырехвекторов fTarget и fProjectile. Данный объект будет необходим после, для переходов систему ЦМ реакции и обратно.</p>
Результатом работы будет один объект класса будут два объекта типа ERBeamDetParticle - fProjectile.<br ERBeamDetParticle(fProjectile, fCM0).<br />
Компонентами ERBeamDetParticle являются 4-x вектор ее состояния (TLorentzVector),PDG код,probability - вероятность того, что мы угодали частицу правильно.</p>
<p>PDG и probability:<br />
Пользователь подразумевает какую частицу(ион) он должен регистрировать, поэтому PDG код необходимо сделать интерфейсом.<br />
Для идентификации частицы используется tof и dE в TOF.<br />
tof - время пролета между пластиками, dE - суммарная энергия оставшаяся на них.<br />
Для задания отбора по этим параметрам необходимо сделать интерфейс: SetBoxPID(tof1,dE1,tof2,dE2). Probability=1, когда tof между tof1, tof2, tof1<=tof<=tof2, dE1 <= dE между dE1 и dE2, если не попало в границе probability = 0<br <= dE2<br />
В дальнейшем понадобится такой же отбор, но с заданием границ как эллипс.<br />
Нужно ННужно сделать интерфейс probability threshold. Если probability получилось ниже, чем probability threshold, то писать event в выходной файл не нужно по умолчанию равен нулю.</p>
<p>TLorentzVector состояния на мишени<br />
Мы определяем Энергию иона по времени пролета:<br />
1)tof = tof1-tof2 + tof_offset<br />
tof_offset - каллибровочный параметр. Задается пользователем, нужен интерфейс.</p>
<p>2)Высчитываем beta фактор иона<br />
beta = расстояние между tof(из BeamDetSetup)/tof/C (C - скорость света)</p>
<p>3) делаем отбор событий на абсурдность. Если не прошли - не пишем в файл.<br />
beta между 0 и 1</p> beta>=0.&&beta<=1.</p>
<p>4) Считаем гамма фактор и модуль импульса<br />
gamma= 1./sqrt(1.-beta*beta);<br />
p= beta*Mprojectile*gamma; (Mprojectile из TDatabasePDG и знания PDG)</p>
<p>5) По имульсу и знания направления на мишени формируем TLorentzVector состояни на мишени и сам объект fProjectile(выходной объект таска в этом событии)<br fProjectile<br />
Px = p*sin(theta)*cos(phi)<br />
Py = p*sin(theta)*sin(phi)<br />
Pz = p*cos(theta)<br />
E = гуглим как из импульса и массы получить полную энергию</p>
<p>6) Создаем частицу target<br />
импульс нулевой, в энергии только масса (из BeamDetSetup)</p>
<p>7) Создаем частицу fCMO - центр масс реакции. (PDG = -1)<br />
Четырех вектор fCMO равен сумме четырехвекторов fTarget и fProjectile. Данный объект будет необходим после, для переходов систему ЦМ реакции и обратно.</p>