User Tools

Site Tools


ml4gamma:wdocs:classic_reco_energy

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
ml4gamma:wdocs:classic_reco_energy [27/06/2025 18:35] – created volchugovml4gamma:wdocs:classic_reco_energy [27/06/2025 18:44] (current) volchugov
Line 1: Line 1:
-Классическое восстановление энергии первичных частиц высоких энергий, регистрируемых телескопами TAIGA-IACT в моно режиме представляет собой линейную регрессию на основе lookup таблиц, полученных их моделирования. Весь диапазон звозможных значений dist разбивается на небольшие бины, например 0.25 градуса. Для событий в каждом бине определяется линейная зависимость между log(size) и log(energy). Коэффициенты линейной зависимости записываются в lookup таблицу. Заголовок lookup таблицы следующий: +====== Классическое восстановление энергии в моно режиме ====== 
-dist,N_points,a,+ 
-dist - середина бина по dist +Классическое восстановление энергии первичных частиц высоких энергий, регистрируемых телескопами **TAIGA-IACT** в моно режиме представляет собой линейную регрессию на основе lookup таблиц, полученных их моделирования. Весь диапазон возможных значений dist разбивается на небольшие бины, например 0.25 градуса. Для событий в каждом бине определяется линейная зависимость между log(size) и log(energy). Коэффициенты линейной зависимости записываются в lookup таблицу. 
-N_points - число событий в данном бине + 
-и b - коэффициенты линейной связи log(energy) = a*log(size) + b  +==== Структура lookup таблицы ==== 
-Функция на python для восстановления энергии на основе lookup таблицы может выглядеть следующим образом:+ 
 +dist N_points ^ 
 +dist - середина бина по dist N_points - число событий в данном бине a - коэффициент линейной связи в уравнении log(energy) = a*log(size) + b | b - коэффициент смещения в уравнении log(energy) = a*log(size) + b | 
 + 
 +==== Функция на Python ==== 
 + 
 +<code python>
 def reco_mono_energy(dist_value, size_value): def reco_mono_energy(dist_value, size_value):
-    # маска строк, где |lookup.dist - val| <= tol 
     mask = np.abs(energy_lookup['dist'] - dist_value) <= bin_size     mask = np.abs(energy_lookup['dist'] - dist_value) <= bin_size
     if not mask.any():     if not mask.any():
Line 12: Line 17:
     row = energy_lookup.loc[mask].iloc[0]      row = energy_lookup.loc[mask].iloc[0] 
     return 10**(np.log10(size_value) * row['a'] + row['b'])     return 10**(np.log10(size_value) * row['a'] + row['b'])
 +</code>
 +
 +Энергетическое разрешение при таком подходе достигает в лучшем случае 25%, если не делать отбор событий по каким-либо параметрам.
 +
 {{.:pics:20250627-183512.png}} {{.:pics:20250627-183512.png}}
 +
 +Подробнее с процедурой восстановления энергии в моно режиме можно ознакомиться в jupyter notebook: \k38\taiga_pool\Hybrid_events\for_Krukov\Linear_reg_reco_en.ipynb
 +
 +В нем реализована процедура создания lookup таблицы и затем её использование на тестовом наборе данных для восстановления энергии.
 +
ml4gamma/wdocs/classic_reco_energy.1751049330.txt.gz · Last modified: by volchugov