Developing #72
RTelescope converter digi для эксперимента Be6
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 about 7 years ago
- Description updated (diff)
#2 Updated by Sergey Belogurov about 7 years ago
- Description updated (diff)
#3 Updated by Anonymous about 7 years ago
Выходным объектом таска является объект AculRaw.
То есть в массив С3[i][j] для каждого события заполняем информацию об энергии из всех детекторов и времени (константное
значение 2000) из секторов второго слоя каждого телескопа.
Сколько объектов AculRaw должно остаться на выходе ? Вратислав написал в письме, что один. Но если для каждого события мы заполняем массив, то объектов будет гораздо больше.
#4 Updated by Anonymous about 7 years ago
У нас есть два калибравочных файла для CsI. Один для протонов, другой для альфа-частиц. Мы используем один из них в зависимости от того, какой чайстицей стреляем? Как нам из диджи узнать, какой частицей стреляли? Или это надо будет в коде функции GetParameters (функция, возвращающая калибровочные параметры для данного детектора) класса ERRTelescopeRawConverter менять входной файл?
#5 Updated by Vitaliy Schetinin about 7 years ago
Я думаю просто должен быть метод RRTelescopeRawConverter::SetCalibrationFile(file_name). И с помощью него в макросе указывать какой файл использовать
#6 Updated by Sergey Belogurov about 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 over 5 years ago
- Status changed from Открыта to Закрыта