Developing #58

QTelescope симуляция

Added by Vitaliy Schetinin over 7 years ago. Updated over 7 years ago.

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

Related to Developing #81: Усовершентсвования QTelescope симуляции и диджитизации Закрыта 10/12/2017

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

Also available in: Atom PDF