diff --git a/CHANGELOG.md b/CHANGELOG.md index afeaeb595c31a..be857c79379f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,103 +1,82 @@ -# Changes since 2022-04-14 +# Changes since 2026-03-17 +## Changes in Algorithm + +- [#15189](https://github.com/AliceO2Group/AliceO2/pull/15189) 2026-03-19: Correctly handle errors in merging histograms with kAverage by [@knopers8](https://github.com/knopers8) ## Changes in Analysis -- [#8588](https://github.com/AliceO2Group/AliceO2/pull/8588) 2022-04-21: DPL Analysis: workaround for setting self-index binding before invoking process() by [@aalkin](https://github.com/aalkin) -- [#8609](https://github.com/AliceO2Group/AliceO2/pull/8609) 2022-04-22: Move to fdd version 001 by [@mbroz84](https://github.com/mbroz84) -- [#8637](https://github.com/AliceO2Group/AliceO2/pull/8637) 2022-04-24: remove temporary code by [@jgrosseo](https://github.com/jgrosseo) -- [#8574](https://github.com/AliceO2Group/AliceO2/pull/8574) 2022-04-28: Add energy as a dynamic column by [@njacazio](https://github.com/njacazio) +- [#15179](https://github.com/AliceO2Group/AliceO2/pull/15179) 2026-03-17: DPL: allow non-owning TFileFileSystem by [@ktf](https://github.com/ktf) +- [#15244](https://github.com/AliceO2Group/AliceO2/pull/15244) 2026-03-30: Fix typo on the TPC A||C side contribution check by [@shahor02](https://github.com/shahor02) ## Changes in Common -- [#8575](https://github.com/AliceO2Group/AliceO2/pull/8575) 2022-04-14: Missing const declarations on bitset comparisons. by [@pnwkw](https://github.com/pnwkw) -- [#8590](https://github.com/AliceO2Group/AliceO2/pull/8590) 2022-04-17: Move alignment objects to DET/Calib/Align by [@shahor02](https://github.com/shahor02) -- [#8623](https://github.com/AliceO2Group/AliceO2/pull/8623) 2022-04-21: DPL: add dpl_instance tag to distinguish between different NUMA domains by [@ktf](https://github.com/ktf) -- [#8618](https://github.com/AliceO2Group/AliceO2/pull/8618) 2022-04-21: Store original tfCounter in the CTFHeader by [@shahor02](https://github.com/shahor02) -- [#8573](https://github.com/AliceO2Group/AliceO2/pull/8573) 2022-04-25: :MCH: introduce digit time errors in raw decoder by [@aferrero2707](https://github.com/aferrero2707) -- [#8643](https://github.com/AliceO2Group/AliceO2/pull/8643) 2022-04-25: Optionally impose DH.tfCounter from local counter by [@shahor02](https://github.com/shahor02) -- [#8639](https://github.com/AliceO2Group/AliceO2/pull/8639) 2022-04-26: Use tfCounter in time-slot calib, provide real time. by [@shahor02](https://github.com/shahor02) -- [#8667](https://github.com/AliceO2Group/AliceO2/pull/8667) 2022-04-27: Add/use createDirectoriesIfAbsent method, robust against concurrent calls by [@shahor02](https://github.com/shahor02) -- [#8659](https://github.com/AliceO2Group/AliceO2/pull/8659) 2022-04-27: Printing log when we find a default CCDB entry by [@chiarazampolli](https://github.com/chiarazampolli) +- [#15231](https://github.com/AliceO2Group/AliceO2/pull/15231) 2026-03-27: Protect time-slice calibration from stray TFs by [@shahor02](https://github.com/shahor02) ## Changes in DataFormats -- [#8578](https://github.com/AliceO2Group/AliceO2/pull/8578) 2022-04-14: Add theta calculation to Fwd track by [@pnwkw](https://github.com/pnwkw) -- [#8596](https://github.com/AliceO2Group/AliceO2/pull/8596) 2022-04-17: Work on TPC ZS Encoding by [@davidrohr](https://github.com/davidrohr) -- [#8605](https://github.com/AliceO2Group/AliceO2/pull/8605) 2022-04-18: Implement improved link-based ZS by [@davidrohr](https://github.com/davidrohr) -- [#8612](https://github.com/AliceO2Group/AliceO2/pull/8612) 2022-04-19: Fixes for MID decoding and data access by [@shahor02](https://github.com/shahor02) -- [#8618](https://github.com/AliceO2Group/AliceO2/pull/8618) 2022-04-21: Store original tfCounter in the CTFHeader by [@shahor02](https://github.com/shahor02) -- [#8622](https://github.com/AliceO2Group/AliceO2/pull/8622) 2022-04-21: [FIT] Quick fix - increment FT0 and FDD Digit version by [@mslupeck](https://github.com/mslupeck) -- [#8595](https://github.com/AliceO2Group/AliceO2/pull/8595) 2022-04-21: ctp config to ccdb by [@lietava](https://github.com/lietava) -- [#8643](https://github.com/AliceO2Group/AliceO2/pull/8643) 2022-04-25: Optionally impose DH.tfCounter from local counter by [@shahor02](https://github.com/shahor02) -- [#8642](https://github.com/AliceO2Group/AliceO2/pull/8642) 2022-04-25: Provide MCH clusters via global-track-cluster-reader and RecoContainer by [@shahor02](https://github.com/shahor02) -- [#8651](https://github.com/AliceO2Group/AliceO2/pull/8651) 2022-04-27: [QC-751] Remove obsolete QC flags by [@knopers8](https://github.com/knopers8) +- [#15181](https://github.com/AliceO2Group/AliceO2/pull/15181) 2026-03-18: TRD: small fix for gain and VdExB calib by [@glegras](https://github.com/glegras) +- [#15175](https://github.com/AliceO2Group/AliceO2/pull/15175) 2026-03-25: DPL: use constexpr for data description of EOS data header by [@ehellbar](https://github.com/ehellbar) +- [#15231](https://github.com/AliceO2Group/AliceO2/pull/15231) 2026-03-27: Protect time-slice calibration from stray TFs by [@shahor02](https://github.com/shahor02) ## Changes in Detectors -- [#8584](https://github.com/AliceO2Group/AliceO2/pull/8584) 2022-04-14: ITS: remove unused variables to fix warnings by [@mconcas](https://github.com/mconcas) -- [#8579](https://github.com/AliceO2Group/AliceO2/pull/8579) 2022-04-14: Reporting and protection for interleaved chip data error by [@shahor02](https://github.com/shahor02) -- [#8577](https://github.com/AliceO2Group/AliceO2/pull/8577) 2022-04-14: TPC: reduce use of static keyword by [@sawenzel](https://github.com/sawenzel) -- [#8593](https://github.com/AliceO2Group/AliceO2/pull/8593) 2022-04-15: DPL: Catch exception from stol when parsing invalid run number by [@davidrohr](https://github.com/davidrohr) -- [#8594](https://github.com/AliceO2Group/AliceO2/pull/8594) 2022-04-15: Fix for not throwing exception in cpv::RawReaderMemory when processin… by [@sevdokim](https://github.com/sevdokim) -- [#8586](https://github.com/AliceO2Group/AliceO2/pull/8586) 2022-04-15: Multiple fixes in Alpide decoding/error handling by [@shahor02](https://github.com/shahor02) -- [#8599](https://github.com/AliceO2Group/AliceO2/pull/8599) 2022-04-16: Use flag HBFUtils.obligatorySOR to start raw data from TF with SOX + fixes by [@shahor02](https://github.com/shahor02) -- [#8601](https://github.com/AliceO2Group/AliceO2/pull/8601) 2022-04-17: Apply TF ordering policy to all writers by [@shahor02](https://github.com/shahor02) -- [#8596](https://github.com/AliceO2Group/AliceO2/pull/8596) 2022-04-17: Work on TPC ZS Encoding by [@davidrohr](https://github.com/davidrohr) -- [#8604](https://github.com/AliceO2Group/AliceO2/pull/8604) 2022-04-18: Fix misleading variable names by [@davidrohr](https://github.com/davidrohr) -- [#8605](https://github.com/AliceO2Group/AliceO2/pull/8605) 2022-04-18: Implement improved link-based ZS by [@davidrohr](https://github.com/davidrohr) -- [#8587](https://github.com/AliceO2Group/AliceO2/pull/8587) 2022-04-19: Add multiple output function in calibration workflow of MFT by [@syano0822](https://github.com/syano0822) -- [#8612](https://github.com/AliceO2Group/AliceO2/pull/8612) 2022-04-19: Fixes for MID decoding and data access by [@shahor02](https://github.com/shahor02) -- [#8614](https://github.com/AliceO2Group/AliceO2/pull/8614) 2022-04-19: Reduce default max memory to 12GB by [@mpuccio](https://github.com/mpuccio) -- [#8585](https://github.com/AliceO2Group/AliceO2/pull/8585) 2022-04-21: Fix metadata and remove log - TOFDCSconfig by [@chiarazampolli](https://github.com/chiarazampolli) -- [#8616](https://github.com/AliceO2Group/AliceO2/pull/8616) 2022-04-21: Protection against non-existing feeId in the MID RDH by [@dstocco](https://github.com/dstocco) -- [#8618](https://github.com/AliceO2Group/AliceO2/pull/8618) 2022-04-21: Store original tfCounter in the CTFHeader by [@shahor02](https://github.com/shahor02) -- [#8621](https://github.com/AliceO2Group/AliceO2/pull/8621) 2022-04-21: Update HmpidCoder2.cxx by [@fapfap69](https://github.com/fapfap69) -- [#8615](https://github.com/AliceO2Group/AliceO2/pull/8615) 2022-04-21: [EMCAL-630] Move log level of EMCAL decoding errors to "alarm" by [@mfasDa](https://github.com/mfasDa) -- [#8622](https://github.com/AliceO2Group/AliceO2/pull/8622) 2022-04-21: [FIT] Quick fix - increment FT0 and FDD Digit version by [@mslupeck](https://github.com/mslupeck) -- [#8595](https://github.com/AliceO2Group/AliceO2/pull/8595) 2022-04-21: ctp config to ccdb by [@lietava](https://github.com/lietava) -- [#8617](https://github.com/AliceO2Group/AliceO2/pull/8617) 2022-04-22: Add option to change tracker algorithm only keeping the best track by [@dstocco](https://github.com/dstocco) -- [#8627](https://github.com/AliceO2Group/AliceO2/pull/8627) 2022-04-22: CPV: mute raw decoder error reporting for 10 minutes if it reports mo… by [@sevdokim](https://github.com/sevdokim) -- [#8628](https://github.com/AliceO2Group/AliceO2/pull/8628) 2022-04-22: Improve verbosity in DCS DP processing (MFT, GRP) by [@chiarazampolli](https://github.com/chiarazampolli) -- [#8610](https://github.com/AliceO2Group/AliceO2/pull/8610) 2022-04-22: MFT: Update the noise scan to protect from double EOS. by [@tomas-herman](https://github.com/tomas-herman) -- [#8631](https://github.com/AliceO2Group/AliceO2/pull/8631) 2022-04-22: TRD: Reduce default verbosity of DCS processor by [@martenole](https://github.com/martenole) -- [#8633](https://github.com/AliceO2Group/AliceO2/pull/8633) 2022-04-23: Fix the Run Number into CCDB items by [@fapfap69](https://github.com/fapfap69) -- [#8635](https://github.com/AliceO2Group/AliceO2/pull/8635) 2022-04-23: [MCH] add protection against too many track candidates by [@pillot](https://github.com/pillot) -- [#8632](https://github.com/AliceO2Group/AliceO2/pull/8632) 2022-04-23: use default FDD table version by [@jgrosseo](https://github.com/jgrosseo) -- [#8573](https://github.com/AliceO2Group/AliceO2/pull/8573) 2022-04-25: :MCH: introduce digit time errors in raw decoder by [@aferrero2707](https://github.com/aferrero2707) -- [#8647](https://github.com/AliceO2Group/AliceO2/pull/8647) 2022-04-25: AODconverter does not need global MID and MCH clusters by [@shahor02](https://github.com/shahor02) -- [#8640](https://github.com/AliceO2Group/AliceO2/pull/8640) 2022-04-25: CCDBPopulator optionally fatals on failed upload (def=on) by [@shahor02](https://github.com/shahor02) -- [#8643](https://github.com/AliceO2Group/AliceO2/pull/8643) 2022-04-25: Optionally impose DH.tfCounter from local counter by [@shahor02](https://github.com/shahor02) -- [#8642](https://github.com/AliceO2Group/AliceO2/pull/8642) 2022-04-25: Provide MCH clusters via global-track-cluster-reader and RecoContainer by [@shahor02](https://github.com/shahor02) -- [#8645](https://github.com/AliceO2Group/AliceO2/pull/8645) 2022-04-25: Suppress FT0 channels ordering check in CTF encoder by [@shahor02](https://github.com/shahor02) -- [#8653](https://github.com/AliceO2Group/AliceO2/pull/8653) 2022-04-26: Optional syst.error on tracks Y,Z covariance + extra debug output by [@shahor02](https://github.com/shahor02) -- [#8639](https://github.com/AliceO2Group/AliceO2/pull/8639) 2022-04-26: Use tfCounter in time-slot calib, provide real time. by [@shahor02](https://github.com/shahor02) -- [#8667](https://github.com/AliceO2Group/AliceO2/pull/8667) 2022-04-27: Add/use createDirectoriesIfAbsent method, robust against concurrent calls by [@shahor02](https://github.com/shahor02) -- [#8662](https://github.com/AliceO2Group/AliceO2/pull/8662) 2022-04-27: CPV: improve raw errors handling in RawReaderMemory to avoid infinite loop… by [@sevdokim](https://github.com/sevdokim) -- [#8670](https://github.com/AliceO2Group/AliceO2/pull/8670) 2022-04-27: Fix: attach corect input in its/mft entropy decoder by [@shahor02](https://github.com/shahor02) -- [#8658](https://github.com/AliceO2Group/AliceO2/pull/8658) 2022-04-27: MCH: speedup finding of used cluster combinations by [@pillot](https://github.com/pillot) -- [#8664](https://github.com/AliceO2Group/AliceO2/pull/8664) 2022-04-27: MRRTF-154: MCH raw data decoder now catches exceptions by [@aphecetche](https://github.com/aphecetche) -- [#8650](https://github.com/AliceO2Group/AliceO2/pull/8650) 2022-04-27: [OCTRL-564] Filling RCT information when uploading GRP at end of run by [@chiarazampolli](https://github.com/chiarazampolli) -## Changes in EventVisualisation - -- [#8625](https://github.com/AliceO2Group/AliceO2/pull/8625) 2022-04-21: Option to not write json files in the ED workflow that are empty by [@pnwkw](https://github.com/pnwkw) -- [#8580](https://github.com/AliceO2Group/AliceO2/pull/8580) 2022-04-23: Implemented reading MFT tracks from AOD files by [@pnwkw](https://github.com/pnwkw) -- [#8654](https://github.com/AliceO2Group/AliceO2/pull/8654) 2022-04-26: Event Display: compile on macOS by [@ktf](https://github.com/ktf) -- [#8667](https://github.com/AliceO2Group/AliceO2/pull/8667) 2022-04-27: Add/use createDirectoriesIfAbsent method, robust against concurrent calls by [@shahor02](https://github.com/shahor02) +- [#15168](https://github.com/AliceO2Group/AliceO2/pull/15168) 2026-03-17: [ALICE 3] Fix cylindrical MLOT layout by [@scannito](https://github.com/scannito) +- [#15178](https://github.com/AliceO2Group/AliceO2/pull/15178) 2026-03-17: [ALICE3] update of readme for FT3 and ALICE3 by [@altsybee](https://github.com/altsybee) +- [#15176](https://github.com/AliceO2Group/AliceO2/pull/15176) 2026-03-17: Fix boost 1.90.0 / clang issue by [@ktf](https://github.com/ktf) +- [#15166](https://github.com/AliceO2Group/AliceO2/pull/15166) 2026-03-17: fix field/material usage in the propagateToR... methods by [@shahor02](https://github.com/shahor02) +- [#15173](https://github.com/AliceO2Group/AliceO2/pull/15173) 2026-03-18: [ALICE3] Refactor TRK Hit class to rely on ITSMFT by [@njacazio](https://github.com/njacazio) +- [#15174](https://github.com/AliceO2Group/AliceO2/pull/15174) 2026-03-18: [ALICE3] TRK: allow ACTS clustering by [@njacazio](https://github.com/njacazio) +- [#15172](https://github.com/AliceO2Group/AliceO2/pull/15172) 2026-03-18: [ALICE3] Update stave tilt angles for iTOF and oTOF layers by [@njacazio](https://github.com/njacazio) +- [#15185](https://github.com/AliceO2Group/AliceO2/pull/15185) 2026-03-18: ALICE 3 fix: overlap bw IRIS material and vacuum by [@plariono](https://github.com/plariono) +- [#15167](https://github.com/AliceO2Group/AliceO2/pull/15167) 2026-03-18: ALICE3-TRK: add noise to the digitization process by [@atriolo](https://github.com/atriolo) +- [#15181](https://github.com/AliceO2Group/AliceO2/pull/15181) 2026-03-18: TRD: small fix for gain and VdExB calib by [@glegras](https://github.com/glegras) +- [#15184](https://github.com/AliceO2Group/AliceO2/pull/15184) 2026-03-18: Use finer Z bins for mat LUT in 56.5 < R< 76 cm by [@shahor02](https://github.com/shahor02) +- [#15193](https://github.com/AliceO2Group/AliceO2/pull/15193) 2026-03-19: TPC: Change default SCD calibration interval to 5min by [@wiechula](https://github.com/wiechula) +- [#15198](https://github.com/AliceO2Group/AliceO2/pull/15198) 2026-03-20: [ALICE3] Updated ALICE 3 IRIS coldplate in O2 geometry by [@fcolamar](https://github.com/fcolamar) +- [#15199](https://github.com/AliceO2Group/AliceO2/pull/15199) 2026-03-20: AODProducer: Option to specify and forward parent AOD file by [@sawenzel](https://github.com/sawenzel) +- [#15200](https://github.com/AliceO2Group/AliceO2/pull/15200) 2026-03-21: Fix MLOT digit residuals by [@mpuccio](https://github.com/mpuccio) +- [#15201](https://github.com/AliceO2Group/AliceO2/pull/15201) 2026-03-22: [ALICE 3] Properly set FT3 sensitive volumes; improve tiling by [@marcovanleeuwen](https://github.com/marcovanleeuwen) +- [#15183](https://github.com/AliceO2Group/AliceO2/pull/15183) 2026-03-22: [ALICE3] Adding error msg for TGeo features and QA macro for reco by [@AizatDaribayeva](https://github.com/AizatDaribayeva) +- [#15203](https://github.com/AliceO2Group/AliceO2/pull/15203) 2026-03-23: ALICE3-TRK: changed ML/OT pitch to 20 um by [@atriolo](https://github.com/atriolo) +- [#15207](https://github.com/AliceO2Group/AliceO2/pull/15207) 2026-03-24: Fix using MeanVertex in the residuals monitoring workflow by [@shahor02](https://github.com/shahor02) +- [#15221](https://github.com/AliceO2Group/AliceO2/pull/15221) 2026-03-25: Please consider the following formatting changes to #15220 by [@alibuild](https://github.com/alibuild) +- [#15219](https://github.com/AliceO2Group/AliceO2/pull/15219) 2026-03-26: Add missing track->resetCov before refit for revertexing by [@shahor02](https://github.com/shahor02) +- [#15195](https://github.com/AliceO2Group/AliceO2/pull/15195) 2026-03-27: [ALICE3] IOTOF: fix non segmented layers by [@njacazio](https://github.com/njacazio) +- [#15232](https://github.com/AliceO2Group/AliceO2/pull/15232) 2026-03-27: Avoid premature loop termination in the ITS vertexer by [@shahor02](https://github.com/shahor02) +- [#15161](https://github.com/AliceO2Group/AliceO2/pull/15161) 2026-03-27: ITS3: alignment code by [@f3sch](https://github.com/f3sch) +- [#15231](https://github.com/AliceO2Group/AliceO2/pull/15231) 2026-03-27: Protect time-slice calibration from stray TFs by [@shahor02](https://github.com/shahor02) +- [#15242](https://github.com/AliceO2Group/AliceO2/pull/15242) 2026-03-30: [ALICE 3] Fix extrusions in TOF and forward tracker (FT3) by [@marcovanleeuwen](https://github.com/marcovanleeuwen) +- [#15220](https://github.com/AliceO2Group/AliceO2/pull/15220) 2026-03-30: [ALICE3] IOTOF: Adjust layer radius calculations for stave tilt and chip thickness by [@njacazio](https://github.com/njacazio) +- [#15209](https://github.com/AliceO2Group/AliceO2/pull/15209) 2026-03-30: FT0: update Digitizer signal shape and trigger logic; FV0: update trigger logic in digitizer by [@spulawsk](https://github.com/spulawsk) +- [#15240](https://github.com/AliceO2Group/AliceO2/pull/15240) 2026-03-31: Rework DCS point classes to have default assign operators by [@ktf](https://github.com/ktf) ## Changes in Framework -- [#8620](https://github.com/AliceO2Group/AliceO2/pull/8620) 2022-04-20: DPL: work with ROOT master by [@ktf](https://github.com/ktf) -- [#8588](https://github.com/AliceO2Group/AliceO2/pull/8588) 2022-04-21: DPL Analysis: workaround for setting self-index binding before invoking process() by [@aalkin](https://github.com/aalkin) -- [#8630](https://github.com/AliceO2Group/AliceO2/pull/8630) 2022-04-21: DPL: add documentation to o2::framework::workflow::combine by [@ktf](https://github.com/ktf) -- [#8623](https://github.com/AliceO2Group/AliceO2/pull/8623) 2022-04-21: DPL: add dpl_instance tag to distinguish between different NUMA domains by [@ktf](https://github.com/ktf) -- [#8626](https://github.com/AliceO2Group/AliceO2/pull/8626) 2022-04-22: Fix Partition, add separate sliceByCached for joins, filtered and nested filtered by [@saganatt](https://github.com/saganatt) -- [#8609](https://github.com/AliceO2Group/AliceO2/pull/8609) 2022-04-22: Move to fdd version 001 by [@mbroz84](https://github.com/mbroz84) -- [#8606](https://github.com/AliceO2Group/AliceO2/pull/8606) 2022-04-22: readout-proxy: correctly populate TimingInfo by [@ktf](https://github.com/ktf) -- [#8637](https://github.com/AliceO2Group/AliceO2/pull/8637) 2022-04-24: remove temporary code by [@jgrosseo](https://github.com/jgrosseo) -- [#8644](https://github.com/AliceO2Group/AliceO2/pull/8644) 2022-04-25: DPL: Use startTime instead of tfCounter in whenAllOrdered policy by [@davidrohr](https://github.com/davidrohr) -- [#8649](https://github.com/AliceO2Group/AliceO2/pull/8649) 2022-04-25: DPL: do not send the oldest possible timeframe to out of band channels by [@ktf](https://github.com/ktf) -- [#8659](https://github.com/AliceO2Group/AliceO2/pull/8659) 2022-04-27: Printing log when we find a default CCDB entry by [@chiarazampolli](https://github.com/chiarazampolli) -- [#8574](https://github.com/AliceO2Group/AliceO2/pull/8574) 2022-04-28: Add energy as a dynamic column by [@njacazio](https://github.com/njacazio) +- [#15179](https://github.com/AliceO2Group/AliceO2/pull/15179) 2026-03-17: DPL: allow non-owning TFileFileSystem by [@ktf](https://github.com/ktf) +- [#15192](https://github.com/AliceO2Group/AliceO2/pull/15192) 2026-03-18: DPL: allow pipelining of the CCDB fetcher by [@ktf](https://github.com/ktf) +- [#15186](https://github.com/AliceO2Group/AliceO2/pull/15186) 2026-03-18: Fix warnings by [@ktf](https://github.com/ktf) +- [#15197](https://github.com/AliceO2Group/AliceO2/pull/15197) 2026-03-20: Revert "DPL: Better detection for injected workflows" by [@ktf](https://github.com/ktf) +- [#15187](https://github.com/AliceO2Group/AliceO2/pull/15187) 2026-03-21: DPL: propaedeutic to navigate a MessageSet without caching pairs by [@ktf](https://github.com/ktf) +- [#15177](https://github.com/AliceO2Group/AliceO2/pull/15177) 2026-03-24: DPL Analysis: force index to only bind with tables of the same origin by [@aalkin](https://github.com/aalkin) +- [#15204](https://github.com/AliceO2Group/AliceO2/pull/15204) 2026-03-24: DPL: fix OutputSpec metadata ignored in workflow deserialization by [@aalkin](https://github.com/aalkin) +- [#15206](https://github.com/AliceO2Group/AliceO2/pull/15206) 2026-03-24: DPL: get rid of the size method of the MessageSet by [@ktf](https://github.com/ktf) +- [#15208](https://github.com/AliceO2Group/AliceO2/pull/15208) 2026-03-25: DPL: move away from MessageSet::header / payload by [@ktf](https://github.com/ktf) +- [#15175](https://github.com/AliceO2Group/AliceO2/pull/15175) 2026-03-25: DPL: use constexpr for data description of EOS data header by [@ehellbar](https://github.com/ehellbar) +- [#15202](https://github.com/AliceO2Group/AliceO2/pull/15202) 2026-03-26: DPL: Better detection for injected workflows (fixed) by [@aalkin](https://github.com/aalkin) +- [#15212](https://github.com/AliceO2Group/AliceO2/pull/15212) 2026-03-26: DPL: fix DataModelViews behavior by [@ktf](https://github.com/ktf) +- [#15216](https://github.com/AliceO2Group/AliceO2/pull/15216) 2026-03-26: DPL: make sure DataRelayer benchmark works again by [@ktf](https://github.com/ktf) +- [#15228](https://github.com/AliceO2Group/AliceO2/pull/15228) 2026-03-27: DPL: move away from MessageSet::header / payload by [@ktf](https://github.com/ktf) +- [#15233](https://github.com/AliceO2Group/AliceO2/pull/15233) 2026-03-28: DPL: exponential back-off for missing resources. by [@ktf](https://github.com/ktf) +- [#15226](https://github.com/AliceO2Group/AliceO2/pull/15226) 2026-03-28: DPL: more validation of MessageSet::header / payload replacement by [@ktf](https://github.com/ktf) +- [#15229](https://github.com/AliceO2Group/AliceO2/pull/15229) 2026-03-28: DPL: replace MessageSet::associateHeader / associatePayload by [@ktf](https://github.com/ktf) +- [#15217](https://github.com/AliceO2Group/AliceO2/pull/15217) 2026-03-28: DPL: treat --ccdb-fetchers like --readers by [@ktf](https://github.com/ktf) +- [#15236](https://github.com/AliceO2Group/AliceO2/pull/15236) 2026-03-28: Revert "DPL: Better detection for injected workflows (fixed)" by [@ktf](https://github.com/ktf) +- [#15234](https://github.com/AliceO2Group/AliceO2/pull/15234) 2026-03-29: DPL: drop MessageSet::associateHeader / associatePayload by [@ktf](https://github.com/ktf) +- [#15237](https://github.com/AliceO2Group/AliceO2/pull/15237) 2026-03-29: DPL: get rid of MessageSet::pairMap by [@ktf](https://github.com/ktf) +- [#15241](https://github.com/AliceO2Group/AliceO2/pull/15241) 2026-03-29: DPL: migrate away from MessageSet by [@ktf](https://github.com/ktf) +- [#15244](https://github.com/AliceO2Group/AliceO2/pull/15244) 2026-03-30: Fix typo on the TPC A||C side contribution check by [@shahor02](https://github.com/shahor02) +## Changes in Generators + +- [#15169](https://github.com/AliceO2Group/AliceO2/pull/15169) 2026-03-17: Workaround for non-null vertexes in event pools by [@jackal1-66](https://github.com/jackal1-66) ## Changes in Steer -- [#8599](https://github.com/AliceO2Group/AliceO2/pull/8599) 2022-04-16: Use flag HBFUtils.obligatorySOR to start raw data from TF with SOX + fixes by [@shahor02](https://github.com/shahor02) +- [#15161](https://github.com/AliceO2Group/AliceO2/pull/15161) 2026-03-27: ITS3: alignment code by [@f3sch](https://github.com/f3sch) ## Changes in Utilities -- [#8589](https://github.com/AliceO2Group/AliceO2/pull/8589) 2022-04-14: Fix EPN stderr monitor by [@davidrohr](https://github.com/davidrohr) -- [#8660](https://github.com/AliceO2Group/AliceO2/pull/8660) 2022-04-28: [QC-769] Desambiguify DS and Merger names by [@Barthelemy](https://github.com/Barthelemy) +- [#15189](https://github.com/AliceO2Group/AliceO2/pull/15189) 2026-03-19: Correctly handle errors in merging histograms with kAverage by [@knopers8](https://github.com/knopers8) diff --git a/Detectors/Upgrades/ALICE3/IOTOF/README.md b/Detectors/Upgrades/ALICE3/IOTOF/README.md index d7a954c4718fe..e52b5e2379e9c 100644 --- a/Detectors/Upgrades/ALICE3/IOTOF/README.md +++ b/Detectors/Upgrades/ALICE3/IOTOF/README.md @@ -14,16 +14,18 @@ Configurables for various sub-detectors are presented in the following Table: [link to definitions](./base/include/IOTOFBase/IOTOFBaseParam.h) -| Options | Choices | Comments | -| ----------------------------- | ---------------------------------------------------------------- | ---------------------------------------------- | -| `IOTOFBase.enableInnerTOF` | `true` (default), `false` | Enable inner TOF barrel layer | -| `IOTOFBase.enableOuterTOF` | `true` (default), `false` | Enable outer TOF barrel layer | -| `IOTOFBase.enableForwardTOF` | `true` (default), `false` | Enable forward TOF endcap | -| `IOTOFBase.enableBackwardTOF` | `true` (default), `false` | Enable backward TOF endcap | -| `IOTOFBase.segmentedInnerTOF` | `false` (default), `true` | Use segmented geometry for inner TOF | -| `IOTOFBase.segmentedOuterTOF` | `false` (default), `true` | Use segmented geometry for outer TOF | -| `IOTOFBase.detectorPattern` | ` ` (default), `v3b`, `v3b1a`, `v3b1b`, `v3b2a`, `v3b2b`, `v3b3` | Optional layout pattern | -| `IOTOFBase.x2x0` | `0.000527` (default) | Chip thickness in fractions of the rad. lenght | +| Options | Choices | Comments | +| ----------------------------- | ---------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `IOTOFBase.enableInnerTOF` | `true` (default), `false` | Enable inner TOF barrel layer | +| `IOTOFBase.enableOuterTOF` | `true` (default), `false` | Enable outer TOF barrel layer | +| `IOTOFBase.enableForwardTOF` | `true` (default), `false` | Enable forward TOF endcap | +| `IOTOFBase.enableBackwardTOF` | `true` (default), `false` | Enable backward TOF endcap | +| `IOTOFBase.segmentedInnerTOF` | `false` (default), `true` | Use segmented geometry for inner TOF | +| `IOTOFBase.segmentedOuterTOF` | `false` (default), `true` | Use segmented geometry for outer TOF | +| `IOTOFBase.detectorPattern` | ` ` (default), `v3b`, `v3b1a`, `v3b1b`, `v3b2a`, `v3b2b`, `v3b3` | Optional layout pattern | +| `IOTOFBase.x2x0` | `0.02` (default) | Chip thickness in fractions of the rad. lenght | +| `IOTOFBase.sensorThickness` | `0.0050` (default) | Sensor thickness in cm, can be at maximum equivalent to the chip thickness | + For example, a geometry with fully cylindrical tracker barrel (for all layers in VD, ML and OT) can be obtained by diff --git a/Detectors/Upgrades/ALICE3/IOTOF/base/include/IOTOFBase/IOTOFBaseParam.h b/Detectors/Upgrades/ALICE3/IOTOF/base/include/IOTOFBase/IOTOFBaseParam.h index 1f1a26b79077e..c1a9578484c17 100644 --- a/Detectors/Upgrades/ALICE3/IOTOF/base/include/IOTOFBase/IOTOFBaseParam.h +++ b/Detectors/Upgrades/ALICE3/IOTOF/base/include/IOTOFBase/IOTOFBaseParam.h @@ -28,7 +28,8 @@ struct IOTOFBaseParam : public o2::conf::ConfigurableParamHelper std::string detectorPattern = ""; // Layouts of the detector bool segmentedInnerTOF = false; // If the inner TOF layer is segmented bool segmentedOuterTOF = false; // If the outer TOF layer is segmented - float x2x0 = 0.000527f; // thickness expressed in radiation length, for all layers for the moment + float x2x0 = 0.02f; // thickness expressed in radiation length, for all layers for the moment + float sensorThickness = 0.0050f; // thickness of the sensor in cm, for all layers for the moment, the default is set to 50 microns O2ParamDef(IOTOFBaseParam, "IOTOFBase"); }; diff --git a/Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Detector.h b/Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Detector.h index acf754e1b1fa8..34097020c42ff 100644 --- a/Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Detector.h +++ b/Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Detector.h @@ -60,7 +60,7 @@ class Detector : public o2::base::DetImpl return nullptr; } - void configLayers(bool itof = true, bool otof = true, bool ftof = true, bool btof = true, std::string pattern = "", bool itofSegmented = false, bool otofSegmented = false, const float x2x0 = 0.02f); + void configLayers(bool itof = true, bool otof = true, bool ftof = true, bool btof = true, std::string pattern = "", bool itofSegmented = false, bool otofSegmented = false, const float x2x0 = 0.02f, const float sensorThickness = 0.0050f); void configServices(); void createMaterials(); @@ -104,4 +104,4 @@ struct UseShm { } // namespace base } // namespace o2 #endif -#endif \ No newline at end of file +#endif diff --git a/Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Layer.h b/Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Layer.h index 29542810b8021..dc9fedf439a11 100644 --- a/Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Layer.h +++ b/Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Layer.h @@ -26,7 +26,7 @@ class Layer public: Layer() = default; Layer(std::string layerName, float rInn, float rOut, float zLength, float zOffset, float layerX2X0, - int layout = kBarrel, int nStaves = 0, float staveSize = 0.0, double staveTiltAngle = 0.0, int modulesPerStave = 0); + int layout = kBarrel, int nStaves = 0, float staveSize = 0.0, double staveTiltAngle = 0.0, int modulesPerStave = 0, float sensorThickness = 0.0f); ~Layer() = default; auto getInnerRadius() const { return mInnerRadius; } @@ -52,8 +52,9 @@ class Layer float mZLength; float mZOffset{0.f}; // Of use when fwd layers float mX2X0; - float mChipThickness; - int mLayout{kBarrel}; // Identifier of the type of layer layout (barrel, disk, barrel segmented, disk segmented) + float mChipThickness; // Thickness of the chip in cm, derived from mX2X0 and the radiation length of silicon + float mSensorThickness; // Thickness of the sensor in cm, to be subtracted from the chip thickness to get the total module thickness + int mLayout{kBarrel}; // Identifier of the type of layer layout (barrel, disk, barrel segmented, disk segmented) // To be used only in case of the segmented layout, to define the number of staves in phi (for barrel) or in r (for disk) std::pair mStaves{0, 0.0f}; // Number and size of staves in phi (for barrel) or in r (for disk) in case of segmented layout int mModulesPerStave{0}; // Number of modules along a stave @@ -92,4 +93,4 @@ class BTOFLayer : public Layer } // namespace iotof } // namespace o2 -#endif // ALICEO2_IOTOF_LAYER_H \ No newline at end of file +#endif // ALICEO2_IOTOF_LAYER_H diff --git a/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Detector.cxx b/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Detector.cxx index d6417eba22041..59b914a3dd076 100644 --- a/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Detector.cxx +++ b/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Detector.cxx @@ -58,7 +58,7 @@ void Detector::ConstructGeometry() } void Detector::configLayers(bool itof, bool otof, bool ftof, bool btof, std::string pattern, bool itofSegmented, bool otofSegmented, - const float x2x0) + const float x2x0, const float sensorThickness) { const std::pair dInnerTof = {21.f, 129.f}; // Radius and length @@ -102,7 +102,7 @@ void Detector::configLayers(bool itof, bool otof, bool ftof, bool btof, std::str const int modulesPerStave = itofSegmented ? 10 : 0; // number of modules per stave in segmented case mITOFLayer = ITOFLayer(name, dInnerTof.first, 0.f, dInnerTof.second, 0.f, x2x0, itofSegmented ? ITOFLayer::kBarrelSegmented : ITOFLayer::kBarrel, - nStaves, staveWidth, staveTiltAngle, modulesPerStave); + nStaves, staveWidth, staveTiltAngle, modulesPerStave, itofSegmented ? sensorThickness : 0.0f); } if (otof) { // oTOF const std::string name = GeometryTGeo::getOTOFLayerPattern(); @@ -112,7 +112,7 @@ void Detector::configLayers(bool itof, bool otof, bool ftof, bool btof, std::str const int modulesPerStave = otofSegmented ? 54 : 0; // number of modules per stave in segmented case mOTOFLayer = OTOFLayer(name, dOuterTof.first, 0.f, dOuterTof.second, 0.f, x2x0, otofSegmented ? OTOFLayer::kBarrelSegmented : OTOFLayer::kBarrel, - nStaves, staveWidth, staveTiltAngle, modulesPerStave); + nStaves, staveWidth, staveTiltAngle, modulesPerStave, otofSegmented ? sensorThickness : 0.0f); } if (ftof) { const std::string name = GeometryTGeo::getFTOFLayerPattern(); diff --git a/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Layer.cxx b/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Layer.cxx index 66d0b2959c8bd..b603d2a4a423b 100644 --- a/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Layer.cxx +++ b/Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Layer.cxx @@ -28,19 +28,20 @@ namespace o2 namespace iotof { Layer::Layer(std::string layerName, float rInn, float rOut, float zLength, float zOffset, float layerX2X0, - int layout, int nStaves, float staveSize, double staveTiltAngle, int modulesPerStave) + int layout, int nStaves, float staveSize, double staveTiltAngle, int modulesPerStave, float sensorThickness) : mLayerName(layerName), mInnerRadius(rInn), mOuterRadius(rOut), mZLength(zLength), mZOffset(zOffset), + mSensorThickness(sensorThickness), mX2X0(layerX2X0), mLayout(layout), mStaves(nStaves, staveSize), mModulesPerStave(modulesPerStave), mTiltAngle(staveTiltAngle) { - const float Si_X0 = 9.5f; + const float Si_X0 = 9.5f; // cm, radiation length of silicon mChipThickness = mX2X0 * Si_X0; std::string name = ""; switch (layout) { @@ -76,6 +77,12 @@ Layer::Layer(std::string layerName, float rInn, float rOut, float zLength, float if ((mTiltAngle < 0.0 || mTiltAngle > 90.0) && (layout == kBarrelSegmented || layout == kDiskSegmented)) { LOG(fatal) << "Invalid configuration: tilt angle " << mTiltAngle << " is too large, it must be between 0 and 90 degrees"; } + if (mSensorThickness < 0.0f || mSensorThickness > mChipThickness) { + LOG(fatal) << "Invalid configuration: sensor thickness " << mSensorThickness << " cm is out of range (0, " << mChipThickness << ") cm"; + } + if (sensorThickness > 0.0f && (layout == kBarrel || layout == kDisk)) { + LOG(fatal) << "Invalid configuration: sensor thickness " << mSensorThickness << " cm is set for non-segmented layout, it should be 0"; + } LOGP(info, "TOF: Creating {} layer: rInner: {} (cm) rOuter: {} (cm) zLength: {} (cm) zOffset: {} x2X0: {}", name.c_str(), mInnerRadius, mOuterRadius, mZLength, mZOffset, mX2X0); } @@ -193,7 +200,7 @@ void ITOFLayer::createLayer(TGeoVolume* motherVolume) const int sensorsPerChipX = 2; // we assume that each chip is divided in 2 sensors along the x direction const int sensorsPerChipZ = 2; // we assume that each chip is divided in 2 sensors along the z direction const double sensorSizeX = chipSizeX / sensorsPerChipX; // cm - const double sensorSizeY = chipSizeY; // cm + const double sensorSizeY = mSensorThickness; // cm const double sensorSizeZ = chipSizeZ / sensorsPerChipZ; // cm TGeoBBox* sensor = new TGeoBBox(sensorSizeX * 0.5, sensorSizeY * 0.5, sensorSizeZ * 0.5); TGeoVolume* sensVol = new TGeoVolume(sensName, sensor, medSi); @@ -327,7 +334,7 @@ void OTOFLayer::createLayer(TGeoVolume* motherVolume) const int sensorsPerChipX = 2; // we assume that each chip is divided in 2 sensors along the x direction const int sensorsPerChipZ = 2; // we assume that each chip is divided in 2 sensors along the z direction const double sensorSizeX = chipSizeX / sensorsPerChipX; // cm - const double sensorSizeY = chipSizeY; // cm + const double sensorSizeY = mSensorThickness; // cm const double sensorSizeZ = chipSizeZ / sensorsPerChipZ; // cm TGeoBBox* sensor = new TGeoBBox(sensorSizeX * 0.5, sensorSizeY * 0.5, sensorSizeZ * 0.5); TGeoVolume* sensVol = new TGeoVolume(sensName, sensor, medSi); diff --git a/doc/data/2026-03-o2_prs.json b/doc/data/2026-03-o2_prs.json new file mode 100644 index 0000000000000..c76ea3c07175c --- /dev/null +++ b/doc/data/2026-03-o2_prs.json @@ -0,0 +1,3798 @@ +{ + "repository": { + "pullRequests": { + "edges": [ + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-12T10:27:52Z", + "title": "full_system_test.sh: add --shm-segment-size to MCTracks-to-AO2D conversion tool workflow", + "number": 15148, + "author": { + "login": "ehellbar" + }, + "files": { + "edges": [ + { + "node": { + "path": "prodtests/full_system_test.sh" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-12T22:50:24Z", + "title": "Parse and pass SOR to o2-steer-colcontexttool in FST", + "number": 15149, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Calibration/testMacros/getRunParameters.cxx" + } + }, + { + "node": { + "path": "prodtests/full_system_test.sh" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-12T16:58:26Z", + "title": "Methods for Barrel <-> Forward tracks conversion", + "number": 15150, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "DataFormats/Reconstruction/include/ReconstructionDataFormats/TrackFwd.h" + } + }, + { + "node": { + "path": "DataFormats/Reconstruction/include/ReconstructionDataFormats/TrackParametrization.h" + } + }, + { + "node": { + "path": "DataFormats/Reconstruction/include/ReconstructionDataFormats/TrackParametrizationWithError.h" + } + }, + { + "node": { + "path": "DataFormats/Reconstruction/src/TrackFwd.cxx" + } + }, + { + "node": { + "path": "DataFormats/Reconstruction/src/TrackParametrization.cxx" + } + }, + { + "node": { + "path": "DataFormats/Reconstruction/src/TrackParametrizationWithError.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-12T20:25:38Z", + "title": "[ALICE 3] Update TRK README", + "number": 15151, + "author": { + "login": "scannito" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/README.md" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-16T10:00:35Z", + "title": "O2: Adapt to Arrow 23", + "number": 15152, + "author": { + "login": "aalkin" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/CMakeLists.txt" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/IndexBuilderHelpers.h" + } + }, + { + "node": { + "path": "Framework/Core/src/IndexBuilderHelpers.cxx" + } + }, + { + "node": { + "path": "dependencies/O2Dependencies.cmake" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-13T16:15:16Z", + "title": "Mergers: Retry with gDebug if merging fails", + "number": 15153, + "author": { + "login": "knopers8" + }, + "files": { + "edges": [ + { + "node": { + "path": "Utilities/Mergers/src/MergerAlgorithm.cxx" + } + }, + { + "node": { + "path": "Utilities/Mergers/test/test_Algorithm.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-15T18:30:17Z", + "title": "DPL: simplify argument passing and do not scatter configuration", + "number": 15154, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/AnalysisSupport/src/AODJAlienReaderHelpers.cxx" + } + }, + { + "node": { + "path": "Framework/AnalysisSupport/src/DataInputDirector.cxx" + } + }, + { + "node": { + "path": "Framework/AnalysisSupport/src/DataInputDirector.h" + } + }, + { + "node": { + "path": "Framework/AnalysisSupport/test/test_DataInputDirector.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-14T12:32:15Z", + "title": "DPL: Fix order of initialisation", + "number": 15155, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/ASoA.h" + } + } + ] + } + } + }, + { + "node": { + "state": "CLOSED", + "mergedAt": null, + "title": "FT0: align trigger definition in Digitizer with data trigger logic", + "number": 15156, + "author": { + "login": "spulawsk" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/FIT/FT0/base/include/FT0Base/FT0DigParam.h" + } + }, + { + "node": { + "path": "Detectors/FIT/FT0/simulation/src/Digitizer.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-13T20:40:48Z", + "title": "Fix ITS seeding for B=0", + "number": 15157, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/ITSMFT/ITS/tracking/GPU/cuda/TrackingKernels.cu" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/tracking/src/TrackerTraits.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-14T10:07:05Z", + "title": "[ALICE3] adding trapezoidal disk option for FT3; fixing overlaps in FT3 and TOF", + "number": 15158, + "author": { + "login": "altsybee" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/FT3/base/include/FT3Base/FT3BaseParam.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/FT3/base/include/FT3Base/GeometryTGeo.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/FT3/base/src/GeometryTGeo.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/FT3/simulation/include/FT3Simulation/FT3Layer.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/FT3/simulation/src/Detector.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/FT3/simulation/src/FT3Layer.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Detector.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Layer.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-16T10:46:47Z", + "title": "[ALICE3] oTOF: fix missing tilt shift for overlaps", + "number": 15159, + "author": { + "login": "njacazio" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Layer.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-16T14:10:35Z", + "title": "Pass missing ctf-dict options", + "number": 15160, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/src/entropy-encoder-workflow.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-27T09:37:28Z", + "title": "ITS3: alignment code", + "number": 15161, + "author": { + "login": "f3sch" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/CMakeLists.txt" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/README.md" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/include/ITS3Align/AlignmentHierarchy.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/include/ITS3Align/AlignmentParams.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/include/ITS3Align/AlignmentSensors.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/include/ITS3Align/AlignmentSpec.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/include/ITS3Align/AlignmentTypes.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/include/ITS3Align/Deformations.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/include/ITS3Align/MisalignmentHits.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/include/ITS3Align/MisalignmentManager.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/include/ITS3Align/MisalignmentParameters.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/include/ITS3Align/TrackFit.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/src/AlignmentHierarchy.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/src/AlignmentParams.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/src/AlignmentSensors.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/src/AlignmentSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/src/AlignmentTypes.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/src/Deformations.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/src/ITS3AlignLinkDef.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/src/MisalignmentHits.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/src/MisalignmentManager.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/src/MisalignmentParameters.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/alignment/src/alignment-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/base/include/ITS3Base/ITS3Params.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/base/include/ITS3Base/SegmentationMosaix.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/base/include/ITS3Base/SpecsV2.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/macros/align/CMakeLists.txt" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/macros/align/CheckHitResiduals.C" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/macros/align/CreateMisalignmentITS3.C" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/macros/align/MisAlignGeoITS3.notest" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/macros/align/ShowCoefficients.C" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/macros/align/TestLegendrePol.C" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/reconstruction/include/ITS3Reconstruction/IOUtils.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/reconstruction/src/IOUtils.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/reconstruction/src/TopologyDictionary.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/study/CMakeLists.txt" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/study/include/ITS3TrackingStudy/ITS3TrackingStudyParam.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/study/include/ITS3TrackingStudy/TrackingStudy.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/study/macros/CMakeLists.txt" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/study/macros/PlotMisalignment.C" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/study/macros/PlotResiduals.C" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/study/src/TrackingStudy.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/study/src/its3-tracking-study-workflow.cxx" + } + }, + { + "node": { + "path": "Steer/DigitizerWorkflow/CMakeLists.txt" + } + }, + { + "node": { + "path": "Steer/DigitizerWorkflow/src/ITS3DigitizerSpec.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-25T12:53:24Z", + "title": "Filter raw linker flags from GBL_LIBRARIES", + "number": 15162, + "author": { + "login": "f3sch" + }, + "files": { + "edges": [ + { + "node": { + "path": "dependencies/O2Dependencies.cmake" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "DPL: allow determining the origin from user provide input", + "number": 15163, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/AnalysisSupport/CMakeLists.txt" + } + }, + { + "node": { + "path": "Framework/AnalysisSupport/src/AODJAlienReaderHelpers.cxx" + } + }, + { + "node": { + "path": "Framework/AnalysisSupport/src/DataInputDirector.cxx" + } + }, + { + "node": { + "path": "Framework/AnalysisSupport/src/DataInputDirector.h" + } + }, + { + "node": { + "path": "Framework/AnalysisSupport/test/test_NavigateToLevel.cxx" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/RootArrowFilesystem.h" + } + }, + { + "node": { + "path": "Framework/Core/src/Plugin.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/RootArrowFilesystem.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-16T17:27:23Z", + "title": "Export language variables", + "number": 15164, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "GPU/GPUTracking/Definitions/Parameters/csv_to_json.sh" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-16T19:41:43Z", + "title": "Add some initial skills to improve Claude Code / Codex / whatever experience", + "number": 15165, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": ".skills/build-software-stack/SKILL.md" + } + }, + { + "node": { + "path": ".skills/create-a-new-file/SKILL.md" + } + }, + { + "node": { + "path": ".skills/create-a-new-file/o2-copyright-statement.md" + } + }, + { + "node": { + "path": "CLAUDE.md" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-17T00:44:18Z", + "title": "fix field/material usage in the propagateToR... methods", + "number": 15166, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Base/src/Propagator.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-18T05:39:12Z", + "title": "ALICE3-TRK: add noise to the digitization process", + "number": 15167, + "author": { + "login": "atriolo" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/include/TRKSimulation/ChipDigitsContainer.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/include/TRKSimulation/DPLDigitizerParam.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/include/TRKSimulation/DigiParams.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/src/ChipDigitsContainer.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/src/Digitizer.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-17T07:22:32Z", + "title": "[ALICE 3] Fix cylindrical MLOT layout", + "number": 15168, + "author": { + "login": "scannito" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/base/src/GeometryTGeo.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/src/Detector.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-17T12:49:44Z", + "title": "Workaround for non-null vertexes in event pools", + "number": 15169, + "author": { + "login": "jackal1-66" + }, + "files": { + "edges": [ + { + "node": { + "path": "Generators/include/Generators/GeneratorFromFile.h" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-17T08:23:52Z", + "title": "GPU TPC: Use stored field value during TPC track model decoding", + "number": 15170, + "author": { + "login": "davidrohr" + }, + "files": { + "edges": [ + { + "node": { + "path": "GPU/GPUTracking/Base/GPUParam.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Base/GPUReconstruction.cxx" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Base/GPUReconstruction.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Global/GPUChain.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Global/GPUChainTrackingCompression.cxx" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Interface/GPUO2InterfaceRefit.cxx" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Interface/GPUO2InterfaceUtils.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-17T09:03:07Z", + "title": "GPU: Make memory scaling factors configKeyValues", + "number": 15171, + "author": { + "login": "davidrohr" + }, + "files": { + "edges": [ + { + "node": { + "path": "GPU/GPUTracking/Base/GPUReconstruction.cxx" + } + }, + { + "node": { + "path": "GPU/GPUTracking/DataTypes/GPUMemorySizeScalers.cxx" + } + }, + { + "node": { + "path": "GPU/GPUTracking/DataTypes/GPUMemorySizeScalers.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Definitions/GPUSettingsList.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/GPUTrackingLinkDef_O2_DataTypes.h" + } + }, + { + "node": { + "path": "prodtests/full-system-test/dpl-workflow.sh" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-18T08:08:06Z", + "title": "[ALICE3] Update stave tilt angles for iTOF and oTOF layers", + "number": 15172, + "author": { + "login": "njacazio" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Detector.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-18T08:07:51Z", + "title": "[ALICE3] Refactor TRK Hit class to rely on ITSMFT", + "number": 15173, + "author": { + "login": "njacazio" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/reconstruction/include/TRKReconstruction/TimeFrame.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/include/TRKSimulation/Hit.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/src/Hit.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-18T08:05:45Z", + "title": "[ALICE3] TRK: allow ACTS clustering", + "number": 15174, + "author": { + "login": "njacazio" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/reconstruction/CMakeLists.txt" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/reconstruction/include/TRKReconstruction/Clusterer.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/reconstruction/include/TRKReconstruction/ClustererACTS.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/reconstruction/src/ClustererACTS.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/reconstruction/src/TRKReconstructionLinkDef.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/workflow/include/TRKWorkflow/ClustererSpec.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/workflow/src/ClustererSpec.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-25T14:53:55Z", + "title": "DPL: use constexpr for data description of EOS data header", + "number": 15175, + "author": { + "login": "ehellbar" + }, + "files": { + "edges": [ + { + "node": { + "path": "DataFormats/Headers/include/Headers/DataHeader.h" + } + }, + { + "node": { + "path": "Framework/Core/src/ExternalFairMQDeviceProxy.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_ExternalFairMQDeviceWorkflow.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-17T16:11:40Z", + "title": "Fix boost 1.90.0 / clang issue", + "number": 15176, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/TPC/calibration/src/CalibdEdx.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-24T17:36:40Z", + "title": "DPL Analysis: force index to only bind with tables of the same origin", + "number": 15177, + "author": { + "login": "aalkin" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/ASoA.h" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-17T20:59:02Z", + "title": "[ALICE3] update of readme for FT3 and ALICE3", + "number": 15178, + "author": { + "login": "altsybee" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/FT3/README.md" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/README.md" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-17T22:04:19Z", + "title": "DPL: allow non-owning TFileFileSystem", + "number": 15179, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/AnalysisSupport/src/DataInputDirector.cxx" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/RootArrowFilesystem.h" + } + }, + { + "node": { + "path": "Framework/Core/src/RootArrowFilesystem.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "GPU/TPC: extend noisy pad filter with Highly Ionising Particle filter", + "number": 15180, + "author": { + "login": "fweig" + }, + "files": { + "edges": [ + { + "node": { + "path": "GPU/Common/GPUCommonAlgorithm.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/DataTypes/GPUTPCExtraADC.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Definitions/GPUSettingsList.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Global/GPUChainTracking.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Global/GPUChainTrackingClusterizer.cxx" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Global/GPUChainTrackingCompression.cxx" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Global/GPUChainTrackingDebug.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/TPCClusterFinder/GPUTPCCFCheckPadBaseline.cxx" + } + }, + { + "node": { + "path": "GPU/GPUTracking/TPCClusterFinder/GPUTPCCFCheckPadBaseline.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/TPCClusterFinder/GPUTPCCFDecodeZS.cxx" + } + }, + { + "node": { + "path": "GPU/GPUTracking/TPCClusterFinder/GPUTPCCFDecodeZS.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/TPCClusterFinder/GPUTPCClusterFinderDump.cxx" + } + }, + { + "node": { + "path": "GPU/GPUTracking/utils/VcShim.h" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-18T09:51:41Z", + "title": "TRD: small fix for gain and VdExB calib", + "number": 15181, + "author": { + "login": "glegras" + }, + "files": { + "edges": [ + { + "node": { + "path": "DataFormats/Detectors/TRD/include/DataFormatsTRD/CalGain.h" + } + }, + { + "node": { + "path": "DataFormats/Detectors/TRD/include/DataFormatsTRD/CalVdriftExB.h" + } + }, + { + "node": { + "path": "Detectors/TRD/calibration/src/CalibratorGain.cxx" + } + }, + { + "node": { + "path": "Detectors/TRD/calibration/src/CalibratorVdExB.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-27T06:23:53Z", + "title": "Write standalone --debug output to CSV file", + "number": 15182, + "author": { + "login": "OliverRietmann" + }, + "files": { + "edges": [ + { + "node": { + "path": "GPU/GPUTracking/Base/GPUReconstructionCPU.cxx" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Base/GPUReconstructionCPU.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Base/GPUReconstructionDebug.cxx" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Definitions/GPUSettingsList.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Standalone/Benchmark/standalone.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-22T10:24:11Z", + "title": "[ALICE3] Adding error msg for TGeo features and QA macro for reco", + "number": 15183, + "author": { + "login": "AizatDaribayeva" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/base/include/TRKBase/GeometryTGeo.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/macros/test/CheckTracksCA.C" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-18T09:50:48Z", + "title": "Use finer Z bins for mat LUT in 56.5 < R< 76 cm", + "number": 15184, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Base/test/buildMatBudLUT.C" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-18T05:35:38Z", + "title": "ALICE 3 fix: overlap bw IRIS material and vacuum", + "number": 15185, + "author": { + "login": "plariono" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-18T09:23:11Z", + "title": "Fix warnings", + "number": 15186, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/Array2D.h" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-21T08:42:32Z", + "title": "DPL: propaedeutic to navigate a MessageSet without caching pairs", + "number": 15187, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/DataModelViews.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/MessageSet.h" + } + }, + { + "node": { + "path": "Framework/Core/test/test_MessageSet.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "ITS: staggering [DO NOT MERGE]", + "number": 15188, + "author": { + "login": "f3sch" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/ITSMFT/ITS/tracking/test/testROFLookupTables.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/include/ITSWorkflow/ClusterWriterWorkflow.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/include/ITSWorkflow/DCSAdaposParserSpec.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/include/ITSWorkflow/RecoWorkflow.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/include/ITSWorkflow/TrackReaderSpec.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/include/ITSWorkflow/TrackerSpec.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/include/ITSWorkflow/VertexReaderSpec.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/src/ClusterWriterWorkflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/src/RecoWorkflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/src/TrackReaderSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/src/TrackWriterSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/src/TrackWriterWorkflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/src/TrackerSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/src/its-cluster-reader-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/src/its-cluster-writer-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/src/its-reco-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/ITS/workflow/src/its-track-writer-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/MFT/calibration/src/NoiseCalibratorSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/MFT/condition/include/MFTCondition/DCSConfigReader.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/MFT/workflow/include/MFTWorkflow/RecoWorkflow.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/MFT/workflow/include/MFTWorkflow/TrackerSpec.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/MFT/workflow/src/RecoWorkflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/MFT/workflow/src/TrackWriterSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/MFT/workflow/src/TrackerSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/MFT/workflow/src/mft-cluster-reader-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/MFT/workflow/src/mft-cluster-writer-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/MFT/workflow/src/mft-reco-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/base/CMakeLists.txt" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/base/include/ITSMFTBase/DPLAlpideParam.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/base/src/ITSMFTBaseLinkDef.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/reconstruction/include/ITSMFTReconstruction/CTFCoder.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/reconstruction/include/ITSMFTReconstruction/ChipMappingITS.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/reconstruction/include/ITSMFTReconstruction/ChipMappingMFT.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/reconstruction/include/ITSMFTReconstruction/PixelReader.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/reconstruction/include/ITSMFTReconstruction/RawPixelDecoder.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/reconstruction/include/ITSMFTReconstruction/RawPixelReader.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/reconstruction/src/CTFCoder.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/reconstruction/src/ChipMappingITS.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/reconstruction/src/ChipMappingMFT.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/reconstruction/src/GBTLink.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/reconstruction/src/RawPixelDecoder.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/simulation/include/ITSMFTSimulation/DigiParams.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/include/ITSMFTWorkflow/ClusterReaderSpec.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/include/ITSMFTWorkflow/ClusterWriterSpec.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/include/ITSMFTWorkflow/ClustererSpec.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/include/ITSMFTWorkflow/DigitReaderSpec.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/include/ITSMFTWorkflow/DigitWriterSpec.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/include/ITSMFTWorkflow/EntropyDecoderSpec.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/include/ITSMFTWorkflow/EntropyEncoderSpec.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/include/ITSMFTWorkflow/STFDecoderSpec.h" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/src/ClusterReaderSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/src/ClusterWriterSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/src/ClustererSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/src/DigitReaderSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/src/DigitWriterSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/src/EntropyDecoderSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/src/EntropyEncoderSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/src/STFDecoderSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/src/digit-reader-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/src/digit-writer-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/src/entropy-encoder-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/ITSMFT/common/workflow/src/stf-decoder-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/Raw/TFReaderDD/src/TFReaderSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/Raw/TFReaderDD/src/TFReaderSpec.h" + } + }, + { + "node": { + "path": "Detectors/Raw/TFReaderDD/src/tf-reader-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/TRD/workflow/src/trd-tracking-workflow.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/reconstruction/include/TRKReconstruction/TimeFrame.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/reconstruction/src/TimeFrame.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/workflow/src/TrackerSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/reconstruction/include/ITS3Reconstruction/TrackingInterface.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/reconstruction/src/IOUtils.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/reconstruction/src/TrackingInterface.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/workflow/src/ClustererSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/workflow/src/RecoWorkflow.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ITS3/workflow/src/TrackerSpec.cxx" + } + }, + { + "node": { + "path": "Detectors/Vertexing/include/DetectorsVertexing/PVertexer.h" + } + }, + { + "node": { + "path": "Detectors/Vertexing/src/VertexTrackMatcher.cxx" + } + }, + { + "node": { + "path": "Detectors/Vertexing/test/PVFromPool.C" + } + }, + { + "node": { + "path": "EventVisualisation/Workflow/src/EveWorkflowHelper.cxx" + } + }, + { + "node": { + "path": "EventVisualisation/Workflow/src/O2DPLDisplay.cxx" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Base/GPUReconstructionIncludesITS.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Base/cuda/GPUReconstructionCUDA.cu" + } + }, + { + "node": { + "path": "GPU/GPUTracking/Global/GPUChainITS.h" + } + }, + { + "node": { + "path": "GPU/GPUTracking/display/render/GPUDisplayImportEvent.cxx" + } + }, + { + "node": { + "path": "GPU/Workflow/include/GPUWorkflow/GPUWorkflowSpec.h" + } + }, + { + "node": { + "path": "GPU/Workflow/src/GPUWorkflowITS.cxx" + } + }, + { + "node": { + "path": "GPU/Workflow/src/GPUWorkflowSpec.cxx" + } + }, + { + "node": { + "path": "GPU/Workflow/src/O2GPUDPLDisplay.cxx" + } + }, + { + "node": { + "path": "GPU/Workflow/src/gpu-reco-workflow.cxx" + } + }, + { + "node": { + "path": "Steer/DigitizerWorkflow/src/ITS3DigitizerSpec.cxx" + } + }, + { + "node": { + "path": "Steer/DigitizerWorkflow/src/ITSMFTDigitizerSpec.cxx" + } + }, + { + "node": { + "path": "Steer/DigitizerWorkflow/src/ITSMFTDigitizerSpec.h" + } + }, + { + "node": { + "path": "Steer/DigitizerWorkflow/src/SimpleDigitizerWorkflow.cxx" + } + }, + { + "node": { + "path": "Steer/DigitizerWorkflow/src/TRKDigitizerSpec.cxx" + } + }, + { + "node": { + "path": "doc/data/2021-02-o2_prs.json" + } + }, + { + "node": { + "path": "doc/data/2022-01-o2_prs.json" + } + }, + { + "node": { + "path": "macro/run_rawdecoding_its.C" + } + }, + { + "node": { + "path": "macro/run_rawdecoding_mft.C" + } + }, + { + "node": { + "path": "prodtests/full-system-test/dpl-workflow.sh" + } + }, + { + "node": { + "path": "prodtests/full_system_test.sh" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-19T07:16:45Z", + "title": "Correctly handle errors in merging histograms with kAverage", + "number": 15189, + "author": { + "login": "knopers8" + }, + "files": { + "edges": [ + { + "node": { + "path": "Utilities/Mergers/src/MergerAlgorithm.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "GPU Framework: fix detection for gfx90a GPU", + "number": 15190, + "author": { + "login": "cima22" + }, + "files": { + "edges": [ + { + "node": { + "path": "dependencies/FindO2GPU.cmake" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-18T15:35:54Z", + "title": "Update clean PR action", + "number": 15191, + "author": { + "login": "singiamtel" + }, + "files": { + "edges": [ + { + "node": { + "path": ".github/workflows/clean-test.yml" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-18T22:01:10Z", + "title": "DPL: allow pipelining of the CCDB fetcher", + "number": 15192, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/src/WorkflowCustomizationHelpers.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/WorkflowHelpers.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-19T14:19:54Z", + "title": "TPC: Change default SCD calibration interval to 5min", + "number": 15193, + "author": { + "login": "wiechula" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/GlobalTrackingWorkflow/tpcinterpolationworkflow/src/TPCInterpolationSpec.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "[ALICE3] Copy class of ITSMFT Hit for TRK Hit", + "number": 15194, + "author": { + "login": "njacazio" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/CMakeLists.txt" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/include/TRKSimulation/Hit.h" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-27T08:08:30Z", + "title": "[ALICE3] IOTOF: fix non segmented layers", + "number": 15195, + "author": { + "login": "njacazio" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Detector.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-20T20:31:53Z", + "title": "Add missing include for gcc 15.2", + "number": 15196, + "author": { + "login": "wiechula" + }, + "files": { + "edges": [ + { + "node": { + "path": "GPU/GPUTracking/display/backend/GPUDisplayBackendVulkan.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-20T08:00:36Z", + "title": "Revert \"DPL: Better detection for injected workflows\"", + "number": 15197, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/src/ArrowSupport.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/WorkflowHelpers.cxx" + } + }, + { + "node": { + "path": "run/o2sim_hepmc_publisher.cxx" + } + }, + { + "node": { + "path": "run/o2sim_kine_publisher.cxx" + } + }, + { + "node": { + "path": "run/o2sim_mctracks_to_aod.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-20T13:32:41Z", + "title": "[ALICE3] Updated ALICE 3 IRIS coldplate in O2 geometry", + "number": 15198, + "author": { + "login": "fcolamar" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/src/TRKServices.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/src/VDGeometryBuilder.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-20T20:18:10Z", + "title": "AODProducer: Option to specify and forward parent AOD file", + "number": 15199, + "author": { + "login": "sawenzel" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/AOD/include/AODProducerWorkflow/AODProducerWorkflowSpec.h" + } + }, + { + "node": { + "path": "Detectors/AOD/src/AODProducerWorkflowSpec.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-21T06:38:44Z", + "title": "Fix MLOT digit residuals", + "number": 15200, + "author": { + "login": "mpuccio" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/macros/test/CheckDigits.C" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-22T06:10:05Z", + "title": "[ALICE 3] Properly set FT3 sensitive volumes; improve tiling", + "number": 15201, + "author": { + "login": "marcovanleeuwen" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/FT3/simulation/src/Detector.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/FT3/simulation/src/FT3Module.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-26T10:29:14Z", + "title": "DPL: Better detection for injected workflows (fixed)", + "number": 15202, + "author": { + "login": "aalkin" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/src/ArrowSupport.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/WorkflowHelpers.cxx" + } + }, + { + "node": { + "path": "run/o2sim_hepmc_publisher.cxx" + } + }, + { + "node": { + "path": "run/o2sim_kine_publisher.cxx" + } + }, + { + "node": { + "path": "run/o2sim_mctracks_to_aod.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-23T17:36:31Z", + "title": "ALICE3-TRK: changed ML/OT pitch to 20 um", + "number": 15203, + "author": { + "login": "atriolo" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/base/include/TRKBase/Specs.h" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-24T13:06:48Z", + "title": "DPL: fix OutputSpec metadata ignored in workflow deserialization", + "number": 15204, + "author": { + "login": "aalkin" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/src/WorkflowSerializationHelpers.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_WorkflowSerialization.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "aodMerger: Special option to merge only folders of the same name", + "number": 15205, + "author": { + "login": "sawenzel" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/AODMerger/src/aodMerger.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-24T07:48:12Z", + "title": "DPL: get rid of the size method of the MessageSet", + "number": 15206, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/MessageSet.h" + } + }, + { + "node": { + "path": "Framework/Core/src/DataRelayer.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/benchmark_DataRelayer.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_DataRelayer.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_ForwardInputs.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-24T09:49:44Z", + "title": "Fix using MeanVertex in the residuals monitoring workflow", + "number": 15207, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/GlobalTrackingWorkflow/study/src/CheckResid.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-25T21:21:29Z", + "title": "DPL: move away from MessageSet::header / payload", + "number": 15208, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/DataModelViews.h" + } + }, + { + "node": { + "path": "Framework/Core/src/DataProcessingDevice.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/DataRelayer.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_DataRelayer.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-30T21:00:48Z", + "title": "FT0: update Digitizer signal shape and trigger logic; FV0: update trigger logic in digitizer", + "number": 15209, + "author": { + "login": "spulawsk" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/FIT/FT0/base/include/FT0Base/FT0DigParam.h" + } + }, + { + "node": { + "path": "Detectors/FIT/FT0/simulation/src/Digitizer.cxx" + } + }, + { + "node": { + "path": "Detectors/FIT/FV0/simulation/include/FV0Simulation/FV0DigParam.h" + } + }, + { + "node": { + "path": "Detectors/FIT/FV0/simulation/src/Digitizer.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-27T00:55:43Z", + "title": "In absence of svertexing pass --disable-strangeness-tracker to AOD pr…", + "number": 15210, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "prodtests/full-system-test/dpl-workflow.sh" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-30T12:04:33Z", + "title": "Add optional dependency for Acts package", + "number": 15211, + "author": { + "login": "njacazio" + }, + "files": { + "edges": [ + { + "node": { + "path": "dependencies/O2Dependencies.cmake" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-26T02:27:35Z", + "title": "DPL: fix DataModelViews behavior", + "number": 15212, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/DataModelViews.h" + } + }, + { + "node": { + "path": "Framework/Core/test/test_DataRelayer.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_MessageSet.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "DPL Analysis: use Input/OutputSpec metadata to detect special tables instead of origins", + "number": 15213, + "author": { + "login": "aalkin" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/AnalysisHelpers.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/AnalysisManagers.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/DanglingEdgesContext.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/DataSpecViews.h" + } + }, + { + "node": { + "path": "Framework/Core/src/AnalysisSupportHelpers.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/ArrowSupport.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/WorkflowHelpers.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/runDataProcessing.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-25T15:01:45Z", + "title": "start_tmux.sh: remove double-checking for existing shm segments", + "number": 15214, + "author": { + "login": "ehellbar" + }, + "files": { + "edges": [ + { + "node": { + "path": "prodtests/full-system-test/start_tmux.sh" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "[ALICE3] TRK: Collect services in a dedicated volume assembly", + "number": 15215, + "author": { + "login": "njacazio" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/base/include/TRKBase/GeometryTGeo.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/base/src/GeometryTGeo.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/TRK/simulation/src/TRKServices.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-26T12:53:29Z", + "title": "DPL: make sure DataRelayer benchmark works again", + "number": 15216, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/test/benchmark_DataRelayer.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-28T19:03:20Z", + "title": "DPL: treat --ccdb-fetchers like --readers", + "number": 15217, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/src/runDataProcessing.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "Drop async-list-label action", + "number": 15218, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": ".github/workflows/async-list-label.yml" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-26T10:05:16Z", + "title": "Add missing track->resetCov before refit for revertexing", + "number": 15219, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/GlobalTrackingWorkflow/study/src/CheckResid.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-30T22:34:35Z", + "title": "[ALICE3] IOTOF: Adjust layer radius calculations for stave tilt and chip thickness", + "number": 15220, + "author": { + "login": "njacazio" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/README.md" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/base/include/IOTOFBase/IOTOFBaseParam.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Detector.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Layer.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-25T20:53:58Z", + "title": "Please consider the following formatting changes to #15220", + "number": 15221, + "author": { + "login": "alibuild" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/base/include/IOTOFBase/IOTOFBaseParam.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Detector.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "CLOSED", + "mergedAt": null, + "title": "Please consider the following formatting changes to #15220", + "number": 15222, + "author": { + "login": "alibuild" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Detector.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-27T08:25:07Z", + "title": "Fix BasicCCDBManager::isCacheValid(ts) method", + "number": 15223, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "CCDB/include/CCDB/BasicCCDBManager.h" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "Cleanup: Remove old version of jobutils and cpulimit tool", + "number": 15224, + "author": { + "login": "sawenzel" + }, + "files": { + "edges": [ + { + "node": { + "path": "Utilities/Tools/CMakeLists.txt" + } + }, + { + "node": { + "path": "Utilities/Tools/cpulimit/.clang-format" + } + }, + { + "node": { + "path": "Utilities/Tools/cpulimit/CMakeLists.txt" + } + }, + { + "node": { + "path": "Utilities/Tools/cpulimit/README" + } + }, + { + "node": { + "path": "Utilities/Tools/cpulimit/cpulimit.c" + } + }, + { + "node": { + "path": "Utilities/Tools/cpulimit/list.c" + } + }, + { + "node": { + "path": "Utilities/Tools/cpulimit/list.h" + } + }, + { + "node": { + "path": "Utilities/Tools/cpulimit/process_group.c" + } + }, + { + "node": { + "path": "Utilities/Tools/cpulimit/process_group.h" + } + }, + { + "node": { + "path": "Utilities/Tools/cpulimit/process_iterator.c" + } + }, + { + "node": { + "path": "Utilities/Tools/cpulimit/process_iterator.h" + } + }, + { + "node": { + "path": "Utilities/Tools/cpulimit/process_iterator_apple.c" + } + }, + { + "node": { + "path": "Utilities/Tools/cpulimit/process_iterator_freebsd.c" + } + }, + { + "node": { + "path": "Utilities/Tools/cpulimit/process_iterator_linux.c" + } + }, + { + "node": { + "path": "prodtests/full_system_test.sh" + } + }, + { + "node": { + "path": "prodtests/full_system_test_ci_extra_tests.sh" + } + }, + { + "node": { + "path": "prodtests/full_system_test_pipeline.sh" + } + }, + { + "node": { + "path": "prodtests/sim_challenge.sh" + } + }, + { + "node": { + "path": "run/SimExamples/SimAsService_biasing1/run.sh" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-27T00:54:44Z", + "title": "Set GPU field to 0 if L3 current <= 77A", + "number": 15225, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "GPU/GPUTracking/Interface/GPUO2InterfaceUtils.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-28T08:09:53Z", + "title": "DPL: more validation of MessageSet::header / payload replacement", + "number": 15226, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/test/test_MessageSet.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "CLOSED", + "mergedAt": null, + "title": "DPL: migrate away from MessageSet", + "number": 15227, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/DataModelViews.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/DataProcessingHelpers.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/DataRelayer.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/MessageSet.h" + } + }, + { + "node": { + "path": "Framework/Core/src/DataProcessingDevice.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/DataProcessingHelpers.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/DataRelayer.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/benchmark_DataRelayer.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_DataRelayer.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_ForwardInputs.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_MessageSet.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-27T05:51:14Z", + "title": "DPL: move away from MessageSet::header / payload", + "number": 15228, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/src/DataRelayer.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_MessageSet.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-28T15:41:01Z", + "title": "DPL: replace MessageSet::associateHeader / associatePayload", + "number": 15229, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/MessageSet.h" + } + }, + { + "node": { + "path": "Framework/Core/src/DataProcessingDevice.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_MessageSet.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "DPL Analysis: remove special origins and add `From<>` version for auto-generated tables", + "number": 15230, + "author": { + "login": "aalkin" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/AnalysisSupport/src/AODWriterHelpers.cxx" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/ASoA.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/AnalysisDataModel.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/AnalysisHelpers.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/AnalysisManagers.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/AnalysisSupportHelpers.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/DanglingEdgesContext.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/DataSpecViews.h" + } + }, + { + "node": { + "path": "Framework/Core/src/AnalysisDataModel.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/AnalysisSupportHelpers.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/ArrowSupport.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/WorkflowHelpers.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/runDataProcessing.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_Concepts.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_IndexBuilder.cxx" + } + }, + { + "node": { + "path": "Framework/TestWorkflows/src/o2TestMultisource.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-27T16:49:49Z", + "title": "Protect time-slice calibration from stray TFs", + "number": 15231, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "DataFormats/common/include/CommonDataFormat/TFIDInfo.h" + } + }, + { + "node": { + "path": "Detectors/Base/src/TFIDInfoHelper.cxx" + } + }, + { + "node": { + "path": "Detectors/Calibration/include/DetectorsCalibration/TimeSlotCalibration.h" + } + }, + { + "node": { + "path": "Detectors/PHOS/calib/src/PHOSEnergyCalibDevice.cxx" + } + }, + { + "node": { + "path": "Detectors/PHOS/calib/src/PHOSL1phaseCalibDevice.cxx" + } + }, + { + "node": { + "path": "Detectors/PHOS/calib/src/PHOSRunbyrunCalibDevice.cxx" + } + }, + { + "node": { + "path": "Detectors/PHOS/calib/src/PHOSTurnonCalibDevice.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-27T19:53:28Z", + "title": "Avoid premature loop termination in the ITS vertexer", + "number": 15232, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/ITSMFT/ITS/tracking/src/VertexerTraits.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-28T20:47:04Z", + "title": "DPL: exponential back-off for missing resources.", + "number": 15233, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/src/DataProcessingDevice.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-29T06:40:39Z", + "title": "DPL: drop MessageSet::associateHeader / associatePayload", + "number": 15234, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/MessageSet.h" + } + }, + { + "node": { + "path": "Framework/Core/test/test_MessageSet.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "Drop unneeded workaround", + "number": 15235, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Common/MathUtils/include/MathUtils/Cartesian.h" + } + }, + { + "node": { + "path": "Common/MathUtils/include/MathUtils/CartesianGPU.h" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-28T22:30:14Z", + "title": "Revert \"DPL: Better detection for injected workflows (fixed)\"", + "number": 15236, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/src/ArrowSupport.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/WorkflowHelpers.cxx" + } + }, + { + "node": { + "path": "run/o2sim_hepmc_publisher.cxx" + } + }, + { + "node": { + "path": "run/o2sim_kine_publisher.cxx" + } + }, + { + "node": { + "path": "run/o2sim_mctracks_to_aod.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-29T12:46:13Z", + "title": "DPL: get rid of MessageSet::pairMap", + "number": 15237, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/MessageSet.h" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "C++ standard fobids specializations of `is_trivially_copyable`", + "number": 15238, + "author": { + "login": "aalkin" + }, + "files": { + "edges": [ + { + "node": { + "path": "Common/MathUtils/include/MathUtils/Cartesian.h" + } + }, + { + "node": { + "path": "Common/MathUtils/test/testCartesian.cxx" + } + }, + { + "node": { + "path": "Detectors/DCS/include/DetectorsDCS/DataPointCompositeObject.h" + } + }, + { + "node": { + "path": "Detectors/DCS/include/DetectorsDCS/DataPointIdentifier.h" + } + }, + { + "node": { + "path": "Detectors/DCS/test/testDataPointTypes.cxx" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/TypeTraits.h" + } + } + ] + } + } + }, + { + "node": { + "state": "CLOSED", + "mergedAt": null, + "title": "Use default constructor", + "number": 15239, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/DCS/include/DetectorsDCS/DataPointCompositeObject.h" + } + }, + { + "node": { + "path": "Detectors/DCS/include/DetectorsDCS/DataPointIdentifier.h" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-31T12:57:19Z", + "title": "Rework DCS point classes to have default assign operators", + "number": 15240, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/DCS/include/DetectorsDCS/DataPointCompositeObject.h" + } + }, + { + "node": { + "path": "Detectors/DCS/include/DetectorsDCS/DataPointIdentifier.h" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-29T21:53:06Z", + "title": "DPL: migrate away from MessageSet", + "number": 15241, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/DataModelViews.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/DataProcessingHelpers.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/DataRelayer.h" + } + }, + { + "node": { + "path": "Framework/Core/include/Framework/MessageSet.h" + } + }, + { + "node": { + "path": "Framework/Core/src/DataProcessingDevice.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/DataProcessingHelpers.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/DataRelayer.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/benchmark_DataRelayer.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_DataRelayer.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_ForwardInputs.cxx" + } + }, + { + "node": { + "path": "Framework/Core/test/test_MessageSet.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-30T15:22:47Z", + "title": "[ALICE 3] Fix extrusions in TOF and forward tracker (FT3)", + "number": 15242, + "author": { + "login": "marcovanleeuwen" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/FT3/simulation/src/FT3Layer.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Layer.cxx" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-30T15:14:03Z", + "title": "Add fcolamar as owner for ALICE3 upgrades", + "number": 15243, + "author": { + "login": "njacazio" + }, + "files": { + "edges": [ + { + "node": { + "path": "CODEOWNERS" + } + } + ] + } + } + }, + { + "node": { + "state": "MERGED", + "mergedAt": "2026-03-30T16:39:58Z", + "title": "Fix typo on the TPC A||C side contribution check", + "number": 15244, + "author": { + "login": "shahor02" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/include/Framework/AnalysisDataModel.h" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "Implementation of macros for fetching and conversion of FIT LUT [AFIT-126]", + "number": 15245, + "author": { + "login": "wpierozak" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/FIT/macros/CMakeLists.txt" + } + }, + { + "node": { + "path": "Detectors/FIT/macros/compareLUT.C" + } + }, + { + "node": { + "path": "Detectors/FIT/macros/convertLUTCSVtoROOT.C" + } + }, + { + "node": { + "path": "Detectors/FIT/macros/fetchLUT.C" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "DPL: add MCP server for DPL", + "number": 15246, + "author": { + "login": "ktf" + }, + "files": { + "edges": [ + { + "node": { + "path": "Framework/Core/CMakeLists.txt" + } + }, + { + "node": { + "path": "Framework/Core/scripts/dpl-mcp-server/README.md" + } + }, + { + "node": { + "path": "Framework/Core/scripts/dpl-mcp-server/dpl_mcp_server.py" + } + }, + { + "node": { + "path": "Framework/Core/scripts/dpl-mcp-server/pyproject.toml" + } + }, + { + "node": { + "path": "Framework/Core/src/ControlWebSocketHandler.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/DPLWebSocket.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/DPLWebSocket.h" + } + }, + { + "node": { + "path": "Framework/Core/src/DriverServerContext.h" + } + }, + { + "node": { + "path": "Framework/Core/src/StatusWebSocketHandler.cxx" + } + }, + { + "node": { + "path": "Framework/Core/src/StatusWebSocketHandler.h" + } + } + ] + } + } + }, + { + "node": { + "state": "OPEN", + "mergedAt": null, + "title": "[ALICE3] IOTOF: allow reduced sensor thickness wihout reducing chip size", + "number": 15247, + "author": { + "login": "njacazio" + }, + "files": { + "edges": [ + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/README.md" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/base/include/IOTOFBase/IOTOFBaseParam.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Detector.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Layer.h" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Detector.cxx" + } + }, + { + "node": { + "path": "Detectors/Upgrades/ALICE3/IOTOF/simulation/src/Layer.cxx" + } + } + ] + } + } + } + ] + } + } +} diff --git a/doc/data/2026-03-o2_releases.json b/doc/data/2026-03-o2_releases.json new file mode 100644 index 0000000000000..d5b844b42ca35 --- /dev/null +++ b/doc/data/2026-03-o2_releases.json @@ -0,0 +1,92 @@ +{ + "repository": { + "releases": { + "edges": [ + { + "node": { + "tagName": "v21.15", + "publishedAt": "2021-04-13T12:15:45Z" + } + }, + { + "node": { + "tagName": "v21.14", + "publishedAt": "2021-04-11T15:52:11Z" + } + }, + { + "node": { + "tagName": "v21.13", + "publishedAt": "2021-03-30T20:28:48Z" + } + }, + { + "node": { + "tagName": "v21.11", + "publishedAt": "2021-03-17T07:01:20Z" + } + }, + { + "node": { + "tagName": "v21.10", + "publishedAt": "2021-03-12T08:23:39Z" + } + }, + { + "node": { + "tagName": "v21.09", + "publishedAt": "2021-03-03T06:17:35Z" + } + }, + { + "node": { + "tagName": "v21.07", + "publishedAt": "2021-02-16T17:29:26Z" + } + }, + { + "node": { + "tagName": "v21.05", + "publishedAt": "2021-02-10T21:53:36Z" + } + }, + { + "node": { + "tagName": "v21.03", + "publishedAt": "2021-01-21T13:14:28Z" + } + }, + { + "node": { + "tagName": "v21.01", + "publishedAt": "2021-01-05T16:47:05Z" + } + }, + { + "node": { + "tagName": "v20.49", + "publishedAt": "2020-12-11T16:12:56Z" + } + }, + { + "node": { + "tagName": "v1.3.0", + "publishedAt": "2020-09-22T07:21:04Z" + } + }, + { + "node": { + "tagName": "v1.2.0", + "publishedAt": "2020-02-25T09:10:00Z" + } + }, + { + "node": { + "tagName": "O2-1.0.0", + "publishedAt": "2018-11-21T13:41:46Z" + } + } + ] + } + } +}