diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index fc3044f7..47a3860f 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,6 +1,13 @@
-version: 2
+---
+# Dependabot configuration
+# Reference: https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
+version: 2
updates:
+ - package-ecosystem: "github-actions" # See documentation for possible values
+ directory: "/" # Location of package manifests
+ schedule:
+ interval: "weekly"
- package-ecosystem: "pip"
directory: "/"
schedule:
diff --git a/.github/workflows/mega-linter.yml b/.github/workflows/mega-linter.yml
index 88d5e20c..df1457ec 100644
--- a/.github/workflows/mega-linter.yml
+++ b/.github/workflows/mega-linter.yml
@@ -23,7 +23,7 @@ jobs:
steps:
# Git Checkout
- name: Checkout Code
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
# Checkout the HEAD of the PR instead of the merge commit.
ref: ${{ github.event.pull_request.head.sha }}
@@ -38,7 +38,7 @@ jobs:
id: ml
# You can override MegaLinter flavor used to have faster performances
# More info at https://megalinter.io/flavors/
- uses: oxsecurity/megalinter@v7
+ uses: oxsecurity/megalinter@v9.3.0
env:
# All available variables are described in documentation:
# https://megalinter.io/configuration/
diff --git a/.lycheeignore b/.lycheeignore
new file mode 100644
index 00000000..23337559
--- /dev/null
+++ b/.lycheeignore
@@ -0,0 +1 @@
+^https:\/\/alimonitor\.cern\.ch\/
diff --git a/.mega-linter.yml b/.mega-linter.yml
index c6244860..7f81d38b 100644
--- a/.mega-linter.yml
+++ b/.mega-linter.yml
@@ -1,6 +1,6 @@
---
# Configuration file for Mega-Linter
-# See all available variables at https://oxsecurity.github.io/megalinter/configuration/ and in linters documentation
+# See all available variables at http://megalinter.io/latest/configuration/ and in linters documentation
APPLY_FIXES: all # all, none, or list of linter keys
DEFAULT_BRANCH: master # Usually master or main
@@ -8,6 +8,7 @@ ENABLE: # If you use ENABLE variable, all other languages/formats/tooling-format
- ACTION
- BASH
- CPP
+ - JSON
- MARKDOWN
- SPELL
- YAML
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 00000000..6f74dae6
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,28 @@
+---
+# See https://pre-commit.com for more information
+# See https://pre-commit.com/hooks.html for more hooks
+repos:
+ - repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v6.0.0
+ hooks:
+ - id: end-of-file-fixer
+ - id: check-json
+ - id: check-yaml
+ - id: trailing-whitespace
+ - repo: https://github.com/pre-commit/mirrors-clang-format
+ rev: v21.1.7 # clang-format version
+ hooks:
+ - id: clang-format
+ - repo: https://github.com/cpplint/cpplint
+ rev: 2.0.2
+ hooks:
+ - id: cpplint
+ - repo: https://github.com/igorshubovych/markdownlint-cli
+ rev: v0.47.0
+ hooks:
+ - id: markdownlint-fix
+ - repo: https://github.com/tcort/markdown-link-check
+ rev: v3.14.2
+ hooks:
+ - id: markdown-link-check
+ args: [-q]
diff --git a/CPPLINT.cfg b/CPPLINT.cfg
index e050d1df..7f7d3c35 100644
--- a/CPPLINT.cfg
+++ b/CPPLINT.cfg
@@ -1 +1 @@
-filter=-build/c++11,-build/namespaces,-readability/fn_size,-readability/todo,-runtime/references,-whitespace/blank_line,-whitespace/braces,-whitespace/comments,-whitespace/line_length,-whitespace/semicolon,-whitespace/todo
+filter=-build/c++11,-build/namespaces,-readability/fn_size,-readability/todo,-runtime/references,-whitespace/blank_line,-whitespace/braces,-whitespace/comments,-whitespace/indent_namespace,-whitespace/line_length,-whitespace/semicolon,-whitespace/todo
diff --git a/Gemfile b/Gemfile
index 8a923ff1..80739d06 100644
--- a/Gemfile
+++ b/Gemfile
@@ -3,3 +3,5 @@ source "https://rubygems.org" # source "https://gems.ruby-china.com"
gemspec
gem "github-pages", group: :jekyll_plugins
+
+gem "webrick", "~> 1.9"
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 42e6b862..868105df 100644
--- a/docs/advanced-specifics/pwghf.md
+++ b/docs/advanced-specifics/pwghf.md
@@ -7,14 +7,24 @@ title: PWG-HF
## Get started
-- See the materials from the [HF O2 hackathon](https://indico.cern.ch/event/1101005/)
-(includes introduction to O2, O2 HF, tutorials,...) and watch the
-[Zoom recordings of the sessions](https://videos.cern.ch/deposit/project/cbe4869a27f749b7b45ea66577ca8a9f) (7, 9 Dec 2021).
-- See the [presentation on HF vertexing and analysis](https://indico.cern.ch/event/1200252/timetable/#10-hf-vertexing-and-analysis)
+See the presentations and materials from the HF session of the latest [O2 Analysis Tutorial](../tutorials/README.md#tutorial-events).
+
+### Archive
+
+- [HF O2 hackathon](https://indico.cern.ch/event/1101005/)
+(introduction to O2, O2 HF, tutorials,...),
+[Zoom recordings of the sessions](https://videos.cern.ch/deposit/project/cbe4869a27f749b7b45ea66577ca8a9f) (7, 9 Dec 2021)
+- [Presentation on HF vertexing and analysis](https://indico.cern.ch/event/1200252/timetable/#10-hf-vertexing-and-analysis)
and the [HF analysis example](https://indico.cern.ch/event/1200252/timetable/#23-hands-on-session-4-analysis)
-from the [O2 Analysis Tutorial](https://indico.cern.ch/event/1200252/) (13–14 Oct 2022).
-- See the [HF hands-on session](https://indico.cern.ch/event/1267433/timetable/#b-504545-parallel-hands-on-pwg)
-from the [O2 Analysis Tutorial 2.0](https://indico.cern.ch/event/1267433/) (17-28 Apr 2023).
+at the O2 Analysis Tutorial (1.0) (14 Oct 2022)
+- [HF session](https://indico.cern.ch/event/1267433/timetable/#b-504545-parallel-hands-on-pwg)
+at the O2 Analysis Tutorial 2.0 (27 Apr 2023)
+- [HF session](https://indico.cern.ch/event/1326201/timetable/#b-528200-pwg-hf-the-heavy-flav)
+at the O2 Analysis Tutorial 3.0 (8 Nov 2023)
+- [HF session](https://indico.cern.ch/event/1425820/timetable/#b-571495-pwg-hf-the-heavy-flav)
+at the O2 Analysis Tutorial 4.0 (16 Oct 2024)
+- [HF session](https://indico.cern.ch/event/1574136/timetable/#b-629951-pwg-hf-pwg-hf-tutoria)
+at the O2 Analysis Tutorial 5.0 (12 Nov 2025)
## Contact
@@ -24,12 +34,16 @@ Mattermost channel: [hf-o2-analysis](https://mattermost.web.cern.ch/alice/channe
- Code used by the heavy-flavour analysis framework is in the
[`PWGHF`](https://github.com/AliceO2Group/O2Physics/tree/master/PWGHF) directory.
- - Tables produced by skimming and candidate creators are defined in
+ - Tables produced by the track index skim creator are defined in
+[`TrackIndexSkimmingTables.h`](https://github.com/AliceO2Group/O2Physics/blob/master/PWGHF/DataModel/TrackIndexSkimmingTables.h).
+ - Tables produced by candidate creators are defined in
[`CandidateReconstructionTables.h`](https://github.com/AliceO2Group/O2Physics/blob/master/PWGHF/DataModel/CandidateReconstructionTables.h).
- Tables produced by candidate selectors are defined in
[`CandidateSelectionTables.h`](https://github.com/AliceO2Group/O2Physics/blob/master/PWGHF/DataModel/CandidateSelectionTables.h).
- Tables produced by derived-data creators are defined in
[`DerivedTables.h`](https://github.com/AliceO2Group/O2Physics/blob/master/PWGHF/DataModel/DerivedTables.h).
+ - Constants for MC flagging of HF decay channels are defined in
+[`DecayChannels.h`](https://github.com/AliceO2Group/O2Physics/blob/master/PWGHF/Core/DecayChannels.h).
- Default parameters used in the selection of single tracks, track-index skims and candidates are defined in
[`SelectorCuts.h`](https://github.com/AliceO2Group/O2Physics/blob/master/PWGHF/Core/SelectorCuts.h).
- Machine learning response classes are implemented in [`HfMlResponse(...).h`](https://github.com/AliceO2Group/O2Physics/tree/master/PWGHF/Core) files.
@@ -41,8 +55,8 @@ Mattermost channel: [hf-o2-analysis](https://mattermost.web.cern.ch/alice/channe
[`RecoDecay`](https://github.com/AliceO2Group/O2Physics/blob/master/Common/Core/RecoDecay.h) class.
- 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.
+- 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.
## AliHyperloop
@@ -50,7 +64,7 @@ Mattermost channel: [hf-o2-analysis](https://mattermost.web.cern.ch/alice/channe
[AliHyperloop analyses](https://alimonitor.cern.ch/hyperloop/all-analyses)
(Type "PWGHF" in the field "JIRA" to filter.)
-Corresponding [JIRA tickets](https://its.cern.ch/jira/issues/?jql=project%20%3D%20PWG-HF%20AND%20%22Run%203%20analysis%22%20%3D%20Yes)
+Corresponding [JIRA tickets](https://its.cern.ch/jira/issues/?jql=project%20%3D%20PWGHF%20AND%20%22Run%203%20analysis%22%20%3D%20Yes%20ORDER%20BY%20created%20ASC)
## Framework structure
@@ -58,7 +72,7 @@ A simplified graph of the workflows and tasks involved in a single HF analysis i
Individual components are described in the next section below.