{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# CutLang\n", "\n", "*A Particle Physics Analysis Description Language and Runtime Interpreter*\n", "\n", "## What are ADL and CutLang?\n", "\n", "(More information on [cern.ch/adl](cern.ch/adl))\n", "\n", "LHC data analyses are usually performed using complex analysis frameworks written in general purpose languages like C++ and python. \n", "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.\n", "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. \n", "\n", "A HEP analysis includes 3 main parts:\n", " * Object definitions: Which objects are used? e.g. electrons? muons? jets? What are the selections applied on these?\n", " * Event variable definitions: Are there event-wide variables used such as a invariant mass or a transverse mass? How are they calculated?\n", " * Event selections: What selections do we apply on events, for example, to enhance the signal and reduce the backgrounds? Are there more than one event selections? How are they defined?\n", "\n", "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, …).\n", "\n", "ADL is designed with the goal to be self-describing, so especially for simple cases, 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]( https://twiki.cern.ch/twiki/bin/view/LHCPhysics/ADL).\n", "\n", "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 automatically 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. \n", "\n", "In case you are interested to learn more on CutLang, please see the [CutLang github](https://github.com/unelg/CutLang)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tutorials\n", "\n", "Here is a list of CutLang tutorials\n", "\n", "- [Tutorial](Tutorial.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Examples\n", "\n", "Here is a list of CutLang examples" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- ATLAS\n", " - [ATLAS-OD-Z2L](ATLAS-OD-Z2L.ipynb) - **ATLASOD**\n", " - This is an exercise showing a simple analysis exploring the Z -> 2 lepton final state, focusing on the e+e- and μ+μ- channels.\n", " - The analysis aims to explore the kinematics of Z --> e+e- OR μ+μ- events.\n", " \n", "- CMS\n", " - [CMS-OD-12350-Htautau](CMS-OD-12350-Htautau.ipynb) - **CMSNANO**\n", " - This is an exercise showing a simple analysis exploring the SM Higgs decays to tau tau in the tau mu final state.\n", " - The analysis aims to explore the kinematics of H --> tau tau and compare them with that of a prominent SM background process with the same final state.\n", " \n", " - [CMS-OD-HZZ4L](CMS-OD-HZZ4L.ipynb) - **CMSODR2**\n", " - This is an exercise showing a simple analysis exploring the SM Higgs decays to 4 lepton final state, focusing on the e+e-μ+μ- channel.\n", " - The analysis aims to explore the kinematics of H --> 4 lepton events and compare them with that of a prominent SM background process with the same final state.\n", " \n", " - [CMS-OD-ZZ4L](CMS-OD-ZZ4L.ipynb) - **CMSODR2**\n", " - This is an exercise showing a simple analysis exploring the ZZ -> 4 lepton final state, focusing on the e+e-μ+μ- channel.\n", " - The analysis aims to explore the kinematics of ZZ --> e+e-μ+μ- events." ] } ], "metadata": { "kernelspec": { "display_name": "ROOT C++ with CutLang v2.12.5", "language": "c++", "name": "cutlang" }, "language_info": { "codemirror_mode": "text/x-c++src", "file_extension": ".C", "mimetype": " text/x-c++src", "name": "c++" } }, "nbformat": 4, "nbformat_minor": 4 }