Skip to content

TPC: Add sector edge fluctuation correction infrastructure#15532

Open
matthias-kleiner wants to merge 5 commits into
AliceO2Group:devfrom
matthias-kleiner:sectorEdge
Open

TPC: Add sector edge fluctuation correction infrastructure#15532
matthias-kleiner wants to merge 5 commits into
AliceO2Group:devfrom
matthias-kleiner:sectorEdge

Conversation

@matthias-kleiner

Copy link
Copy Markdown
Contributor
  • New SectorEdgeFluctuations class parses a CSV table of run/time intervals and optional per-sector scaling factors stored in CCDB as CalSecEdgeInfo
  • New CCDB correction map type CalSecEdgeCorrection holds per-sector delta distortion maps, applied based on the sectors and scaling factors from SectorEdgeFluctuations
  • TPCFastSpaceChargeCorrectionHelper extended to support per-sector scaling factors
  • Correction is added to TPCScalerSpec and enabled via --enable-sec-edge-fluc-correction
  • Applied scaling factors are written to TimeSeriesITSTPC for visualisation in the TPC time series

cbmsw and others added 2 commits June 16, 2026 17:11
Add option to correct for sector edge fluctuations.
The time intervals and sectors with optional scaling factors are parsed from CSV table.
Two new CCDB types are added:
1. CalSecEdgeCorrection: the correction map with per sector delta fluctuations
2. CalSecEdgeInfo: the time intervals with optional per sector scaling factors for which the CalSecEdgeCorrection will be applied

The applied scaling factors are added to the TPC timeseries for visualisation.
Comment thread Detectors/TPC/calibration/src/CorrectionMapsLoader.cxx Outdated
Comment thread Detectors/TPC/calibration/src/CorrectionMapsLoader.cxx Outdated
tpcopt.lumiMode = static_cast<LumiScaleMode>(lumiModeVal);

tpcopt.enableMShapeCorrection = opts.get<bool>("enable-M-shape-correction");
tpcopt.enableSecEdgeFlucCorrection = opts.get<bool>("enable-sec-edge-fluc-correction");

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps the default should be on, so one could rename this to disable-...

Comment thread Detectors/TPC/workflow/src/tpc-time-series.cxx Outdated
@matthias-kleiner

Copy link
Copy Markdown
Contributor Author

Thanks @wiechula for the comments. I just fixed them

@matthias-kleiner matthias-kleiner marked this pull request as ready for review June 23, 2026 13:41
@alibuild

alibuild commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Error while checking build/O2/fullCI_slc9 for 335d1a3 at 2026-06-24 06:16:

## sw/BUILD/O2-full-system-test-latest/log
command /sw/slc9_x86-64/O2/slc9_x86-64-slc9_x86-64-local7/prodtests/full-system-test/dpl-workflow.sh had nonzero exit code 1
[9150:internal-dpl-ccdb-backend]: [02:54:41][ERROR] CcdbDownloader finished transfer http://alice-ccdb.cern.ch/TPC/Calib/SecEdgeFlucInfo for 1550600800023 (agent_id: o2-itsmft-stf-d/o2-itsmft-stf-decoder-workflow@9150 target/Linux_x86_64 init/1782262475739 id/mesosci@alimetal00.cern.ch session/KeUsotes) with http code: 404
[9150:internal-dpl-ccdb-backend]: [02:54:41][ERROR] File TPC/Calib/SecEdgeFlucInfo could not be retrieved. No more hosts to try.
[9150:internal-dpl-ccdb-backend]: [02:54:41][FATAL] Unable to find CCDB object TPC/Calib/SecEdgeFlucInfo/1550600800023
[9150:internal-dpl-ccdb-backend]: [02:54:41][ERROR] Exception while running: Fatal error. Rethrowing.
[9150:internal-dpl-ccdb-backend]: [02:54:41][FATAL] Unhandled o2::framework::runtime_error reached the top of main of o2-itsmft-stf-decoder-workflow, device shutting down. Reason: Fatal error
[ERROR] Workflow crashed - PID 9150 (internal-dpl-ccdb-backend) did not exit correctly however it's not clear why. Exit code forced to 128.
[ERROR]  - Device internal-dpl-ccdb-backend: pid 9150 (exit 128)
[INFO]    - First error: [02:54:41][FATAL] Unable to find CCDB object TPC/Calib/SecEdgeFlucInfo/1550600800023
[ERROR] SEVERE: Device internal-dpl-ccdb-backend (9150) had at least one message above severity 7: Unable to find CCDB object TPC/Calib/SecEdgeFlucInfo/1550600800023


## sw/BUILD/o2checkcode-latest/log
--
========== List of errors found ==========
++ GRERR=0
++ grep -v clang-diagnostic-error error-log.txt
++ grep ' error:'
grep: error-log.txt: binary file matches
++ GRERR=1
++ [[ 1 == 0 ]]
++ mkdir -p /sw/INSTALLROOT/f720b7854c7c35e92b5d3d01ceb4aedf59175d04/slc9_x86-64/o2checkcode/1.0-local115/etc/modulefiles
++ alibuild-generate-module
+ HAS_BIN=
+ HAS_LIB=
+ HAS_CMAKE=
+ HAS_ROOT=
+ '[' 0 '!=' 0 ']'
+ cat
+ printf 'if ![ is-loaded '\''BASE/1.0'\'' ] {\n module load BASE/1.0\n}'
+ echo 'BUILD_REQUIRES=CMake alibuild-recipe-tools defaults-release'
BUILD_REQUIRES=CMake alibuild-recipe-tools defaults-release
+ FULL_BUILD_REQUIRES='CMake defaults-release UUID date json-c Alice-GRID-Utils alibuild-recipe-tools ninja-fortran safe_int O2-customization googlebenchmark pytorch_cpuinfo FairCMakeModules bz2 Python-modules-list ninja double-conversion MPFR'
+ echo 'FULL_BUILD_REQUIRES=CMake defaults-release UUID date json-c Alice-GRID-Utils alibuild-recipe-tools ninja-fortran safe_int O2-customization googlebenchmark pytorch_cpuinfo FairCMakeModules bz2 Python-modules-list ninja double-conversion MPFR'
FULL_BUILD_REQUIRES=CMake defaults-release UUID date json-c Alice-GRID-Utils alibuild-recipe-tools ninja-fortran safe_int O2-customization googlebenchmark pytorch_cpuinfo FairCMakeModules bz2 Python-modules-list ninja double-conversion MPFR
++ env
++ cut -f1 -d=
++ grep -v '^DEFAULT_'
++ grep -v PKGREVISION
++ grep -v ALIBUILD_RECIPE_TOOLS
++ grep REVISION
++ sed -e s/_REVISION//
+ for x in $(env | cut -f1 -d= | grep -v "^DEFAULT_" | grep -v PKGREVISION | grep -v ALIBUILD_RECIPE_TOOLS | grep REVISION | sed -e 's/_REVISION//')
++ eval 'echo $LIBFFI_REVISION'
+++ echo 10
+ REVISION_VALUE=10
++ eval 'echo $LIBFFI_VERSION'
+++ echo v3.2.1-alice1
[0 more errors; see full log]

Full log here.

@shahor02

Copy link
Copy Markdown
Collaborator

I've uploaded the objects with the local build using #15532, for the full_CI should pick it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

5 participants