Developing #59

RTelescope симуляция

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

Status:ОткрытаStart date:07/02/2017
Priority:НормальныйDue date:
Assignee:-% Done:

0%

Category:RTelescope
Target version:v-0.4

Description

Разработать геометрию и провести симуляцию для эксперимента S28

Детектор представляет из себя кольцо кремния. Разбитое на чувствительные секторы как по радиусу, так и по углу  фи. 16 полос по радиусу и 16 секторов по углу фи.

Класс ERTelescope уже реализован в er для эксперимента Li10. В рамках данной задачи нужно изменить его геометрию и провести отлаживающие симуляции.

Стоит обратить внимение,что геометрия детектора сделана не с помощью примитива Tube, а c помощью примитива Sphere(https://geant4.web.cern.ch/geant4/G4UsersDocuments/UsersGuides/ForApplicationDeveloper/html/Detector/geomSolids.html) Это связано с багом при транспорте частиц через tube, когда он является чувствительным объемом. У сектора полой сферы задан большой радиус для того, чтобы отклонение от плоскости было незначительным.

Геометрия:

Внутренний радиус: 1.6 cm

Внешний радиус: 4.1 cm

Толщина 0.1 cm

Новую геометрию необходимо обозначить как v2 и провести с ней симуляции прописанные в макросе RTelescope_sim.C

ringCsI.png (408 KB) Sergey Belogurov, 07/07/2017 07:54 PM

CrystCsI.png (52.3 KB) Sergey Belogurov, 07/07/2017 07:54 PM

c1.gif (27.6 KB) Vratislav Chudoba, 09/07/2017 06:43 PM

RTelescope_sim_test.C Magnifier (4.98 KB) Vratislav Chudoba, 09/07/2017 06:44 PM

sim.root (184 KB) Vratislav Chudoba, 09/07/2017 06:44 PM

show_sim.C Magnifier (1.18 KB) Vratislav Chudoba, 09/07/2017 06:45 PM

show_sim.C Magnifier (1.27 KB) Vitaliy Schetinin, 09/19/2017 08:14 AM

c1.png (47.8 KB) Vitaliy Schetinin, 09/19/2017 08:14 AM

History

#1 Updated by Vitaliy Schetinin over 7 years ago

  • Assignee changed from Vitaliy Schetinin to Anonymous

#2 Updated by Vitaliy Schetinin over 7 years ago

По текущему состоянию:

1) Этот детектор раньше назывался DSRD. Где то я забыл переименовать. Замени везде в коде этой папки DSRD на RTelescope.

2) В макросе симуляции поменяй, пожалуйста, геометрию на новыую версию; настрой генератор так, чтобы он размазывал направление полета немного по тета и от 0 до 360 по фи.

