Introduction to the framework
The ALICE computing framework for Run 3 is ALICE O2, where O2 stands for OnlineOffline. The system integrates both the domain of data readout and its subsequent processing.
ALICE in Run 3 runs in so-called continuous data-taking mode, with the unit of information being a snapshot of data in a 10 ms-long time window, dubbed timeframe. The timeframe represents the minimal processing unit at all stages of the data processing, including the final analysis. Each timeframe is processed independently. Because of the continuous nature of the data taking in Run 3, vertex-to-track association, for example, is no longer unambiguous, and thus collisions and tracks are represented as separate arrays of analysis objects, all connected by an index. The analysis data model in Run 3 hence differs considerably from the hierarchical "event contents" of Runs 1 and 2. It is a collection of flat tables (realized by Apache Arrow tables), arranged in a relational database-like structure using index connections.
The result of the asynchronous reconstruction is the Analysis Object Data (AOD) format, which is a set of tables which are stored to file (by default AO2D.root) as ROOT trees.
Analysis tasks and workflows
In O2 the user data analysis is organized in analysis workflows, which are modular and flexible collections of interconnected data processors. The particular data processors are known as tasks to ensure similarity with the previous analysis framework. Tasks are created by the end users and provide a C++ structure with conveniently defined callbacks and declarations of inputs/outputs. Any table known by the system can be used as input, including user-defined tables, allowing to build complicated multi-staged analysis algorithms from self-contained blocks. Outputs can be transient (intended for further processing) or persistent (intended for storage, like skims, i.e. small filtered subsets of data kept for further processing) derived data tables, as well as analysis objects, like histograms.
The source files of user data analysis tasks are located in O2Physics in the PWGXX directories, where XX represents the abbreviation of the respective PWG. In order to add a new analysis task, create the source file in the related directory and update the related CMakeLists.txt files.