Developing #81
Усовершентсвования QTelescope симуляции и диджитизации
Status: | Закрыта | Start date: | 10/12/2017 | |
---|---|---|---|---|
Priority: | Низкий | Due date: | ||
Assignee: | Mikhail Kozlov | % Done: | 100% | |
Category: | QTelescope | |||
Target version: | v-1.0 |
Description
Необходимо доработать симуляцию и диджитизацию детектора QTelescope для экспериментов He10, S26
На данный момент разработаны:
qtelescope.geo.v1.root - геометрия детектора для S26 - три пары двухсторонних пластин кремния и стенок CsI
qtelescope.geo.v2.root - геометрия детектора для He10 - 6 односторонних пластин кремния
Класс симуляции с поддержкой поинтов в кремнии и CsI. Класс диджитизации с поддержкой только односторонних Si.
Структура веток на данный момент классическая: одна ветка под все поинты одного типа, и т.д.
Необходимо:
0. Создать класс ERQTelescopeSetup. И формировать геометрию симмуляций с ним. Создать файл базы данных сенсоров QTelescope. 2 типа сенсоров: кристалл CsI, пластина кремния. Пластины кремния бывают односторонние и двусторонние. И того и другого в детекторе может быть произвольное количество.
Интерфейс может быть такого типа:
ERQTelescopeSetup* setup = new ERQTelescopeSetup();
setup->AddSi("Type1",z1);
setup->AddCsI("Type1",z2);
1. Перестроить структуру веток по новому принипу отоброжающему структуру геометрии.
2. Доделать диджитизацию под новую структуру веток.
О диджитизации:
Диджи кремния это поинты собранные с полоски. В случае двухстороннего сенсора - чувствительный объем это квадрат. один квадрат в который попали поинты зажигает два диджи - горизонтальный и вертикальный.
Диджи CsI это все поинты собранные с кристала.
Пока поинты в диджитизации надо просто отсуммировать и найти время первого на диджи.
После модель ошибки будет введена наследованием от базового класса диджитизации(issue-78).
Related issues
History
#1 Updated by Mikhail Kozlov about 7 years ago
- Related to Developing #58: QTelescope симуляция added
#2 Updated by Mikhail Kozlov about 7 years ago
- Если я правильно понял, то в двухсторонних пластинах кремния мы не разносим X и Y стрипы по оси Z. Вместо этого считаем,что они как бы накладываются друг на друга, в пересечении получается квадратик, по которому вычисляем номера стрипов X и Y.
Так ли это? - Нужно ли прописывать отдельные классы диджи для односторонних и двухсторонних пластин кремния или просто различать их по какому-то параметру внутри класса?
- Если в геометрию добавляется односторонняя пластина, выбирает ли пользователь ее ориентацию вокруг оси Z?
#3 Updated by Sergey Belogurov about 7 years ago
отвечу на вопрос 1и 3. Да. Потому, что ионизация происходит в однм объеме. Рождаются элеткрон-дырочные пары. Электроны тянутся в одну сторону, дырки в другую. Т.о. стрипы с обеих сторон обслуживают одну и туже область пространства. 3) в жизни пользователь поворачивает пластину так или иначе. Стороны отличаются толщиной мертвого слоя - в этом смысле да, пользовательвыбирает ориентацию (всегда более тонким мертвым слоем в сторону мишени). С т.з. считывания ориентация пластины влияет только на преобразование номера стрипа в координату. Какой вывод? Должна быть орииентация по умолчанию.
#4 Updated by Vitaliy Schetinin about 7 years ago
1. да
2. С точки зрения системы считывания диджи для одностороннеого и диджи для двухстороннего одинаков. Просто во втором случае их в два раза больше. Поэтому нужно просто ввести такой атрибут класса Side. Кроме того, по нашей концепции что структура выходного файла отражает структуру детектора, в случае односторонней пластины будет одна ветка с digi, а в случае двухсторонней - две. см. ERRTelescopeDigitizer
3. Да. Ориентация строипов это параметр сенсора. Его нужно хранить в ERQTelescopeSetup. Стрипы могут быть вертикальные и горизонтальные. Нумерацией - сверху вниз/снизу вверх или справа налево/ слева направо - надо задаться по умолчанию.
#5 Updated by Sergey Belogurov about 7 years ago
Во как интересно! Два смысла ориентации. Я имел в виду, что у плоской пластины 2 больших грани и вы можете установить пластину либо одной гранью к мишени, либо другой. Прии это м вертикальные стрипы останутся вертикальными, а горизонтальные горизонтальными, но изменится пересчет номеров стрипов в координаты. Виталик пишет о задании направлений стрипов и, видимо, их нумерации. Поскольку две грани, о которых писал я, неравноправны (прежде всего - разная толщина мертвого слоя) в симуляции задавать надо все однозначно. У каждого сенсора из таблицы можно определить, что по умолчанию стрипы на стороне с более тонким мертвым слоем вертикальны, т.е. измеряют X. Также по умолчанию эта сторона повернута к мишени. Направление нумерации стрипов - задается в таблице. Дальше должны быть параметры, которые позволяют (мало ли какие нужды в эксперименте) изменить ориентацию пластины, как повернув ее вокруг оси пучка (оси Z) X->Y; Y->-X, так и перевернув вокруг оси X или Y. Прдлагаю Мише продумать удобную и непротиворечивую схему с учетом сказанного.
#6 Updated by Mikhail Kozlov about 7 years ago
Сергей Геннадьевич, вопрос по поводу толщины мертвого слоя в кремнии: это параметр, который задается в xml-файле и учитывается при создании геометрии, или он только на этапе диджитизации появляется, например?
#7 Updated by Sergey Belogurov about 7 years ago
Это параметр, который задается в xml файле и учитывается при создании геометрии. При работе с малозарядными ионами этим слоем можно пренебречь, но начина яот z~4 надо учитывать как при симуляции, так и при реконструкции. Один нюанс. Нсди ширина и геометрия стрипов детектора - точно известы, толщина мертвого слоя - это результат домашнего измерения, поэтому возможна ситуация, когда сначала появились одни значения, потом измерили более точно.
#8 Updated by Mikhail Kozlov about 7 years ago
Запушил все изменения по текущей задаче.
На данный момент, структура выходных веток соотвествует структуре геометрии и в симуляции, и в диджитизации.
Для автоматического преобразования входных веток поинтов в ветки диджи используется особое именование веток, также названия всех чувствительных объемов начинаются со слова "Sensitive".
Поворот вокруг оси Z для кремния задается третьим параметром в ERQTelescopeSetup::AddSi() и говорит о том, какие координаты считываются на первой стороне пластины.
qTelescopeSetup->AddSi("DoubleSi1", 0, "X"), так на фронтальной стороне стрипы считывают X-координату.;
Толщина мертвого слоя спереди и сзади задается в xml-файле, либо через перегрузку того же интерфеса AddSi():
qTelescopeSetup->AddSi("DoubleSi1", 0, "X", 0.001, 0.0015), где последние два параметра сооветствуют толщине мертвого слоя спереди и сзади пластины. Если параметры мертвого слоя передаются через интерфейс, то толщины из xml для данной пластины игнорируются.
#9 Updated by Vitaliy Schetinin almost 7 years ago
Фиксы
1) undefined symbol: _ZN17ERQTelescopeSetupD1Ev - это сообщение означает, что у класса ERQTelescopeSetup деструктор объявлен, но не реализован
2) QTelescope_Si24_sim.C - этот макрос сейчас не работает. Его либо удулить, лио переделать на новый манер
#10 Updated by Vitaliy Schetinin almost 7 years ago
- Target version changed from v-0.4 to v-1.0
- % Done changed from 0 to 100
#11 Updated by Vitaliy Schetinin almost 7 years ago
- Status changed from Открыта to Закрыта