Skip to main content

Introduction

TCut selection for ROOT TTree to Qastle wrapper for ServiceX uproot backends.

Supported expressions

  • Arithmetic operators: +, -, *, /
  • Logical operators: !, &&, ||
  • Relational and comparison operators: ==, !=, >, <, >=, <=
  • Ternary operator: (A?B:C) - has to be enclosed in parentheses
  • Mathematical function: sqrt

Usage

  • <tree_name>: Tree name of input flat ROOT ntuple (required only for uproot)
  • <selected_columns>: List of selected branches (or columns) to deliver. Branches are separated by comma. Deliver all branches if nothing specified.
  • <tcut_selection>: Selection expression with a combination of the branches. No selection is applied if nothing specified.
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>)

Example

>>> 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']

Compatibility

Current version is compatible with the following docker image tag of the uproot transformer

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

Development

Verbose mode shows intermediate steps from TCut syntax to qastle. The last arguement of the function translate() is a flag to enable the verbose mode. It prints the input TCut selection expression, translated func-adl selection expression, full func-adl query which includes the name of tree and selected branches, and full qastle query.

>>> 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')))))

Release files for tcut-to-qastle 0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tcut-to-qastle 0.7
File Size Uploaded
tcut_to_qastle-0.7.tar.gz 5.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tcut-to-qastle 0.7
File Interpreter ABI Platform
tcut_to_qastle-0.7-py3-none-any.whl Python 3 none any Details

Total release size: 12.2 kB

Release files / tcut_to_qastle-0.7.tar.gz

Download URL tcut_to_qastle-0.7.tar.gz
Size 5.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6cb1b370f6f17550f6d53a9be9675c46da84ac9dc1918a64aacfdfc3bd51fd93
BLAKE2b-256 checksum
How to use checksums
da8422194684f9612c7cfb24c773dbf1103c60120c24b6b5dbe76b3d1ed94654
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.7.4

Release files / tcut_to_qastle-0.7-py3-none-any.whl

Download URL tcut_to_qastle-0.7-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b295d62a6a7501bbb76a94a432d28a0cb245258aed404d50f18be8326af9bcc5
BLAKE2b-256 checksum
How to use checksums
8e8d1f55179d3770549841525dc85f445e0faca38f4401de316b3374d921a993
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.7.4

Release history Release notifications | RSS feed

This release

0.7 This release

2 release files

0.6

2 release files

0.5

2 release files

0.4

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page