From 595bdb7cf2d8dc47f542637ec87598ab8d854120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Mon, 20 May 2024 16:41:07 +0200 Subject: [PATCH] Add glossary --- docs/glossary/README.md | 216 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100644 docs/glossary/README.md diff --git a/docs/glossary/README.md b/docs/glossary/README.md new file mode 100644 index 00000000..4840c3c9 --- /dev/null +++ b/docs/glossary/README.md @@ -0,0 +1,216 @@ +--- +sort: 11 +title: Glossary +--- + +# Glossary + +```warning +Work in progress. Help wanted. +``` + +## General + +O2 +: acronym which stands for "online–offline" which refers to the online and offline reconstruction + +DPL +: Data Processing Layer +: core [O2](#o2) framework for data processing, built on top of [FairMQ](https://helmholtz.software/software/fairmq) + +Arrow +: the [Apache Arrow](https://arrow.apache.org/) format in which [tables](#table) are processed in [O2](#o2) + +JSON +: format used for [configuration](#configurable) of [devices](#device) + +## Data reconstruction + +timeframe, TF +: snapshot of detector data over a given time window + +dataframe, DF +: self-contained unit of processing + +FLP +: First Level Processor + +EPN +: Event Processing Node + +PDP +: Physics Data Processing + +particle collision +: interaction of energetic particles (real or simulated). +Simulated particle collisions are stored in the `McCollisions` [table](#table). +Simulated particles are stored in the `McParticles` table. + +reconstructed collision +: primary vertex reconstructed from an observed activity in the detector suspected to be associated with a [particle collision](#particle-collision). +Reconstructed collision are stored in the `Collisions` [table](#table). +Reconstructed charged particles are stored in the `Tracks` table. + +## Data structures + +AO2D +: format of saving [tables](#table) in ROOT files (typically called `AO2D.root`) + +table +: data format storing a collection of columns for each entry (table row). +Rows represent objects of the given table type and columns represent properties of these objects. +A table definition defines a C++ type and therefore must be unique. +Declared with the `DECLARE_SOA_TABLE(...)` macros. +Stored in [AO2D](#ao2d) as `TTree`. + +## Data processing + +task +: C++ `struct` which can process and produce [tables](#table) and produce other output (e.g. histograms). +A task is executed as a [device](#device) of a [workflow](#workflow). + +configurable +: [task](#task) parameter, whose value can be set without editing the code of the task. +Implemented as a task member of type `Configurable(...)`. +Can be set via [JSON](#json) configuration. + +process function +: [task](#task) method, which subscribes to [tables](#table) (i.e. consumes them as input) and performs some operations with their content (e.g. fills output tables or histograms). + +process function switch +: `PROCESS_SWITCH` macro which defines a [configurable](#configurable) which allows to enable and disable the execution of a given [process function](#process-function). + +device (DPL device) +: execution sub-unit of a [workflow](#workflow). +Implemented as a [task](#task). +Can be configured via [configurables](#configurable). +The device name is generated from the task name, unless it is provided explicitly, using `TaskName("device-name")` as an argument of `adaptAnalysisTask`. + +workflow (DPL workflow) +: execution unit in [DPL](#dpl), consisting of one or several [devices](#device). +Implemented as a C++ `.cxx` file, compiled into a single executable binary file. +The workflow name is generated from the arguments of the `o2physics_add_dpl_workflow` function in the `CMakeLists.txt` file. +For workflows files located in `PWG..` directories, a corresponding prefix is added: `o2--[-]`. +: Example: `o2-analysis-hf-task-d0` + +- `` is `analysis`, derived from `COMPONENT_NAME Analysis`, +- `` is `hf`, derived from the `PWGHF` directory name, +- `` is `task-d0`, provided in `o2physics_add_dpl_workflow(task-d0`. + +workflow topology +: the connection between running [workflows](#workflow), based on their [inputs](#table) and outputs + +## Table content + +static column +: [table](#table) column which stores a value provided when it is filled. +Declared with the `DECLARE_SOA_COLUMN(...)` macros. +: Example: The `Collisions` table of collisions has a static column `PosZ` which stores the value of the _z_ coordinate of the primary vertex. +The value has to be provided when a new collision row is being added in the table. + +dynamic column +: [table](#table) column which behaves as a function of other (static or expression) columns of the same table. +Declared with the `DECLARE_SOA_DYNAMIC_COLUMN(...)` macros. +The value is calculated only when the [column getter](#column-getter) is called. +: Dynamic column definitions can have free parameters, which have to be provided as arguments of the getter. +Values of dynamic columns are not written in [AO2D](#ao2d) files and cannot be used for table [filtering](#filter). +Additional dynamic columns can be attached to a table inside a [process function](#process-function) with `Attach`. +: Example: The `Tracks` table of tracks has a dynamic column `Px`, representing the _x_ component of the track momentum, defined as a function of other static columns. +It's value is calculated every time the corresponding `px` getter is called. + +expression column +: [table](#table) column which stores a value which is calculated by evaluating an expression when the table is written. +Declared with the `DECLARE_SOA_EXPRESSION_COLUMN(...)` macros. +Values of expression columns are written in [AO2D](#ao2d) files and can be used for table [filtering](#filter). +: Additional expression columns can be attached to a table inside a [process function](#process-function) with `Extend`. +: Example: The `Tracks` table of tracks has an expression column `Phi`, representing the azimuth of the track momentum, defined as a function of other static columns. +All values of the `Phi` column are calculated for all tracks together (in bulk) when the `Tracks` table is written in the [AO2D](#ao2d) file. + +index column +: [table](#table) column which stores the index of a table row. +Declared with the `DECLARE_SOA_INDEX_COLUMN(...)` macros. +: Example: The `Tracks` table of tracks has an index column pointing to rows of the `Collisions` table, which links each track to its collision. +Calling the `collision` getter returns an iterator pointing to a given collision. +Calling the `collisionId` getter returns the value of the index itself (i.e. the position of the row in the `Collisions` table). + +column getter +: method that returns the value stored in the column. +: Example: The value of the transverse momentum of a given `track` in the `Tracks` table is stored in the `Pt` column. +This value can be obtained by calling the corresponding `pt` getter as `track.pt()`. + +data model +: collection of [table](#table) definitions. +Defined in header files in [`DataModel`](../gettingstarted/theo2physicsrepo.md#folder-structure) directories. + +extended table +: [table](#table) consisting of [expression columns](#expression-column) which extends another table. +Declared with the `DECLARE_SOA_EXTENDED_TABLE(...)` macros. + +index table +: [table](#table) consisting of [index columns](#index-column). +Declared with the `DECLARE_SOA_INDEX_TABLE(...)` macros. + +## Table production + +`Produces` +: A `Produces<...>` [task](#task) member defines a [table](#table) cursor which creates a new table row when called. + +`Spawns` +: A `Spawns<...>` [task](#task) member defines a handle to an [extended table](#extended-table). +The extended table is created before the execution of the [process functions](#process-function). + +`Builds` +: A `Builds<...>` [task](#task) member defines a handle to an [index table](#index-table). +The index table is created before the execution of the [process functions](#process-function). + +## Table manipulation + +`Join` +: Declaration of a `Join<...>` object defines a [table](#table) view which joins columns of matching rows in multiple tables of the same length. + +grouping +: Subscription to the iterator of a [table](#table) defines a loop over that table where the rows of other tables are grouped by the index of the iterated table. +For each iteration only the subset of the other tables linked to the given iterator (via the [index column](#index-column)) is available. + +`SmallGroups` +: TODO + +`Filter` +: Definition of a `Filter` [task](#task) member applies the corresponding condition to all compatible [tables](#table) subscribed using `Filtered<...>`. +Only the filtered subsets of the tables are available. +: Filter definitions can reference [configurables](#configurable). +Filter definitions cannot reference [dynamic columns](#dynamic-column). +Filter definitions can contain conditional expressions with `ifnode`. +: Filtered tables can be [grouped](#grouping). +Filtered tables can be created inside [process functions](#process-function) with `select`. + +`Partition` +: Definition of a `Partition<...>` [task](#task) member creates a [table](#table) view for a subset of a table according to the corresponding condition. +: Multiple partitions of the same table can co-exist together with the full table. +Partitions can be [filtered](#filter). +Partitions cannot be [grouped](#grouping) and have to be [sliced](#slicing) instead. +Partitions can be created inside [process functions](#process-function). + +slicing +: A [partition](#partition) slice corresponding to a given value of a given [index column](#index-column) can be created using the `sliceBy(...)` methods of the partition. + +`Preslice` +: TODO + +## AliHyperloop + +wagon +: instance of a [workflow](#workflow) on AliHyperloop, defined by its dependencies, [configuration](#configurable) of [devices](#device) and [outputs](#derived-data) + +train +: collection of [wagons](#wagon) executed on AliHyperloop + +derived data +: [AO2D](#ao2d) file with [tables](#table) produced as a result of processing another [AO2D](#ao2d) file (parent) + +linked derived data +: [derived data](#derived-data) containing [tables](#table) with [index columns](#index-column) pointing to tables in its parent files. +Processing of linked derived data requires access to the parent files. + +self-contained derived data +: [derived data](#derived-data) containing [tables](#table) without [index columns](#index-column) pointing to tables in other files.