gpt4 book ai didi

c++ - 创建一个 TH2,其中包含给定 bin 中变量的标准差

转载 作者:行者123 更新时间:2023-11-30 05:27:55 24 4
gpt4 key购买 nike

我有一个粒子探测器中事件位置的 XY 图,这些事件有几十个表征它们的变量。以能量为例:我可以通过在 ROOT 中制作三个 TH2F 来找到探测器小区域中事件的平均能量:

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 得到每个 bin 的平均能量,我将其放入 h_avg。我在 ROOT 命令行上执行所有这些操作,因此非常容易:

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

然后直接从直方图中提取信息。 接下来,除了平均值之外,我还希望能够绘制每个箱中权重的标准差。我知道我可以通过编写一个编译脚本来做到这一点,但我想知道是否有一种我没有想到的简单方法来完成这个命令行。

最佳答案

与您现有的命令类似,您可以用能量的平方作为权重填充另一个直方图 h_xyww。然后将 h_xyww 除以 h_xy(平均能量平方),将直方图与平均能量乘以自身(平均能量的平方),然后将两者相减.

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

关于c++ - 创建一个 TH2,其中包含给定 bin 中变量的标准差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37018444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com