From 21164167f93d27f7fe55d87964b7a99b5e01c1de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ku=C4=8Dera?= Date: Thu, 29 May 2025 16:47:30 +0200 Subject: [PATCH] Update PWG-HF documentation --- docs/advanced-specifics/pwgdq.md | 12 +++++++----- docs/advanced-specifics/pwghf.md | 29 ++++++++++++++++------------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/docs/advanced-specifics/pwgdq.md b/docs/advanced-specifics/pwgdq.md index ffba7698..4a2b6775 100644 --- a/docs/advanced-specifics/pwgdq.md +++ b/docs/advanced-specifics/pwgdq.md @@ -8,6 +8,7 @@ title: PWG-DQ In the past, some hands-on sessions have been organised within the PWG-DQ. A list of the corresponding indico events is down below: **most recent:** + 1. O2 DQ hands-on session (7 Dec 21) [indico event](https://indico.cern.ch/event/1098200/) , [ZOOM recordings of the first part of the session](https://indico.cern.ch/event/1098200/sessions/419561/attachments/2362418/4033057/videoPlenarySession.mp4) 2. O2 DQ hands-on session (April 2022) [indico event](https://indico.cern.ch/event/1150382/) 3. O2 Analysis tutorial (Oct 2022) [indico event](https://indico.cern.ch/event/1200252/timetable/?view=standard) @@ -48,9 +49,9 @@ Mattermost channel: [O2-DQ Analysis Framework Alpha](https://mattermost.web.cern * DQ Data Model (Reduced tracks, events, muons etc.) is defined in [`ReducedInfoTables.h`](https://github.com/AliceO2Group/O2Physics/blob/master/PWGDQ/DataModel/ReducedInfoTables.h) class. * Code for easy running of the DQ tasks and output processing can be found in the -[Run3Analysisvalidation](https://github.com/AliceO2Group/Run3Analysisvalidation) repository. +[Run3AnalysisValidation](https://github.com/AliceO2Group/Run3AnalysisValidation) repository. * Analysis code for postprocessing of the task output is collected in the - [`FirstAnalysis`](https://github.com/AliceO2Group/Run3Analysisvalidation/tree/master/FirstAnalysis) directory. + [`FirstAnalysis`](https://github.com/AliceO2Group/Run3AnalysisValidation/tree/master/FirstAnalysis) directory. ## Existing Workflows @@ -63,13 +64,14 @@ Mattermost channel: [O2-DQ Analysis Framework Alpha](https://mattermost.web.cern * [`dileptonMuMu.cxx`](https://github.com/AliceO2Group/O2Physics/blob/master/PWGDQ/Tasks/dileptonMuMu.cxx) It refers to The dimuon analysis task. It’s a derivative of the tableReader, but with muon only informations. takes tracks flaged as « muon » and creates Pairs calculating mass, rapidity, pT. ## Python Interface + To simplify the handling and usage of the O2-DQ framework a [python interface](https://github.com/ctolon/PythonInterfaceOOP) has been developed and will be maintained for further user support. Its main features are: -- run tasks with simple commands (all main workflows are included) -- dependencies are selected and set with no need to specify them in the command line -- auto completion for workflows, settings and configurables +* run tasks with simple commands (all main workflows are included) +* dependencies are selected and set with no need to specify them in the command line +* auto completion for workflows, settings and configurables To get started, a [detailed introduction](https://github.com/ctolon/PythonInterfaceOOP#user-python-based-interface) has been written and an introduction was given in the [hands-on session](https://indico.cern.ch/event/1220887/) (Dec 22). diff --git a/docs/advanced-specifics/pwghf.md b/docs/advanced-specifics/pwghf.md index cd32d88f..7925fc8f 100644 --- a/docs/advanced-specifics/pwghf.md +++ b/docs/advanced-specifics/pwghf.md @@ -42,7 +42,7 @@ Mattermost channel: [hf-o2-analysis](https://mattermost.web.cern.ch/alice/channe - Selection of tracks based on the particle identification (PID) detectors is performed via the [`TrackSelectorPID`](https://github.com/AliceO2Group/O2Physics/blob/master/Common/Core/TrackSelectorPID.h) class. - The validation framework for easy local execution, testing and validation of O2Physics code can be found in the -[Run3Analysisvalidation](https://github.com/AliceO2Group/Run3Analysisvalidation) repository. +[Run3AnalysisValidation](https://github.com/AliceO2Group/Run3AnalysisValidation) repository. ## AliHyperloop @@ -191,7 +191,7 @@ Directories: [`PWGHF/D2H/Macros`](https://github.com/AliceO2Group/O2Physics/tree - `warn` for conditions that are likely to affect the expected behaviour of the code, - `error` for problems that lead to an unwanted behaviour of the code, - `fatal` for critical problems that make further running of the code impossible or useless. -- Include only needed headers but do not rely on implicitly included headers. +- Include only needed headers but do not rely on implicitly included headers. See [Include What You Use](https://github.com/AliceO2Group/O2Physics/issues/8357). - Organise `#include`s into groups (separated by a blank line) in the following order: - C++ - other external headers @@ -208,13 +208,12 @@ Directories: [`PWGHF/D2H/Macros`](https://github.com/AliceO2Group/O2Physics/tree See also [Magic numbers](https://rawgit.com/AliceO2Group/CodingGuidelines/master/coding_guidelines.html?showone=Magic_numbers#Magic_numbers). - Use `Type const&` for table subscriptions in function arguments. - Declare iterators in range-based `for` loops over tables with `const auto&`. -- Test your code before making a pull request. +- **Test your code before making a pull request.** - Check that your branch compiles without warnings. - - Propagate your changes into the [Run3Analysisvalidation](https://github.com/AliceO2Group/Run3Analysisvalidation/tree/master/codeHF#add-a-new-workflow) configuration. + - Propagate your changes into the [Run3AnalysisValidation](https://github.com/AliceO2Group/Run3AnalysisValidation/tree/master/codeHF#add-a-new-workflow) configuration. - Check that your code works and runs without errors and warnings. - Make sure your code is compatible with the expected input (Run 2/3/5, real/MC data, p–p/Pb–Pb). - - Check that your changes do not alter unexpectedly the control plots produced by the [validation framework](https://github.com/AliceO2Group/Run3Analysisvalidation/tree/master/codeHF#run-the-example). - - Make sure your tasks can be fully configured from Run3Analysisvalidation and AliHyperloop. + - Make sure your tasks can be fully configured from Run3AnalysisValidation and AliHyperloop. #### `struct` members @@ -223,23 +222,27 @@ Organising the code in a well defined structure makes it easier to navigate thro - Group `struct` data members by category and separate the blocks by a single blank line. - If there is a reason to visually divide a category into smaller blocks, add a corresponding comment at the beginning of each block. - Sort `struct` member categories in the following order: - - `Produces`, `Spawns`, `Builds` + - `Spawns` + - `Builds` + - `Produces` - `Configurable` - - scalars (`bool`, `int`, `float`, `double`,...) - - vectors (`std::vector`) - - arrays (`LabeledArray`) - other members (constants, objects) + - `HfHelper` + - `SliceCache` + - `Service` - `using` declarations - `Filter` - `Preslice` + - `PresliceUnsorted` - `Partition` - `ConfigurableAxis` - `AxisSpec` - `HistogramRegistry` - output declarations (`OutputObj`,...) - - `init` function + - `void init` - helper functions - - `process` function(s) + - `void process` + - other `process` functions - Put one process function argument per line. - `PROCESS_SWITCH` follows immediately after the function definition. @@ -280,4 +283,4 @@ Example: - Update your branch and test it before creating a PR. - Give your PR a short meaningful title. - Give further useful details about your changes in the PR description. - - Add links to all related PRs (e.g. O2Physics, O2, AliPhysics, Run3Analysisvalidation) in the PR description. + - Add links to all related PRs (e.g. O2Physics, O2, AliPhysics, Run3AnalysisValidation) in the PR description.