Developing #81

Усовершентсвования QTelescope симуляции и диджитизации

Added by Vitaliy Schetinin over 6 years ago. Updated about 6 years ago.

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

Related to Developing #58: QTelescope симуляция Открыта 07/02/2017

History

#1 Updated by Mikhail Kozlov over 6 years ago

#2 Updated by Mikhail Kozlov over 6 years ago

  1. Если я правильно понял, то в двухсторонних пластинах кремния мы не разносим X и Y стрипы по оси Z. Вместо этого считаем,что они как бы накладываются друг на друга, в пересечении получается квадратик, по которому вычисляем номера стрипов X и Y.
    Так ли это?
  2. Нужно ли прописывать отдельные классы диджи для односторонних и двухсторонних пластин кремния или просто различать их по какому-то параметру внутри класса?
  3. Если в геометрию добавляется односторонняя пластина, выбирает ли пользователь ее ориентацию вокруг оси Z?
     

#3 Updated by Sergey Belogurov over 6 years ago

отвечу на вопрос 1и 3. Да. Потому, что ионизация происходит в однм объеме. Рождаются элеткрон-дырочные пары. Электроны тянутся в одну сторону, дырки в другую. Т.о. стрипы с обеих сторон обслуживают одну и туже область  пространства.  3) в жизни пользователь поворачивает пластину так или иначе. Стороны отличаются толщиной мертвого слоя - в этом смысле да, пользовательвыбирает ориентацию (всегда более тонким мертвым слоем  в сторону мишени). С т.з. считывания ориентация пластины влияет только на преобразование  номера стрипа в координату. Какой вывод? Должна быть орииентация по умолчанию. 

#4 Updated by Vitaliy Schetinin over 6 years ago

1. да

2. С точки зрения системы считывания диджи для одностороннеого и диджи для двухстороннего одинаков. Просто во втором случае их в два раза больше. Поэтому нужно просто ввести такой атрибут класса Side. Кроме того, по нашей концепции что структура выходного файла отражает структуру детектора, в случае односторонней пластины будет одна ветка с digi, а в случае двухсторонней - две. см. ERRTelescopeDigitizer

3. Да. Ориентация строипов это параметр сенсора. Его нужно хранить в ERQTelescopeSetup. Стрипы могут быть вертикальные и горизонтальные. Нумерацией - сверху вниз/снизу вверх или справа налево/ слева направо - надо задаться по умолчанию.

#5 Updated by Sergey Belogurov over 6 years ago

Во как интересно!  Два смысла ориентации.  Я имел в виду, что у плоской пластины 2 больших грани и вы можете установить пластину либо одной гранью к мишени, либо другой.  Прии это м вертикальные стрипы останутся вертикальными, а горизонтальные горизонтальными, но изменится пересчет номеров стрипов в координаты. Виталик пишет о задании направлений стрипов и, видимо, их нумерации. Поскольку две грани, о которых писал я, неравноправны (прежде всего - разная толщина мертвого слоя) в симуляции задавать надо все однозначно.  У каждого сенсора из таблицы  можно определить, что по умолчанию стрипы на стороне с более тонким мертвым слоем вертикальны, т.е. измеряют X. Также по умолчанию эта сторона повернута к мишени. Направление нумерации стрипов - задается в таблице. Дальше должны быть параметры, которые позволяют (мало ли какие нужды в эксперименте) изменить ориентацию пластины, как повернув ее вокруг оси пучка (оси Z) X->Y; Y->-X, так и перевернув вокруг оси X или Y.  Прдлагаю Мише продумать удобную и непротиворечивую схему с учетом сказанного.

#6 Updated by Mikhail Kozlov over 6 years ago

 Сергей Геннадьевич, вопрос по поводу толщины мертвого слоя в кремнии: это параметр, который задается в xml-файле и учитывается при создании геометрии, или он только на этапе диджитизации появляется, например?

#7 Updated by Sergey Belogurov over 6 years ago

Это параметр, который задается в xml файле и учитывается при создании  геометрии. При работе с малозарядными ионами этим слоем можно пренебречь, но начина яот z~4 надо учитывать как при симуляции, так и при реконструкции.  Один нюанс. Нсди ширина и геометрия стрипов детектора - точно известы, толщина мертвого слоя - это результат домашнего измерения, поэтому возможна ситуация, когда сначала появились одни значения, потом измерили более точно.   

#8 Updated by Mikhail Kozlov over 6 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 over 6 years ago

Фиксы

1) undefined symbol: _ZN17ERQTelescopeSetupD1Ev - это сообщение означает, что у класса ERQTelescopeSetup деструктор объявлен, но не реализован

2) QTelescope_Si24_sim.C - этот макрос сейчас не работает. Его либо удулить, лио переделать на новый манер

#10 Updated by Vitaliy Schetinin about 6 years ago

  • Target version changed from v-0.4 to v-1.0
  • % Done changed from 0 to 100

#11 Updated by Vitaliy Schetinin about 6 years ago

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

Also available in: Atom PDF