Developing #86

дижитизация ND

Added by Sergey Belogurov about 7 years ago. Updated almost 7 years ago.

Status:ЗакрытаStart date:11/07/2017
Priority:НизкийDue date:
Assignee:Vitaliy Schetinin% Done:

0%

Category:-
Target version:v-1.0

Description

Макрос создания геометрии ND причесан Егором. Сейчас там один детектор, но в комментариях есть возможность размножения.

Дижитизация дожна быть простой  1) суммирование энерговыделений и световыходов в пойнтах (не знаю стоит ли суммирование LY добавить в "простую" дижитизацию)   2)  размытие с известной нам трехкомпонентной формулой. 3) размытие времени пойнта с заданной сигмой . Пока что так.

Снимок экрана от 2017-12-11 12-36-01.png (94.6 KB) Elvira Gazeeva, 12/11/2017 12:37 PM

create_ND_geo.C Magnifier (6.55 KB) Elvira Gazeeva, 12/20/2017 12:09 PM

ERND.cxx Magnifier (8.78 KB) Elvira Gazeeva, 12/20/2017 12:09 PM

g4config.in Magnifier (882 Bytes) Elvira Gazeeva, 12/20/2017 12:09 PM

run.C Magnifier (4.43 KB) Elvira Gazeeva, 12/20/2017 12:09 PM

History

#1 Updated by Vitaliy Schetinin about 7 years ago

У нас рагьше была еще формула neutron probability. Она не нужна?

#2 Updated by Sergey Belogurov about 7 years ago

Да нужна, тлолько сейчас она считается по каждому пойнту, а надо на основе суммирования всех пойнтов в данном детекторе. Кроме того, мы договорились использовать понятие дижитизации вместо хита.  Надо бы изменить имя класса. И еще добавить стандартное независимое трехкомпонентное размытие не только к суммарному  ( по всем пойнтам) eloss, но и к суммарному LY.  Еще надо бы пояснить, где-то в комментах, как передаются параметры, необходимые для расчета neutron probability

#3 Updated by Vitaliy Schetinin about 7 years ago

Размытие в кристалах задается для каждого поинта или для суммы? Мне кажется что по логике надо задавать для каждого поинта

#4 Updated by Vitaliy Schetinin about 7 years ago

Сигма размытий времения раньше задавалась как Sqrt(a/lightYield). Точно меняем на константу?

 

#5 Updated by Sergey Belogurov about 7 years ago

Размытие по энергии надо задавать для суммы энерговыделений . Я правильно написал в задаче. Даже в ГАДСТ мы делали размытие не по пойнтам, а по суммам  в кубических ячейках. Так правильно, потому что тогда константы сопоставимы с тем, что люди измеряют в экспериментах.  Размытие по времени, вы правильно написали, как Sqrt(a/lightYield). Это я поспешил.  Еще момент. Просьба подготовить мне расчет в котором я смогу пулять прямо в кристал  протоны с энергиями по списку (точек 10 примерно). Не знаю, как лучше - отдельные запуски или один, в котором в каждом событии получается одна энергия из списка с равной вероятностью.  Это для того, чтоб я мог подогнать Биркс под экспериментальные кривые  количества света от энергии протонов. Для анализа, наверное, удобно все в одном файле.  Нейтронная вероятность в первых расчетах будет не нужна, позже понадобится.

#6 Updated by Vitaliy Schetinin about 7 years ago

Закончил.

1) Дидижитиазция теперь настраивается так:

ERNDDigitizer* digitizer = new ERNDDigitizer(1);
  digitizer->SetEdepError(0.0,0.01,0.01);
  digitizer->SetLYError(0.0,0.01,0.01);
  digitizer->SetTimeError(0.1);
  digitizer->SetQuenchThreshold(0.005);
  digitizer->SetLYThreshold(0.004);
  digitizer->SetProbabilityB(0.1);
  digitizer->SetProbabilityC(0.3);
  fRun->AddTask(digitizer);
Парметры в интерфейсе
SetEdepError(a,b,c)
SetTimeError(a)

Методы соответвенно: параметризация ошибки edep: sigma = a+b*sqrt(edep)+c*edep, ly также, time как опимано выше, параметризация Neutron probability. кто/что видно в коде в соответсвующей ветке

2) Добавил макрос для множественного запуска с разными энергиями для фитирования з. Биркса. Лежит в /macro/ND/bircks/

run.C - запускает для конкретной энергии и симуляцию и диджитизацию.

run.sh - савит параллельный рсчет нескольких энергий. Пример:

root -l -q "run.C(1000,0.2)" > 2.dat 2> 2.dat &
root -l -q "run.C(1000,0.1)" > 1.dat 2> 1.dat &

что значит будет запущено два процесса на 1000 событий для 0.1 GeV и для 0.2 Gev протонов. Протон бьет точно в центр детектора.

Результаты симуляции и диджитизации будут лежать соответсвенно в файлах run0.10.root и run0.20.root.

#7 Updated by Sergey Belogurov about 7 years ago

