Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions docs/advanced-specifics/pwgdq.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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

Expand All @@ -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).

Expand Down
29 changes: 16 additions & 13 deletions docs/advanced-specifics/pwghf.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand All @@ -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

Expand All @@ -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.

Expand Down Expand Up @@ -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.