Developing #72

RTelescope converter digi для эксперимента Be6

Added by Vitaliy Schetinin over 7 years ago. Updated almost 6 years ago.

Status:ЗакрытаStart date:08/18/2017
Priority:НизкийDue date:
Assignee:-% Done:

0%

Category:RTelescope
Target version:v-0.4

Description

Необходимо разработать класс ERRTelescopeRawConverter(унаследованный от FairTask) конвертации результатов диджитизации из формы принятой в er в форму сырых данных для которой уже существует код анализа.

Данный таск будет вызываться после таска диджитизации, созданного в рамках (http://er.jinr.ru/develop/issues/63,http://er.jinr.ru/develop/issues/69). То есть до вызова этого таска уже будут сформированны объекты типа ERRtelescopeSiDigi и ERRtelescopeCsIDigi.

Телескоп в эксперименте Be6 - это сборка из трех детекторов, Два из которых - кремний, и один- CsI. Детектор CsI состоит из 16 кристаллов, считываемых индивидуально.

Таким образом, есть 2 телескопа, включающих в себя в сумме 6 детекторов. У каждого детектора есть либо 64 (32 сектора+32 кольца у Si) либо 16 (кристаллов у CsI) каналов считывания. Подробности в диссере Вратислава.

То есть после ERRTelescopeDigitizer в выходном файле будут сформированы ветки с ERRTelescopeSiDigi, которые хранят в себе информацию с какой именно по счету станции телескопа они сняты, принадлежат кольцам или секторам, номер канала и ERRTelescopeCsIDigi, которые содержат в себе информацию о том с какой именно станции CsI они сняты и номер кристала CsI.

Выходным объектом таска является объект AculRaw. Его код нужно будет добавить в telescope/data и добавить в компиляцию.

В данном объекте ключевым атрибутом является массив C3[24][16] (это на самом деле 384 разных каналов из которых используем меньше, чем половину).

То есть в массив С3[i][j]  для каждого события заполняем информацию об энергии из всех детекторов и времени (константное
значение 2000) из секторов второго слоя каждого телескопа.  Необходимо ввести процедуру соотнесения, которая позволяет выполнять переходы типа:

(ERRTelescopeSiDigi->StationNb(), ERRTelescopeSiDigi->Type(), ERRTelescopeSiDigi->ChanelNb(),Edep или Time) -> C3[i][j] (где Type() - кольца или сектора)

(ERRTelescopeCsIDigi->StationNb(), ERRTelescopeCsIDigi->ChanelNb(), Edep или Time) -> C3[i][j]

Амплитуда сигнала в digi выражена в энергетических MeV, а в C3 надо писать в отсчетах АЦП. Переход между ними будем называть "антикалибровкой", которая обратна калибровке выполняющейся по следующией процедуре:

E = a*Х + b для Si
Е = система уравнений (она у нас есть),зависящая от а, b, c1, c2, p, N1, N2 для CsI
E - мы береём из digi->Edep(),
а, b - калибровоные параметры из файлов с расширением .cal (beSi.cal, beCsIa.cal, beCsIp.cal)
c1, c2 - это коэффиценты, которые обеспечивают гладкость графика (одинаковые д/всего числа событий д/конкретного кристалла и конкретной частицы (протон или альфа))

 

 

History

#1 Updated by Sergey Belogurov over 7 years ago

  • Description updated (diff)
В этот массив для каждого события заполняем информацию об энергии из всех детекторов и времени (константное значение 2000) из секторов второго слоя каждого телескопа."

#2 Updated by Sergey Belogurov over 7 years ago

  • Description updated (diff)

#3 Updated by Anonymous over 7 years ago

Выходным объектом таска является объект AculRaw. 

То есть в массив С3[i][j]  для каждого события заполняем информацию об энергии из всех детекторов и времени (константное
значение 2000) из секторов второго слоя каждого телескопа.  

Сколько объектов AculRaw должно остаться на выходе ? Вратислав написал в письме, что один. Но если для каждого события мы заполняем массив, то объектов будет гораздо больше.

#4 Updated by Anonymous over 7 years ago

У нас есть два калибравочных файла для CsI. Один для протонов, другой для альфа-частиц. Мы используем один из них в зависимости от того, какой чайстицей стреляем? Как нам из диджи узнать, какой частицей стреляли? Или это надо будет в коде функции GetParameters (функция, возвращающая калибровочные параметры для данного детектора) класса ERRTelescopeRawConverter менять входной файл?

#5 Updated by Vitaliy Schetinin over 7 years ago

Я думаю просто должен быть метод RRTelescopeRawConverter::SetCalibrationFile(file_name). И с помощью него в макросе указывать какой файл использовать

#6 Updated by Sergey Belogurov over 7 years ago

Сейчас, при отладке, когда вы знаете, чем стреляете, можно сделать, как Виталик написал. Дальше будет добавлен физический генератор, который будет в каждое событие давать альфа-частицу и два протона. На настоящих данных для разделения частиц используется анализ ДельтаЕ/E, (отношение измеренного в первом слое энерговыделения к сумме энерговыделений во всех слоях). На Монте Карло данных такое разделение будет хорошим, поэтому  вы могли бы  применить этот подход в процессе антикалибровки, но это идеологически неверно. Правильно использовать т.н. Монте Карло информацию. В каждом пойнте можно посмотреть PDG частицы, этот пойнт породившей. Часть пойнтов может быть создана вторичными дельта-электронами, но какой-то пойнт обязательно создан либо альфой либо протоном - на него и надо ориентироваться.  

Как конкретно добиравться до PDG частицы и надо ли здесь использовать инструмент под названием метчер лучше напишет Виталик. 

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

#7 Updated by Vitaliy Schetinin about 7 years ago

Дебажу код конвертера. Дописал дебаговый вывод и поравил откровенные баги. Сейч к примеру если пульнуть протон под углом можно увидеть такой вывод

[DEBUG  ] Silicon digi: 0
[DEBUG  ] telescope 1, detector 2, Side 1
[DEBUG  ] parameter raw 48, a = 0.007156, b = -0.054972
[DEBUG  ] edep 0.452609, ACP 70
[DEBUG  ] Silicon digi: 0
[DEBUG  ] telescope 2, detector 1, Side 1
[DEBUG  ] parameter raw 112, a = 0.006742, b = 0.08254
[DEBUG  ] edep 0.180875, ACP 14
[DEBUG  ] Silicon digi: 0
[DEBUG  ] telescope 2, detector 1, Side 0
[DEBUG  ] parameter raw 124, a = 0.006465, b = 0.1915
[DEBUG  ] edep 0.180875, ACP -1
[DEBUG  ] CsI digi: 0
[DEBUG  ] telescope 1
[DEBUG  ] parameter raw 5, c1 = 0.0448149, b = -1.97111
[DEBUG  ] edep 15.3923, ACP 362
[DEBUG  ] CsI digi: 0
[DEBUG  ] telescope 2
[DEBUG  ] parameter raw 21, c1 = 0.0937682, b = 0.310998
[DEBUG  ] edep 14.9856, ACP 100

У меня несколько вопросов:

1) Я правильно понимаю, что калибровка расчитана на энергию в МэВ?

2) Необходим формат файла калибровок

#8 Updated by Sergey Belogurov about 7 years ago

Да, калибровка в МэВ.

#9 Updated by Vitaliy Schetinin almost 6 years ago

  • Status changed from Открыта to Закрыта

Also available in: Atom PDF