Developing #72
Updated by Sergey Belogurov about 7 years ago
<p>Необходимо разработать класс ERRTelescopeRawConverter(унаследованный от FairTask) конвертации результатов диджитизации из формы принятой в er в форму сырых данных для которой уже существует код анализа.</p>
<p>Данный таск будет вызываться после таска диджитизации, созданного в рамках (http://er.jinr.ru/develop/issues/63,http://er.jinr.ru/develop/issues/69). То есть до вызова этого таска уже будут сформированны объекты типа ERRtelescopeSiDigi и ERRtelescopeCsIDigi.</p>
<p>Телескоп в эксперименте Be6 - это сборка из трех детекторов, Два из которых - кремний, и один- CsI. Детектор CsI состоит из 16 кристаллов, считываемых индивидуально.</p>
<p>Таким образом, есть 2 телескопа, включающих в себя в сумме 6 детекторов. У каждого детектора есть либо 64 (32 сектора+32 кольца у Si) либо 16 (кристаллов у CsI) каналов считывания.</p>
<p>То есть после ERRTelescopeDigitizer в выходном файле будут сформированы ветки с ERRTelescopeSiDigi, которые хранят в себе информацию с какой именно по счету станции телескопа они сняты, принадлежат кольцам или секторам, номер канала и ERRTelescopeCsIDigi, которые содержат в себе информацию о том с какой именно станции CsI они сняты и номер кристала CsI.</p>
<p>Выходным объектом таска является объект AculRaw. Его код нужно будет добавить в telescope/data и добавить в компиляцию.</p>
<p>В данном объекте ключевым атрибутом является массив C3[24][16] (это на самом деле 384 разных каналов из которых используем меньше, чем половину).</p>
<p>То есть в массив С3[i][j] для каждого события заполняем информацию об энергии из всех детекторов и времени (константное<br />
значение 2000) из секторов второго слоя каждого телескопа. Необходимо в C3[i][j] пишется либо амплитуда, либо время. Необходимо ввести процедуру соотнесения, которая позволяет выполнять переходы типа:</p>
<p>(ERRTelescopeSiDigi->StationNb(), ERRTelescopeSiDigi->Type(), ERRTelescopeSiDigi->ChanelNb(),Edep или Time) -> C3[i][j] (где Type() - кольца или сектора)</p>
<p>(ERRTelescopeCsIDigi->StationNb(), ERRTelescopeCsIDigi->ChanelNb(), Edep или Time) -> C3[i][j]</p>
<p>Амплитуда сигнала в digi выражена в энергетических MeV, а в C3 надо писать в отсчетах АЦП. Переход между ними будем называть "антикалибровкой", которая обратна калибровке выполняющейся по следующией процедуре:</p>
<p>E = a*Х + b для Si<br />
Е = система уравнений (она у нас есть),зависящая от а, b, c1, c2, p, N1, N2 для CsI<br />
E - мы береём из digi->Edep(),<br />
а, b - калибровоные параметры из файлов с расширением .cal (beSi.cal, beCsIa.cal, beCsIp.cal)<br />
c1, c2 - это коэффиценты, которые обеспечивают гладкость графика (одинаковые д/всего числа событий д/конкретного кристалла и конкретной частицы (протон или альфа))</p>
<p> </p> <p>Время переносится как,есть. Поля C3 соответсвующие временным характеристикам для которых нет digi заполняются числом 2000.</p>
<p> </p>
<p>Данный таск будет вызываться после таска диджитизации, созданного в рамках (http://er.jinr.ru/develop/issues/63,http://er.jinr.ru/develop/issues/69). То есть до вызова этого таска уже будут сформированны объекты типа ERRtelescopeSiDigi и ERRtelescopeCsIDigi.</p>
<p>Телескоп в эксперименте Be6 - это сборка из трех детекторов, Два из которых - кремний, и один- CsI. Детектор CsI состоит из 16 кристаллов, считываемых индивидуально.</p>
<p>Таким образом, есть 2 телескопа, включающих в себя в сумме 6 детекторов. У каждого детектора есть либо 64 (32 сектора+32 кольца у Si) либо 16 (кристаллов у CsI) каналов считывания.</p>
<p>То есть после ERRTelescopeDigitizer в выходном файле будут сформированы ветки с ERRTelescopeSiDigi, которые хранят в себе информацию с какой именно по счету станции телескопа они сняты, принадлежат кольцам или секторам, номер канала и ERRTelescopeCsIDigi, которые содержат в себе информацию о том с какой именно станции CsI они сняты и номер кристала CsI.</p>
<p>Выходным объектом таска является объект AculRaw. Его код нужно будет добавить в telescope/data и добавить в компиляцию.</p>
<p>В данном объекте ключевым атрибутом является массив C3[24][16] (это на самом деле 384 разных каналов из которых используем меньше, чем половину).</p>
<p>То есть в массив С3[i][j] для каждого события заполняем информацию об энергии из всех детекторов и времени (константное<br />
значение 2000) из секторов второго слоя каждого телескопа. Необходимо в C3[i][j] пишется либо амплитуда, либо время. Необходимо ввести процедуру соотнесения, которая позволяет выполнять переходы типа:</p>
<p>(ERRTelescopeSiDigi->StationNb(), ERRTelescopeSiDigi->Type(), ERRTelescopeSiDigi->ChanelNb(),Edep или Time) -> C3[i][j] (где Type() - кольца или сектора)</p>
<p>(ERRTelescopeCsIDigi->StationNb(), ERRTelescopeCsIDigi->ChanelNb(), Edep или Time) -> C3[i][j]</p>
<p>Амплитуда сигнала в digi выражена в энергетических MeV, а в C3 надо писать в отсчетах АЦП. Переход между ними будем называть "антикалибровкой", которая обратна калибровке выполняющейся по следующией процедуре:</p>
<p>E = a*Х + b для Si<br />
Е = система уравнений (она у нас есть),зависящая от а, b, c1, c2, p, N1, N2 для CsI<br />
E - мы береём из digi->Edep(),<br />
а, b - калибровоные параметры из файлов с расширением .cal (beSi.cal, beCsIa.cal, beCsIp.cal)<br />
c1, c2 - это коэффиценты, которые обеспечивают гладкость графика (одинаковые д/всего числа событий д/конкретного кристалла и конкретной частицы (протон или альфа))</p>
<p> </p> <p>Время переносится как,есть. Поля C3 соответсвующие временным характеристикам для которых нет digi заполняются числом 2000.</p>
<p> </p>