3) Сейчас в коде ProcessHits используются статические переменные. Это старый подход. По новому эти переменные стали атрибутами класса. Смотри как написано в документации и у Миши в BeamDet. И посмотри всю переписку по симуляции BeamDet(http://er.jinr.ru/develop/issues/56).

#3 Updated by Vitaliy Schetinin over 7 years ago

  • Assignee changed from Anonymous to Anonymous

#4 Updated by Sergey Belogurov over 7 years ago

Совсем забыл, что за кремниевым кольцом с зазором  около 1 мм стоит массив кристаллов CsI. Из ниже(выше?)следуюших рисунков  видна геометрия. СГ

#5 Updated by Vitaliy Schetinin over 7 years ago

Посмотреть пример реализации детектора с двумя активными объёмами можно в Beamdet или Gadast

#6 Updated by Mikhail Kozlov over 7 years ago

В классе симуляциии почему-то не запоминаем PDG частиц, вместо них масса. Так и должно быть?

#7 Updated by Mikhail Kozlov over 7 years ago

Этот детектор сейчас унаследован не от ERDetector.  Нужно исправить?

#8 Updated by Vitaliy Schetinin over 7 years ago

Да. Это преобразованный очень старый класс. Его надо привести к стандартному виду. От BeamDet в итоге не будет отличаться.

#9 Updated by Anonymous over 7 years ago

Не совсем понимаю как реализовать такую форму кристалла CsI. Одними AddNode не  сделать ?

#10 Updated by Vitaliy Schetinin over 7 years ago

Каждый кристал можно собрать из двух примитивов TRD(тут смотреть параметризацию - https://geant4.web.cern.ch/geant4/G4UsersDocuments/UsersGuides/ForApplicationDeveloper/html/Detector/geomSolids.html).https://root.cern.ch/doc/master/classTGeoManager.html TGeoManager->MakeTrd1();

Эти примитивы нужно сложить с помощью булевской операции:https://root.cern.ch/doc/master/classTGeoCompositeShape.html

 

#11 Updated by Anonymous over 7 years ago

Залил геометрию

#12 Updated by Vitaliy Schetinin over 7 years ago

Выглядит здорово!

Я влил тебе в ветку все изменения из dev. Для того, чтобы было куда подсматривать. Обновись.

На данный момент по смиуляции нужно сделать следующее:

1) У нас будет два типа поинтов в RTelescope. Те что в силиконе и те, что в CsI. Нужно сделть два разных класса под них .Для этого переименнуй текущий в ERRTelescopeSiPoint. И создай класс ERRTelescopeCsIPoint.

2) По классу BeamDet/ERBeamDet.cxx можно отследить как работать в симуляции, когда у нас два типа чувствительных объемов.

а) Нужно зарегистрировать две ветки поинтов в выходном файле

б) Нужно ввести два чувствительных лобъема в CheckIfSensetive

в) Нужно сделать две функции типа AddPoint и вызывать ту, которая соответвует типу чувствительного объема в котором ты сейчас находишься.

г) У тебя были Sensor  и Sector для описания того, куда попала частица в силиконе. В случае CsI это просто номер кристала.

#13 Updated by Sergey Belogurov over 7 years ago

Уточнение по геометрии. Оказалось, что внешний радиус чувствительной области кремниевой пластины - 42 мм, а не 41.   Т.е.  16 активных колец заполняют радиусы от 16 мм до 42 мм

 Кроме того, вокруг и внутри чувствительной области есть пасивные кольца кремния. Снаружи от радиуса 42мм до радиуса 50мм  и изнутри от радиуса 15 мм до радиуса 16 мм. 

#14 Updated by Anonymous over 7 years ago


Cделал два типа поинтов и поправил геометрию.

#15 Updated by Vitaliy Schetinin over 7 years ago

Посмотрел. Тывсе правильно понял. И про геометрию и про два типа поинтов. Можно переходить к осознанию диджитизации

#16 Updated by Vratislav Chudoba about 7 years ago

Проверяв симмуляцию, нактнулся на нехорошую вещь. Она понятна из картинки в приложению (c1.gif и show_sim.C).

С помощью макроса RTelescope_sim_test.C в одном событии разыгриваются две частицы: протон с энергией 10 МэВ и альфа с энергией 70 МэВ. Видим, что обе частицы попадают в разыне места (как и было заложено в симмуляции), видим даже, что у них есть разные ID (пад 2 и 3). Когда строим сумарное выделение энергии в первом телескопе (протон должен остановиться в R1Si2, альфа в R1CsI) видим энергию около 80 МэВ (пад 4). Я бы ожидал увидеть точно 80 МэВ так как 70+10=80. Но если делаем отбор по сорту частицы, видим физически неправильную картинку. В паде 5 должны видеть 10 МэВ (но он пустой), а в паде 6 должно быть 70 МэВ.

Предполагаю, что проблема может быть связанна с (не)обнулением информации залитой в поинты во время итерации по одному событии. Или предполагалось, что в одном событию может быть только одна частица, а это неправильное предположение. Также напрыгает, что на 10 событий по 2 частицам видим всего лишь 20 поинтов. Наверно слишком высокие пороги для рождения вторичных частиц.

#17 Updated by Sergey Belogurov about 7 years ago

Я не получил майла по замечанию Вратислава. Поэтому залез и добавил watchers. См, пожалуйста, предыдущий коммент.

 

