【问题标题】:ROOT conditional branch selectionROOT 条件分支选择
【发布时间】:2017-12-05 02:48:20
【问题描述】:

我有一个 ROOT 文件。我可以读取树并选择它的特定分支中的数据,例如“branch_name_1”。现在,我想在另一个分支上选择具有特定条件的该分支上的数据。让我举个例子。我想要“branch_name_1”的所有条目,条件是“branch_name_2”的值大于 10。我该怎么做?

编辑:我实际上有一棵名为“tree”的树,两个分支“b1”和“b2”。象征性地,我想获得“b1”直方图在“b2”不同值上的标准偏差。例如,“b1>1”、“b1>2”等等。

【问题讨论】:

  • 您是如何尝试访问分支的?如果没有明确的例子,很难猜测。如果您使用TTree::Draw,则可以指定选择TCut 作为参数,请参阅doc。如果您在树条目上循环,您可能想要使用TEventList
  • @user2148414 我编辑了我的问题。请看一下

标签: c++ linux root-framework


【解决方案1】:

不是 100% 确定这是您的要求,但无论如何:

tree.Draw("b1 >> h01(100, -10, +10)", "b2 > 1.0")
tree.Draw("b1 >> h02(100, -10, +10)", "b2 > 2.0")
tree.Draw("b1 >> h03(100, -10, +10)", "b2 > 3.0")
print("b1 RMS for b2 > 1.0: ",h01.GetRMX())
print("b1 RMS for b2 > 2.0: ",h02.GetRMX())
print("b1 RMS for b2 > 3.0: ",h03.GetRMX())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 2021-11-07
    • 2017-10-15
    相关资源
    最近更新 更多