Developing #138
Developing #134: Симуляция эксперимента - первое приближение
Проверка работы реконструкции телескопа T1
Status: | Закрыта | Start date: | 02/17/2018 | |
---|---|---|---|---|
Priority: | Высокий | Due date: | 03/06/2018 | |
Assignee: | Vratislav Chudoba | % Done: | 100% | |
Category: | Software | |||
Target version: | - |
Description
Проверить:¶
- правильность получения координаты с детектора;
- наличие dE-E диаграмм;
- идентификацию частиц с помощью графических вырезов;
- построение вектора регистрируемой частицы (3He) с учетом реконструированной точки прохождения реакции и сравнение с MCTrack;
Результаты:¶
Вся функциональность проверялась в ветке "dev"
commit fa3d6cd9f146706da436500b202a2c7d355f2f7f
Merge: 1dd6321 4b81d63
Author: Mikhail Kozlov
Date: Thu Mar 8 00:44:47 2018 +0300
Макросы симуляции и восстановления приложены их отношение к пунктам понятно из описания. Кстати, пришлось сделать некоторые переменные класса ERQTelescopeTrack публичными, чтобы их читать с помощью макроса. Этого изменения кода в вышеупомянутом комите нет.
пункт 1:¶
Проверка восстановления координат попадения частицы в детектор проведена, картинки dE-E получены для пучка состоящего из 1,2,3H и 3,4,6He.
пункт 2:¶
Диаграммы dE-E можно увидеть в описанию предыдущего пункта.
пункт 3:¶
Проверка работы с геометрическими вырезами выглядит следующим образом:
Картинка, которая на первой взглад пугает на самом деле очень хорошая и красивая. В симмуляции пускались два пучка:
ERIonMixGenerator* generator = new ERIonMixGenerator(ionName, Z, A, Q, 1); generator->AddBackgroundIon("Triton", 1, 3, 1, 0.2 / 0.20); generator->AddBackgroundIon("Alpha", 1, 4, 1, 0.4 / 0.60); generator->AddBackgroundIon("Deuteron", 1, 2, 1, 0.2 / 0.20); generator->AddBackgroundIon("proton", 1, 1, 1, 0.2 / 0.20); generator->SetKinERange(0.001, 0.02); Double32_t sigmaTheta = 0.004*TMath::RadToDeg(); generator->SetThetaSigma(0, 0); generator->SetThetaRange(16, 18); generator->SetPhiRange(0, 270); generator->SetBoxXYZ(2, 2, 2, 2, 2.);
и
ERIonMixGenerator* generator2 = new ERIonMixGenerator("HE3", 2, 3, 2, 1); generator2->SetKinERange(0.001, 0.03); generator2->SetThetaSigma(0, 0); generator2->SetThetaRange(10, 12); generator2->SetPhiRange(90, 360); generator2->SetBoxXYZ(8, 2, 8, 2, 2.);
Их попадение в детектор видно на панели 6. Поскольку оба пучка присутствовали в каждом событию, из-за их распределения по углу Фи в детектор попадает 1/3 пучка 6He (включая примеси) и 2/3 пучка 3He из всего набора событий. Значит вероятность того, что две частицы попадают одновременно в детектор равна 2/9. В первом столбце видим грязную картину dE-E и присутствие грязи обясняется одновременным попаданием двух частиц и накладыванием амплитуд (картинка суммарная по всем стрипам).
Реконструкция точки попадения в детектор на картинке 3 показывает два локуса пучка и синие прямоуголники вызванные неоднозначностью реконструкции, когда сигнал появляется в двух стрипах на каждой стороне одновременно. Это ожидаемый эффект и картинка правильная.
На картинке 2 показано распределение точек попадения в детектор с учетом выреза частицы 3He. Видим замечательный отбор искоемой частицы с небольшим загразнением в местах, где можно ожидать неоднозночность реконструкции позиции из-за регистрации двух частиц.
Количественный анализ картинки 3 основан на следующих соображениях: в локусе зеленного вылета видим 3266 событий, в красном вырезе 5737. В сумме получается 9003. Если добавим точки, которые в неправильных местах (с учетом вероятности попадения двух частиц в детектор одновременно - 2/9) получаем цифру примерно 11000, которая очень близко к полной статистике картинки 3.
пункт 4:¶
По аналогии с пунктом 3 использовались два генератора, на этот раз без примесий. Видим картинку качественно похожую на ту, которая представлена в пункте 3. Это сильно повлияло на очистку dE-E картинки и чистоту отбора (см. панель 2).
Для восстановления искаемой частицы, которая попадала в телескоп применялся макрос check3He.C, в котором создается новое дерево с веткой particle класса TLorentzVector, в которой должна храниться информация о налетающем 3He. В переменной energy просто дублируется восстановленная кинетическая энергия 3He. Картинку выводим с помощью макроса showT1Sim.C.
Для того, чтобы увидеть на панели 5 ожидаемую разницу между энергией MCTrack и ERQTelescopeTrack пришлось уделить особое внимание последовательности включения генераторов в FairPrimaryGenerator (см. Известные проблемы). На панели шесть видим пик в близи нуля, который показывает разницу между разыгранной энергией и восстановленной
tr->Draw("MCTrack.fEnergy*1000-2809 - ERQTelescopeTrack_DoubleSi_SD2_XY_1.fSumEdep*1000", "cut3He && MCTrack.fPdgCode == 1000020030");
Количественный анализ не проводился, но восстановление на перый взглад работает.
Известные проблемы¶
Нет доступа к данным¶
В вышеупомянутом комите отсутствуют функции доступа к данным (нужны в маркосе check3He.C). Приходится модифицировать код классов и менять переменные классов из private на public.
Энергия пучка¶
Если задаем пучок как
Int_t Z = 2, A = 6, Q = 2;
TString ionName = "6He";
ERIonMixGenerator* generator = new ERIonMixGenerator(ionName, Z, A, Q, 1);
generator->AddBackgroundIon("Triton", 1, 3, 1, 0.2 / 0.20);
generator->AddBackgroundIon("Alpha", 1, 4, 1, 0.4 / 0.60);
generator->AddBackgroundIon("HE3", 2, 3, 2, 0.2 / 0.20);
generator->AddBackgroundIon("Deuteron", 1, 2, 1, 0.2 / 0.20);
generator->AddBackgroundIon("proton", 1, 1, 1, 0.2 / 0.20);
generator->SetKinERange(0.001, 0.02);
то заданная энергия касается только основной частицы - 6He. Для остальных из картинки видим следующее:
частица | протон | дейтон | тритон | 3He | 4He | 6He |
энергия (МэВ) | 30 | 15 | 10 | 40 | 30 | 20 |
Откуда взялись такие энергии?
Сравнение восстановленной и симмулированной энергии.¶
Напрямую невозможно сравнивать записанную информацию в ветках класса TClonesArray с помощью TTree::Draw и отборов. Это скорее всего связанно с тем, что такое сравнение происходить по элементам массива (например М1[0] - М2[0], M1[1] - M2[1]). Так просто работает TTree::Draw. Поскольку в текущей задаче у нас была максимальная управляемость пучком, было можно легко добиться результата. Если будет задача комплексная и полетит много разных частиц, придется сравнивать симуляцию и реконструкцию пособытийно. Это очень неприятная переспектива.
History
#1 Updated by Vratislav Chudoba over 6 years ago
- % Done changed from 0 to 10
При толщине первого слоя 20 мкм и второго 1 мм получается очень интересная dE-E картина. Разыгривался пучек с энергией от 1 до 192 МэВ. Картина показывает хорошое поведение dE-E и отличную возможность отличить частицы. Видим, что толщина первого слоя дает надежду хорошо выделить нам нужные 3He с энергией до 15 МэВ.
#2 Updated by Sergey Belogurov over 6 years ago
При запуске симуляции geant выдает список всех процессов для всех частиц, если поставитиь нужный уровень verbosity
Какие-то ядерный реакции там точно есть.
Виталик, напишите, пожалуйста, в how to что-то типа "monitoring G4 work". Где ставить verbosity,
что можно увидеть с разными значениями и, несколько более трудоемко, как сделать заново симуляцию, в
которй будут видны шаги в заранее выбранных номерах событий (вроде бы это реально если seed под контролем?)
#3 Updated by Vitaliy Schetinin over 6 years ago
- Related to Developing #146: Поиск трека в квадратном телескопе QTelescope added
#4 Updated by Vratislav Chudoba over 6 years ago
- Related to deleted (Developing #146: Поиск трека в квадратном телескопе QTelescope)
#5 Updated by Vratislav Chudoba over 6 years ago
- File exp1803_sim_digi_T1pos.C added
- File showT1Sim.C added
- Due date set to 03/06/2018
- Start date set to 02/17/2018
- % Done changed from 0 to 50
Проверка восстановления координат попадения частицы в детектор проведена, картинки dE-E получены для пучка состоящего из 1,2,3H и 3,4,6He.
Интересный факт:
Если задаем пучок как
Int_t Z = 2, A = 6, Q = 2;
TString ionName = "6He";
ERIonMixGenerator* generator = new ERIonMixGenerator(ionName, Z, A, Q, 1);
generator->AddBackgroundIon("Triton", 1, 3, 1, 0.2 / 0.20);
generator->AddBackgroundIon("Alpha", 1, 4, 1, 0.4 / 0.60);
generator->AddBackgroundIon("HE3", 2, 3, 2, 0.2 / 0.20);
generator->AddBackgroundIon("Deuteron", 1, 2, 1, 0.2 / 0.20);
generator->AddBackgroundIon("proton", 1, 1, 1, 0.2 / 0.20);
generator->SetKinERange(0.001, 0.02);
то заданная энергия касается только основной частицы - 6He. Для остальных из картинки видим следующее:
частица | протон | дейтон | тритон | 3He | 4He | 6He |
энергия (МэВ) | 30 | 15 | 10 | 40 | 30 | 20 |
Откуда взялись такие энергии?
#6 Updated by Vratislav Chudoba over 6 years ago
- File cut.root added
- File cutsPos.root added
- File exp1803_sim_digi_T1pos.C added
- File showT1Sim.C added
Проверка работы с геометрическими вырезами выглядит следующим образом:
Картинка, которая на первой взглад пугает на самом деле очень хорошая и красивая. В симмуляции пускались два пучка:
ERIonMixGenerator* generator = new ERIonMixGenerator(ionName, Z, A, Q, 1); generator->AddBackgroundIon("Triton", 1, 3, 1, 0.2 / 0.20); generator->AddBackgroundIon("Alpha", 1, 4, 1, 0.4 / 0.60); generator->AddBackgroundIon("Deuteron", 1, 2, 1, 0.2 / 0.20); generator->AddBackgroundIon("proton", 1, 1, 1, 0.2 / 0.20); generator->SetKinERange(0.001, 0.02); Double32_t sigmaTheta = 0.004*TMath::RadToDeg(); generator->SetThetaSigma(0, 0); generator->SetThetaRange(16, 18); generator->SetPhiRange(0, 270); generator->SetBoxXYZ(2, 2, 2, 2, 2.);
и
ERIonMixGenerator* generator2 = new ERIonMixGenerator("HE3", 2, 3, 2, 1); generator2->SetKinERange(0.001, 0.03); generator2->SetThetaSigma(0, 0); generator2->SetThetaRange(10, 12); generator2->SetPhiRange(90, 360); generator2->SetBoxXYZ(8, 2, 8, 2, 2.);
Их попадение в детектор видно на панели 6. Поскольку оба пучка присутствовали в каждом событию, из-за их распределения по углу Фи в детектор попадает 1/3 пучка 6He (включая примеси) и 2/3 пучка 3He из всего набора событий. Значит вероятность того, что две частицы попадают одновременно в детектор равна 2/9. В первом столбце видим грязную картину dE-E и присутствие грязи обясняется одновременным попаданием двух частиц и накладыванием амплитуд (картинка суммарная по всем стрипам).
Реконструкция точки попадения в детектор на картинке 3 показывает два локуса пучка и синие прямоуголники вызванные неоднозначностью реконструкции, когда сигнал появляется в двух стрипах на каждой стороне одновременно. Это ожидаемый эффект и картинка правильная.
На картинке 2 показано распределение точек попадения в детектор с учетом выреза частицы 3He. Видим замечательный отбор искоемой частицы с небольшим загразнением в местах, где можно ожидать неоднозночность реконструкции позиции из-за регистрации двух частиц.
Количественный анализ картинки 3 основан на следующих соображениях: в локусе зеленного вылета видим 3266 событий, в красном вырезе 5737. В сумме получается 9003. Если добавим точки, которые в неправильных местах (с учетом вероятности попадения двух частиц в детектор одновременно - 2/9) получаем цифру примерно 11000, которая очень близко к полной статистике картинки 3.
#7 Updated by Vratislav Chudoba over 6 years ago
- % Done changed from 50 to 70
#8 Updated by Vratislav Chudoba over 6 years ago
- Tracker changed from Developing to Analyzing
#9 Updated by Vratislav Chudoba over 6 years ago
- File exp1803_sim_digi_T1pos.C added
- File check3He.C added
- File showT1Sim.C added
- Tracker changed from Analyzing to Developing
- Category set to Software
- % Done changed from 70 to 90
Описание сделаю позже. Короче, все похоже на то, что с помощью текущего функционала частицу реконструировать можно.
#10 Updated by Vratislav Chudoba over 6 years ago
- Description updated (diff)
- % Done changed from 90 to 100
#11 Updated by Vratislav Chudoba over 6 years ago
- Description updated (diff)
- Status changed from Открыта to Закрыта
#12 Updated by Vratislav Chudoba over 6 years ago
- Description updated (diff)
#13 Updated by Vratislav Chudoba over 6 years ago
- Description updated (diff)