跳转到主要内容

ROOT TTree的TCut选择,ServiceX xAOD和Uproot转换器的Qastle包装器

项目描述

介绍

TCut选择ROOT TTree到Qastle包装器,用于ServiceX uproot后端。

支持的表达式

  • 算术运算符: +, -, *, /
  • 逻辑运算符: !, &&, ||
  • 关系和比较运算符: ==, !=, >, <, >=, <=
  • 三元运算符:(A?B:C) - 必须用括号括起来
  • 数学函数:sqrt

用法

  • <tree_name>:输入平坦ROOT ntuple的树名(仅uproot需要)
  • <selected_columns>:要交付的选中分支(或列)列表。如果未指定,则交付所有分支。
  • <tcut_selection>:组合分支的选择表达式。如果未指定,则不应用任何选择。
import tcut_to_qastle

# Get Qastle query
query = tcut_to_qastle.translate(<tree_name>, <selected_columns>, <tcut_selection>)

# Get the list of columns in the TCut selection
columns_in_selection = tcut_to_qastle.get_list_of_columns_in_selection(<TCut selection>)

示例

>>> import tcut_to_qastle
>>> query = tcut_to_qastle.translate("tree", "A,B", "A && B * C>0")
>>> query
"(Select (Where (call EventDataset 'ServiceXDatasetSource' 'tree') (lambda (list event) (and (> (attr event 'A') 0) (> (* (attr event 'B') (attr event 'C')) 0)))) (lambda (list event) (dict (list 'A' 'B') (list (attr event 'A') (attr event 'B')))))"
>>> columns_in_selection = tcut_to_qastle.get_list_of_columns_in_selection("A && B * C>0")
>>> columns_in_selection
['A', 'B', 'C']

兼容性

当前版本与以下uproot转换器的docker镜像标签兼容

  • sslhep/servicex_func_adl_uproot_transformer:v1.0.0-rc.3
  • sslhep/servicex_func_adl_uproot_transformer:develop

开发

详细模式显示从TCut语法到qastle的中间步骤。函数translate()的最后一个参数是一个标志,用于启用详细模式。它打印输入TCut选择表达式、翻译后的func-adl选择表达式、包括树和选中分支的全func-adl查询,以及完整的qastle查询。

>>> query = tcut_to_qastle.translate("tree", "A,B", "A && B * C>0", verbose=True)
TCut selection syntax:
A && B * C>0


Translated func-adl selection syntax:
 event.A > 0 and event.B * event.C > 0


Full func-adl query:
EventDataset("ServiceXDatasetSource", "tree").Where("lambda event: event.A > 0 and event.B * event.C > 0 ").Select("lambda event: {'A': event.A, 'B': event.B} ")


Full qastle query:
(Select (Where (call EventDataset 'ServiceXDatasetSource' 'tree') (lambda (list event) (and (> (attr event 'A') 0) (> (* (attr event 'B') (attr event 'C')) 0)))) (lambda (list event) (dict (list 'A' 'B') (list (attr event 'A') (attr event 'B')))))

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分布

tcut_to_qastle-0.7.tar.gz (5.8 kB 查看哈希值)

上传时间: 源代码

构建分布

tcut_to_qastle-0.7-py3-none-any.whl (6.4 kB 查看哈希值)

上传时间: Python 3

支持