Developing #58
QTelescope симуляция
Status: | Открыта | Start date: | 07/02/2017 | |
---|---|---|---|---|
Priority: | Низкий | Due date: | ||
Assignee: | - | % Done: | 0% | |
Category: | QTelescope | |||
Target version: | v-0.4 |
Description
Неободимо реализовать геометрию и класс детектора для квадратного телескопа ERQTelescope.
Геометрия:
Детектор состоит из нескольки квадратных пластин из кремния(silicon), расположены друг за другом и массива кристалов CsI.
Пластины кремния: размер пластины - квадрат стороной 99.2 мм, чувствительная область - квадрат стороной 94.08 мм. (делаем объем(к примеру station) большим размером и внего вставляем объем меньшего размера, который назначаем чувствительным). толщина кремния 0.3 мм,
С одной стороны 64 стрипа, вытянутых вдоль X, с шагом 1.47 мм, с другой стороны такие же стрипы, вытянутые вдольY. (в симуляции этого не учитываем)
Позади второй пластины будут стоять 4 параллелепипедa (для начала, на самом деле форма сложнее) из кристаллов CsI (как называется материал смотреть в Gadast). Размер каждого 50х50х40 мм. Стенка кристалов - массив 2x2
Расположение по оси Z пластин и стенки кристаллов ввести переменными в начале макроса геометрии. Мишень всегда распологается в нуле. Первая станция расположена на расстоянии 5 см, вторая через 1 см, стенка еще через 1 см.
Симуляция:
Добавить в симуляцию пещеру и QTelescope
1) С помощью FairBoxGeberator обстрелять протонами импульсом 500 МеВ, испускаемые из нуля. Задать диапазон углов theta так, чтобы протоны не улетали мимо детектора.
2) С помощью ERIonGenerator обстарелять ионом Si24. Энергия 40 Мев на нуклон
Related issues
History
#1 Updated by Vitaliy Schetinin over 7 years ago
- Assignee changed from Vitaliy Schetinin to Anonymous
#2 Updated by Anonymous over 7 years ago
Как назначить объем чувствительным ?(Если это нужно делать в макросе геометрии)
И какой материал лучше использовать для station ?
#3 Updated by Vitaliy Schetinin over 7 years ago
1) Объем назначается чувствительным в классе детектора. В методе CheckIfSensetive/
2) Материал станции нам не важен. можно просто вакуум. можно кремний. он все равно вытеснится.
#4 Updated by Sergey Belogurov over 7 years ago
Уточнение: Телескоп состоит из одной Si пластины со стрипами с 2-х сторон (X и Y), и 4-х CsI за пластиной.
Несколько таких телескопов (минимум 4 ) выстроены в ряд по горизонтали
Cтрипы, вытянутые вдоль Y измеряют X, поэтому называются X стрипами
#5 Updated by Anonymous over 7 years ago
Sergey Belogurov wrote:
Уточнение: Телескоп состоит из одной Si пластины со стрипами с 2-х сторон (X и Y), и 4-х CsI за пластиной.
Несколько таких телескопов (минимум 4 ) выстроены в ряд по горизонтали
Cтрипы, вытянутые вдоль Y измеряют X, поэтому называются X стрипами
Какая тогда получается толщина у этой пластины ? Как 2 нынешнее (0,6 мм) ? Или все так же 0.3 ?
#6 Updated by Vitaliy Schetinin over 7 years ago
Толщина та же. Нужно просто в текущую полоску добавить массив квадратиков. В итоге получится большой массив 64x64 квадратиков. При формировании поинта нужно запомнить у него не только номер полоски, но и номер квадратика. (координату по X и по Y. предположим номер полоски будет номером загоревшегося стрипа по X, номер квадратика - номер загоревешгося стрипа по Y) Все четыре телескопа будут в этой геометрии реализованы. то есть мы всталяем 4 раза станцию кремния и 4 раза стенку с CsI
В итоге будут два типа поинтов: ERQTelescopeSiPoint и ERQTelescopeCsiPoint. В первом будет запомнен номера стрипов по X и по Y, номер станции по порядку, во втором номер CsI(0..3) и номер стенки.
#7 Updated by Anonymous over 7 years ago
Геометрия актуализирована.
В письме было написано:
"Также решил RTelescope и QTelescope сделать одной папкой, так как у них общие процедуры обработки."
Что это за процедуры обработки ? (Они нас касаются?)
И в данный момент в папке телескопов только два файла для Qtelescope, соответсвенно нужно создать полный набор файлов, как для Rtelescope и скинуть все это дело в папку telescope ?
#8 Updated by Vitaliy Schetinin over 7 years ago
1) Вас пока это не касается. Просто работайте в папке telescope
#9 Updated by Vitaliy Schetinin over 7 years ago
Посмотрел геометрию. Все отлично. Жду класс симуляции с двумя типами поинтов
#10 Updated by Anonymous over 7 years ago
Vitaliy Schetinin wrote:
Посмотрел геометрию. Все отлично. Жду класс симуляции с двумя типами поинтов
Все вроде бы готово, за исключением главного: я не понимаю каким образом нужно использовать фуннкции
CurrentVolOffID и CurrentVolID
для получения номера стрипов, станций и так далее.
В том же BeamDet это выглядит как магия
if (fELoss > 0.){ | |
if(volName.Contains("plate")) | |
{ | |
gMC->CurrentVolID(fTofNb); | |
AddTOFPoint(); | |
} | |
if(volName.Contains("gas")) | |
{ | |
gMC->CurrentVolOffID(0, fMWPCWireNb); | |
gMC->CurrentVolOffID(1, fMWPCPlaneNb); | |
gMC->CurrentVolOffID(2, fMWPCNb); | |
AddMWPCPoint(); | |
} | |
} |
#11 Updated by Vitaliy Schetinin over 7 years ago
Когда ты создаешь геометрию, ты используешь AddNode метод. Его вторым аргументом является номер копии данного объекма внутри материнского. Фактически именно это число и нужно тебе достать. CurrentVolID возвращает в свой аргумент номер копии текущего объема в его материнском. То есть в твоем случае вернет номер квадратика в полоске, потому что текущим во время вызова ProcessHits в любом случае является чувствительный(который укаан в CheckIfSebsetive.) gMC->CurrentVolOffID во второй аргумент пишет номер копии обяема если поднятся наверх по иерархии объемов на количество уровней указанное в первом аргументе. gMC->CurrentVolID(copyNb) и gMC->CurrentVolOffID(0,copyNb) сделают одно и тоже.
Поэтому для получения номера квадратика (или номер стрипа по X) используй gMC->CurrentVolID(copyNb). Для получения номера полоски gMC->CurrentVolOffID(1,copyNb). Для получения номера станции gMC->CurrentVolOffID(3,copyNb)(если я правильно помню структуру твоей геометрии)
#12 Updated by Anonymous over 7 years ago
На моем ноутбуке, собрался ER, как войти в Jenkins я не понял, поэтому запушил так.
#13 Updated by Vitaliy Schetinin over 7 years ago
ок. Посмотрел.
1) Необходимо в класс ERQTelescopeCsIPoint добавить интерфейсы к fN_Wall,fN_Block; в класс ERQTelescopeSiPoint - fN_Station,fX_Strip,fY_Strip
2) Добавить макрос симуляции и eventDisplay в macro/QTelescope(см как в других детекторах). Как ты проверял то?
3) Метод CheckIfSensetive почему то определяет только один тип чувствительного объяема. Будет скорее всего генерироваться только один тип поинтов.
4) С помощью FairBoxGeberator обстрелять протонами импульсом 500 МеВ, испускаемые из нуля. Задать диапазон углов theta так, чтобы протоны не улетали мимо детектора.
5) С помощью FairBoxGeberator обстрелять нейтронами импульсом 500 МеВ, испускаемые из нуля.
#14 Updated by Mikhail Kozlov about 7 years ago
- Related to Developing #81: Усовершентсвования QTelescope симуляции и диджитизации added