Abstract

The HEP community is preparing for the LHC’s Run 3 and 4. One of the big challenges for physics analysis will be developing tools to efficiently express an analysis and able to efficiently process the x10 more data expected. Recently, interest has focused on declarative analysis languages: a way of specifying a physicists’ intent and leaving everything else to the underlying system. The underlying system takes care of finding the data - powering the event processing loop – and even exactly how to most efficiently apply a desired jet selection. If this works, this would allow an analyser to test their algorithm on a small amount of data on their GPU-less laptop and then run it on a large amount of data on a server with multiple large GPU’s without having to alter their code. The LINQToROOT project, started almost seven years ago, fits this model. It has been used and tested in three ATLAS published analyses. LINQToROOT is based on the Language Integrated Query system built into the cross-platform C# language. It enables writing strongly-typed queries on a ROOT’s TTree’s data and transcribes the data to a C++ algorithm that can run in ROOT. Recent work on this system has had two goals: improving analysis efficiency and better understanding the requirements of a declarative analysis language. For example, a good analysis language should be able to abstract away the backend – recent work has increased the possible back ends from formerly the single Windows ROOT backend to one that runs on Linux, the Windows Linux-subsystem, and an experimental one that allows for PROOF like parallel processing – all done with almost no change to the analysis code itself. Any analysis language must also be rich enough to support an experiment’s data model. To test this, some experiments with the full ATLAS xAOD data model have been performed. All of this has been done while attempting to keep the project close to its original goals: quick turnaround for real ATLAS physics analysis. This work will be discussed in some detail along with thoughts and lessons that have helped shape our thinking about an Analysis Language and perhaps our approach to future physics analysis employing declarative analysis.

Highlights

  • Gordon Watts1,* 1Department of Physics, University of Washington, Seattle, Washington, 98195, USA Abstract

  • The LINQToROOT analysis language was first started over five years ago with the addition of a feature called Language Integrated Query (LINQ) [5] to the C# language [6]

  • This project was used in analyses that produce two physics papers and one conference note in the ATLAS collaboration

Read more

Summary

What is an Analysis Language?

An analysis language enables the researcher to concisely and clearly specify the desired data manipulations to produce plots, tables, and other results. An analysis language is designed so the physicist can express the final plot or set of numbers they want to determine in a way that is well match to the data, avoiding as much of the coding boilerplate as possible (loops, declarations, etc.). The translation engine converts that succinct specification into loops over pairs of jets, and over jets While it is clear what is going on in the declaration, the code will be much less clear, and significantly longer. The fourth requirement comes from previous experience: multiple programming languages require inter-operation and multiple files Both of which make it much more difficult to understand what is going on. There are other options like Python’s NumPy libraries [4]

The LINQToROOT Analysis Language
Conclusions from LINQToROOT
The Host Language
The AST Parser
The Backend Converter
Final Comments and Future Directions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call