Skip to main content

Interface ServiceX into TRExFitter to provide an alternative method of reading input ntuples

Project description

ServiceX for TRExFitter

Overview

ServiceX, a component of the IRIS-HEP DOMA group's iDDS, is an experiment-agnostic service to enable on-demand data delivery from data lakes in different data formats, including Apache Arrow and ROOT ntuple.

TRExFitter is a popular framework to perform profile likelihood fits in ATLAS experiment. It takes ROOT histograms or ntuples as input. Long turnaround time of ntuple reading for large and/or remote data would slow down the whole analysis.

servicex-for-trexfitter is a python library to interface ServiceX into TRExFitter framework. It provides an alternative method to produce histograms out of ROOT ntuples.

Expected improvements:

  • Faster turnaround: this library analyzes your TRExFitter configuration and performs on-the-fly transformation to apply preselection (or filtering) on the ntuples and delivers only necessary branches.
  • Disk space: ServiceX reads files on grid, thus no need to have a direct access to ROOT ntuples.
  • Scalability: ServiceX is running on a K8s cluster which can easily scale the job.

Possible bottlenecks:

  • Bad network speed between the grid site and the K8s cluster where ServiceX deployed.
  • Parquet to ROOT ntuple conversion is currently being done on your PC or laptop.

Prerequisites

  • Python 3.6, 3.7, or 3.8
  • Access to an Uproot ServiceX endpoint. More information about ServiceX can be found at ServiceX documentation
  • PyROOT

Usage

Installation

The library is published at PyPI: servicex-for-trexfitter

Prepare TRExFitter configuration

The following items of TRExFitter configuration need to be modified to be compatible with the library:

  • In Job block
    • NtuplePath as <Output Path>/Data
    • Set UseServiceX as TRUE
  • In Sample block: specify NEW option GridDID for each Sample, where GridDID is a Rucio data indentifier which includes scope and name.
  • In Sample block: NtupleFile has to be the same as Sample name

An example TRExFitter configuration can be found here.

N.B. Tenary operation is not supported yet

Delivery of slimmed/skimmed ROOT ntuples

The library can be loaded by the following command

from servicex_for_trexfitter import ServiceXTRExFitter

and then an instance can be created with an argument of TRExFitter configuration file.

sx_trex = ServiceXTRExFitter('<TRExFitter configuration file>')

Now you are ready to make a delivery request.

sx_trex.get_ntuples()

It will initiate ServiceX transformation(s) based on your TRExFitter configuration, and deliver ROOT ntuples that are effectively slimmed and skimmed.

Prepare histograms from delivered ROOT ntuples

  • You need to checkout the branch feat/servicex-integration of TRExFitter framework to be compatible with the servicex-for-trexfitter.
  • Now you can run TRExFitter action n to generate histograms from the ServiceX delivered ROOT ntuples.

Acknowledgements

Support for this work was provided by the the U.S. Department of Energy, Office of High Energy Physics under Grant No. DE-SC0007890

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

servicex_for_trexfitter-0.7.1.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

servicex_for_trexfitter-0.7.1-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file servicex_for_trexfitter-0.7.1.tar.gz.

File metadata

  • Download URL: servicex_for_trexfitter-0.7.1.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.5.0.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.4

File hashes

Hashes for servicex_for_trexfitter-0.7.1.tar.gz
Algorithm Hash digest
SHA256 d796c6c0fdc0837f5f2f53a516fa691ddf20f467d5e7edba7c1fd779da308d2e
MD5 2f6d695dfa0ddc46ed9d2aba7b8ffbfb
BLAKE2b-256 6996ed918c1204b5b20e2e4a2ec95cdaac50037393acb80a7a9977e5ec4385db

See more details on using hashes here.

File details

Details for the file servicex_for_trexfitter-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: servicex_for_trexfitter-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.5.0.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.4

File hashes

Hashes for servicex_for_trexfitter-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bfca92562da0d7d210edacfbb53b9b4498dc1ea0a2da38a2a810103c2646fb95
MD5 b8891560e75850f36a785462c31d07bb
BLAKE2b-256 addb2db648dce658360489cfdd4a94150a3b3b947e1fa85f18ec6f927fee2f99

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page