#18 Updated by Vitaliy Schetinin about 7 years ago

Олег, путаница скорее всего из-за того как введены чувствительные объемы. У тебя сейчас чувствительным названо все, что в своем имени имеет подстроки: sensor,sector,crystall. Но такие префиксы в геометрии v3 имеют не только предпологаемые чувствительные объемы, но и некоторые материнские к ним. Это может непредсказуемо отражаться на поведении метода ProcessHits. Для начала сделай более четкие отбор чувствительных объемов. К примеру добавь им в имя postfix sensitive.

#19 Updated by Anonymous about 7 years ago

Я поменял названия чувствительных объёмов в геометрии и ProcessHits, но ошибка в симуляции остаётся.

#20 Updated by Vitaliy Schetinin about 7 years ago

Vratislav Chudoba wrote:

Проверяв симмуляцию, нактнулся на нехорошую вещь. Она понятна из картинки в приложению (c1.gif и show_sim.C).

С помощью макроса RTelescope_sim_test.C в одном событии разыгриваются две частицы: протон с энергией 10 МэВ и альфа с энергией 70 МэВ. Видим, что обе частицы попадают в разыне места (как и было заложено в симмуляции), видим даже, что у них есть разные ID (пад 2 и 3). Когда строим сумарное выделение энергии в первом телескопе (протон должен остановиться в R1Si2, альфа в R1CsI) видим энергию около 80 МэВ (пад 4). Я бы ожидал увидеть точно 80 МэВ так как 70+10=80. Но если делаем отбор по сорту частицы, видим физически неправильную картинку. В паде 5 должны видеть 10 МэВ (но он пустой), а в паде 6 должно быть 70 МэВ.

Предполагаю, что проблема может быть связанна с (не)обнулением информации залитой в поинты во время итерации по одному событии. Или предполагалось, что в одном событию может быть только одна частица, а это неправильное предположение. Также напрыгает, что на 10 событий по 2 частицам видим всего лишь 20 поинтов. Наверно слишком высокие пороги для рождения вторичных частиц.

Вратислав:

1) В паде 5 ничего нет, потому что в RTelescope1CsIPoint.fELoss при RTelescope1CsIPoint.fPID меньше 3000 ничего нет. Протон остался в первых двух кремниях. Так работает Draw в случае хранения в ветках TClonesArray. Он строит только те entry в которых size каждой переменной Draw при применении условия больше нуля.

2) На eventDisplay я вижу, что альфа прошила весь setup насквозь. Это объясняет историю с шестым падом

#21 Updated by Vitaliy Schetinin about 7 years ago

После комментария от Сергея Геннадиевича о том, что если посчитать руками, то альфа должна остановиться в первом CsI, посмотрел еще раз. И увидел:

FairIonGenerator *ionGen = new FairIonGenerator(Z, A, Q, 1, 0., 0., momentumAlpha, xA, yA, zA);

Потом посмотрел тут: http://fairrootgroup.github.io/FairRoot/d9/dd3/classFairIonGenerator.html

И увидел:

px,py,pzMomentum components [GeV] per nucleon!

Поменял на:

FairIonGenerator *ionGen = new FairIonGenerator(Z, A, Q, 1, 0., 0., momentumAlpha/4, xA, yA, zA);

И альфа остановилась в первом CsI

#22 Updated by Vitaliy Schetinin about 7 years ago

Еще раз проверил эту задачу. Нашел нотацию для Draw, чтобы рисовать суммы гистограмм:

tr->Draw("Sum$(RTelescope1Si1Point.fELoss)+Sum$(RTelescope1Si2Point.fELoss)+Sum$(RTelescope1CsIPoint.fELoss)");

Построил картинки которые строил Вратислав. На них теперь все верно:

1) Сумма депозитов энергии частицы которая прошла только кремнии: 9.967 МэВ

2) Сумма депозитов частицы которая прошла еще и CsI: 69.937 МэВ

3) Сумма всех депозитов в первых кремниях и телескопе: 79.34 МэВ

Also available in: Atom PDF