A Particle Physics Analysis Description Language and Runtime Interpreter
(More information on cern.ch/adl)
LHC data analyses are usually performed using complex analysis frameworks written in general purpose languages like C++ and python. But this method has a steep learning curve, as even the simplest tasks could be coded in a complicated way, and it is not straightforward to understand the code, make changes or additions. However there is another emerging alternative which allows to decouple physics content from the technical code and write analyses with a simple, self-describing syntax. Analysis Description Language (ADL) is a HEP-specific analysis language developed with this purpose.
A HEP analysis includes 3 main parts:
ADL consists of blocks separating object, variable and event selection definitions for a clear separation of analysis components. Blocks have a keyword-expression structure. Keywords specify analysis concepts and operations. Syntax includes mathematical and logical operations, comparison and optimization operators, reducers, 4-vector algebra and HEP-specific functions (dφ, dR, …).
ADL is designed with the goal to be self-describing, so especially for simple cases like in this example, one does not need to read syntax rules to understand an ADL description. However if you are interested, the set of syntax rules can be found here.
Once an analysis is written it needs to be run on events. This is achieved by CutLang , the runtime interpreter who reads and understands the ADL syntax and runs it on events. CutLang is also a framework which aturomatically handles many tedious tasks as reading input events, writing output histograms, etc. CutLang can be run on various environments such as linux, mac, conda, docker, jupyter, etc.
In case you are interested to learn more on CutLang, please see the CutLang github
Here is a list of CutLang examples
ATLAS
CMS
CMS-OD-12350-Htautau - CMSNANO
CMS-OD-HZZ4L - CMSODR2
CMS-OD-ZZ4L - CMSODR2