Создайте TH2, который содержит стандартное отклонение переменной в данном бине

У меня есть XY-карта положений событий в детекторе частиц, и эти события имеют десятки переменных, которые их характеризуют. Возьмите энергию, например: я могу найти среднюю энергию события в маленькой области детектора, сделав три TH2F в ROOT:

TH2F* h_xy  = new TH2F("h_xy","h_xy",100,-10,10,100,-10,10);
TH2F* h_xyw = new TH2F("h_xyw","h_xyw",100,-10,10,100,-10,10);
TH2F* h_avg = new TH2F("h_avg","h_avg",100,-10,10,100,-10,10);

я чувствую h_xy со всеми моими событиями, распределенными по xy. Каждая запись в гистограмме взвешивается до 1. Затем я заполняю h_xyw со всеми моими событиями, взвешенными по энергии. Разделив h_xyw от h_xy дает среднюю энергию за бин, который я положил в h_avg, Я делаю все это в командной строке ROOT, поэтому очень просто:

tree->Draw("energy>>h_xy","","colz")

А затем вытащить информацию прямо из гистограмм. следующий, Я хотел бы иметь возможность построить стандартное отклонение весов в каждой корзине, в дополнение к средней. Я знаю, что могу сделать это, написав скомпилированный скрипт, но мне интересно, есть ли простой способ сделать эту командную строку, о которой я просто не думал.

1

Решение

Подобно вашим существующим командам, вы можете заполнить другую гистограмму h_xyww с энергией в квадрате в виде весов. Тогда вы делите h_xyww от h_xy (среднеквадратичная энергия), умножьте гистограмму на средние энергии на себя (квадрат средней энергии), а затем вычтите их друг от друга.

std_dev^2 = <E^2> - <E>^2
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]