Виталик!  Пожалуйста обновите в ND параметры для закона Биркса.  В комментариях напишите, что Birks constants from  
Craun, R. L.; Smith, D. L. NIM 80,2, p. 239, 1970
И значения такие dP=0.97;   BirkC1 =  0.00856/dP; BirkC2 =  4.99e-6/(dP * dP);

А-а-а-а!  здесь должно быть квадратичное сложение!  Float_t lySigma = fLYErrorA + fLYErrorB*TMath::Sqrt(ly) + fLYErrorC*ly; 

Чтобы  fLYErrorB имело смысл процентов, деленых на корень из Edep, выраженных в МэВ, как оно  обычно дается, надо придать соответствущему члену в квадратичном сложении вид :  fLYErrorB*TMath::Sqrt(ly/1000.) тога при Ly=0.001 (т.е. 1 МэВ) сигма будет 0.04*0.001 в ГэВ, т.е.  0.04МэВ.

 

вот  это поясните, вообще не понял! 

//@TODO it must be in ERNDHitFinder and by digi
//calc digi position by first point

 

 

#8 Updated by Vitaliy Schetinin about 7 years ago

Поправил, проверяйте

#9 Updated by Sergey Belogurov about 7 years ago

для ближайшей статьи о ND  требуется геометрия с двумя модулями, с основаниями в одной плоскости и начальным расстоянием между осями 20 см.  Далее нужен генератор, который независимо пускает в каждом событии два гамма кванта с разной энергией (1.117, 1.33 МэВ), независимо изотропно распределенными каждый в своем диапазон тэта и фи (один облучает один детектор, другой - другой. Источник точечный в плоскости оснований детекторов , посредине между ними). Далее дижитизация должна корректно это обрабатывать. 

#10 Updated by Vitaliy Schetinin about 7 years ago

Добавил макросы. Пока вижу что такие гаммы shell не проходят. Уходят в фотоэффект

Процессы:

*********************************************************************************************************
* G4Track Information:   Particle = gamma,   Track ID = 2,   Parent ID = 0
*********************************************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0        0        0        0   0.00133        0        0         0        cave initStep
    1    -52.2    -4.08     14.5   0.00133        0     54.3      54.3  housingVol Transportation
    2    -52.2    -4.08     14.5         0 0.000851 0.000668      54.3  housingVol phot

*********************************************************************************************************
* G4Track Information:   Particle = gamma,   Track ID = 1,   Parent ID = 0
*********************************************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0        0        0        0   0.00112        0        0         0        cave initStep
    1     52.2     4.57     20.7   0.00112        0     56.3      56.3  housingVol Transportation
    2     52.2     4.57     20.7         0 0.000851  7.1e-05      56.3  housingVol phot

*********************************************************************************************************
* G4Track Information:   Particle = e-,   Track ID = 4,   Parent ID = 1
*********************************************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0     52.2     4.57     20.7  0.000266        0        0         0  housingVol initStep
    1     52.2     4.57     20.7         0 0.000266 4.45e-06  4.45e-06  housingVol eIoni

*********************************************************************************************************
* G4Track Information:   Particle = e-,   Track ID = 3,   Parent ID = 2
*********************************************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0    -52.2    -4.08     14.5  0.000479        0        0         0  housingVol initStep
    1    -52.2    -4.08     14.5         0 0.000479 7.52e-06  7.52e-06  housingVol eIoni

 

#11 Updated by Vitaliy Schetinin about 7 years ago

Поправил энергию. все взлетело. Правда событий в которых загорелись оба примерно 5%

#12 Updated by Elvira Gazeeva about 7 years ago

Виталик, проверь, пожалуйста, как заполняется время в NDPoint. Мы ожидаем разброс, соответствующий пробегу гамма-кванта через размер кристалла, а видим одинокую палку. Смотри картинку.

#13 Updated by Vitaliy Schetinin about 7 years ago

Поправил, обновляйся

#14 Updated by Elvira Gazeeva about 7 years ago

Привет, Виталик!

При создании пучка электронов с энергией 10 МэВ. В NDDigi какая-то ошибка с  Eloss, он соответствует 5.1 МэВ, а ожидается увидеть 10 МэВ. Проверь, пожалуйста, что там такое. Я прикрепляю все файлы, которые исправляла.
В ERND.cxx коэффициенты для Биркса изменены + добавлена строчка gMS->SetMaxStep(0.01)
рутовский файл отправлю почтой. Превышает максимальный размер.

#15 Updated by Vitaliy Schetinin about 7 years ago

на eventDisplay вижу, что есть события в которых электорон проходит насквозь. То есть не вся кин энергия высаживается в материале. Сделал длину кристала в 10 раз больше - пик в 10 МэВ

#16 Updated by Sergey Belogurov about 7 years ago

По https://physics.nist.gov/PhysRefData/Star/Text/ESTAR.html получается, что для 10 МэВ элеткронов пробег 5.3 см, т.е какая-то часть должна оставаться поkностью внутри. У нас там  5 cм толщина нет ли у нас вылета вторичных за пределы или еще какой лажи?

#17 Updated by Vitaliy Schetinin almost 7 years ago

  • Status changed from Открыта to Закрыта
  • Target version set to v-1.0

Also available in: Atom PDF