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
blockNtuplePath
as<Output Path>/Data
- Set
UseServiceX
asTRUE
- In
Sample
block: specify NEW optionGridDID
for eachSample
, whereGridDID
is a Rucio data indentifier which includes scope and name. - In
Sample
block:NtupleFile
has to be the same asSample
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 theservicex-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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | d796c6c0fdc0837f5f2f53a516fa691ddf20f467d5e7edba7c1fd779da308d2e |
|
MD5 | 2f6d695dfa0ddc46ed9d2aba7b8ffbfb |
|
BLAKE2b-256 | 6996ed918c1204b5b20e2e4a2ec95cdaac50037393acb80a7a9977e5ec4385db |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfca92562da0d7d210edacfbb53b9b4498dc1ea0a2da38a2a810103c2646fb95 |
|
MD5 | b8891560e75850f36a785462c31d07bb |
|
BLAKE2b-256 | addb2db648dce658360489cfdd4a94150a3b3b947e1fa85f18ec6f927fee2f99 |