Developing #138

Developing #134: Симуляция эксперимента - первое приближение

Проверка работы реконструкции телескопа T1

Added by Vratislav Chudoba over 6 years ago. Updated over 6 years ago.

Status:ЗакрытаStart date:02/17/2018
Priority:ВысокийDue date:03/06/2018
Assignee:Vratislav Chudoba% Done:

100%

Category:Software
Target version:-

Description

Проверить:

  1. правильность получения координаты с детектора;
  2. наличие dE-E диаграмм;
  3. идентификацию частиц с помощью графических вырезов;
  4. построение вектора регистрируемой частицы (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. Поскольку в текущей задаче у нас была максимальная управляемость пучком, было можно легко добиться результата. Если будет задача комплексная и полетит много разных частиц, придется сравнивать симуляцию и реконструкцию пособытийно. Это очень неприятная переспектива.

exp1803_sim_digi_T1pos.C Magnifier - макрос симмуляции - пункт 1 (8.85 KB) Vratislav Chudoba, 03/06/2018 10:56 PM

showT1Sim.C Magnifier - восстановление картин - пункт 1 (1.29 KB) Vratislav Chudoba, 03/06/2018 10:56 PM

cutsPos.root - вырезы позиции в реконструкции - пункт 1 (5.02 KB) Vratislav Chudoba, 03/07/2018 10:46 AM

cut.root - энергетический вырез 3He - пункт 1 (4.4 KB) Vratislav Chudoba, 03/07/2018 10:46 AM

exp1803_sim_digi_T1pos.C Magnifier - макрос симуляции - пункт 3 (9.33 KB) Vratislav Chudoba, 03/07/2018 10:46 AM

showT1Sim.C Magnifier - воспроизведение картин - пункт 3 (2.99 KB) Vratislav Chudoba, 03/07/2018 10:46 AM

exp1803_sim_digi_T1pos.C Magnifier - макрос симмуляции - пункт 4 (9.42 KB) Vratislav Chudoba, 03/08/2018 09:49 PM

check3He.C Magnifier - заполнение дерева с 4вектором - пункт 4 (1.45 KB) Vratislav Chudoba, 03/08/2018 09:49 PM

showT1Sim.C Magnifier - восстановление картин - пункт 4 (4.38 KB) Vratislav Chudoba, 03/08/2018 09:49 PM

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

Проверка восстановления координат попадения частицы в детектор проведена, картинки 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

Проверка работы с геометрическими вырезами выглядит следующим образом:


Картинка, которая на первой взглад пугает на самом деле очень хорошая и красивая. В симмуляции пускались два пучка:

    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

Описание сделаю позже. Короче, все похоже на то, что с помощью текущего функционала частицу реконструировать можно.

#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)

Also available in: Atom PDF