From aa8dedeb0cb11d03f2f3f9251720dc928605bd57 Mon Sep 17 00:00:00 2001 From: Robert Muenzer Date: Thu, 16 Apr 2026 09:18:42 +0200 Subject: [PATCH 1/7] Add CMV processing --- prodtests/full-system-test/aggregator-workflow.sh | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/prodtests/full-system-test/aggregator-workflow.sh b/prodtests/full-system-test/aggregator-workflow.sh index a0d091a98d193..8980e095a5a4d 100755 --- a/prodtests/full-system-test/aggregator-workflow.sh +++ b/prodtests/full-system-test/aggregator-workflow.sh @@ -161,7 +161,7 @@ if workflow_has_parameter CALIB_PROXIES; then fi CHANNELS_LIST= [[ $EPNSYNCMODE == 0 ]] && FLP_ADDRESS="tcp://localhost:29950" - if [[ -n ${CALIBDATASPEC_TPCIDC_A:-} ]] || [[ -n ${CALIBDATASPEC_TPCIDC_C:-} ]]; then + if [[ -n ${CALIBDATASPEC_TPCIDC_A:-} ]] || [[ -n ${CALIBDATASPEC_TPCIDC_C:-} ]] || [[ -n ${CALIBDATASPEC_TPCCMV:-} ]]; then # define port for FLP : ${TPC_IDC_FLP_PORT:=29950} # expand FLPs; TPC uses from 001 to 145, but 145 is reserved for SAC @@ -190,10 +190,13 @@ if workflow_has_parameter CALIB_PROXIES; then if [[ -n ${CALIBDATASPEC_TPCIDC_C:-} ]]; then add_semicolon_separated DATASPEC_LIST "\"$CALIBDATASPEC_TPCIDC_C\"" fi + if [[ -n ${CALIBDATASPEC_TPCCMV:-} ]]; then + add_semicolon_separated DATASPEC_LIST "\"$CALIBDATASPEC_TPCCMV\"" + fi if [[ -n ${CALIBDATASPEC_TPCSAC:-} ]]; then add_semicolon_separated DATASPEC_LIST "\"$CALIBDATASPEC_TPCSAC\"" fi - add_W o2-dpl-raw-proxy "--proxy-name tpcidc --io-threads 2 --dataspec \"$DATASPEC_LIST\" --sporadic-outputs --channel-config \"$CHANNELS_LIST\" ${TIMEFRAME_SHM_LIMIT+--timeframes-shm-limit} $TIMEFRAME_SHM_LIMIT" "" 0 + add_W o2-dpl-raw-proxy "--proxy-name tpcidc --io-threads 4 --dataspec \"$DATASPEC_LIST\" --sporadic-outputs --channel-config \"$CHANNELS_LIST\" ${TIMEFRAME_SHM_LIMIT+--timeframes-shm-limit} $TIMEFRAME_SHM_LIMIT" "" 0 fi elif [[ $AGGREGATOR_TASKS == CALO_TF ]]; then if [[ -n ${CALIBDATASPEC_CALO_TF:-} ]]; then @@ -301,6 +304,7 @@ threadFactorize=${O2_TPC_IDC_FACTORIZE_NTHREADS:-16} nTFs=$((1000 * 128 / ${NHBPERTF})) nTFs_SAC=$((10000 * 128 / ${NHBPERTF})) nBuffer=$((100 * 128 / ${NHBPERTF})) +nBuffer_cmv=$((300 * 128 / ${NHBPERTF})) IDC_DELTA="--disable-IDCDelta true" # off by default # deltas are on by default; you need to request explicitly to switch them off; if [[ "${DISABLE_IDC_DELTA:-}" == "1" ]]; then IDC_DELTA=""; fi @@ -310,10 +314,15 @@ if [[ "${DISABLE_IDC_PAD_MAP_WRITING:-}" == 1 ]]; then TPC_WRITING_PAD_STATUS_MA if ! workflow_has_parameter CALIB_LOCAL_INTEGRATED_AGGREGATOR; then if [[ $CALIB_TPC_IDC == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then - add_W o2-tpc-idc-distribute "--crus ${crus} --timeframes ${nTFs} --output-lanes ${lanesFactorize} --send-precise-timestamp true --condition-tf-per-query ${nTFs} --n-TFs-buffer ${nBuffer}" + add_W o2-tpc-idc-distribute "--crus ${crus} --timeframes ${nTFs} --output-lanes ${lanesFactorize} --send-precise-timestamp true --condition-tf-per-query ${nTFs} " add_W o2-tpc-idc-factorize "--n-TFs-buffer ${nBuffer} --input-lanes ${lanesFactorize} --crus ${crus} --timeframes ${nTFs} --nthreads-grouping ${threadFactorize} --nthreads-IDC-factorization ${threadFactorize} --sendOutputFFT true --enable-CCDB-output true --enablePadStatusMap true ${TPC_WRITING_PAD_STATUS_MAP} --use-precise-timestamp true $IDC_DELTA" "TPCIDCGroupParam.groupPadsSectorEdges=32211" add_W o2-tpc-idc-ft-aggregator "--rangeIDC 200 --inputLanes ${lanesFactorize} --nFourierCoeff 40 --nthreads 8" fi + if [[ $CALIB_TPC_CMV == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then + add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --n-TFs-buffer ${nBuffer_cmv} --enable-CCDB-output --cmv-zero-threshold 1.0 --cmv-dynamic-precision-mean 1.0 --cmv-dynamic-precision-sigma 8.0 --use-sparse --use-compression-huffman" +## add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --n-TFs-buffer ${nBuffer_cmv} --enable-CCDB-output --cmv-zero-threshold 1.0 --cmv-dynamic-precision-mean 1.0 --cmv-dynamic-precision-sigma 8.0 --use-sparse" +## add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --n-TFs-buffer ${nBuffer_cmv} --enable-CCDB-output --cmv-zero-threshold 1.0 --use-sparse " + fi if [[ $CALIB_TPC_SAC == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then add_W o2-tpc-sac-distribute "--timeframes ${nTFs_SAC} --output-lanes 1 " add_W o2-tpc-sac-factorize "--timeframes ${nTFs_SAC} --nthreads-SAC-factorization 4 --input-lanes 1 --compression 2" From e5574a78e9af2c5fac7d2b9ad1f6d066e58613e4 Mon Sep 17 00:00:00 2001 From: Robert Muenzer Date: Wed, 22 Apr 2026 08:02:20 +0200 Subject: [PATCH 2/7] Add parameters for CMV --- .../full-system-test/aggregator-workflow.sh | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/prodtests/full-system-test/aggregator-workflow.sh b/prodtests/full-system-test/aggregator-workflow.sh index 8980e095a5a4d..dd7514fbc2020 100755 --- a/prodtests/full-system-test/aggregator-workflow.sh +++ b/prodtests/full-system-test/aggregator-workflow.sh @@ -196,7 +196,12 @@ if workflow_has_parameter CALIB_PROXIES; then if [[ -n ${CALIBDATASPEC_TPCSAC:-} ]]; then add_semicolon_separated DATASPEC_LIST "\"$CALIBDATASPEC_TPCSAC\"" fi - add_W o2-dpl-raw-proxy "--proxy-name tpcidc --io-threads 4 --dataspec \"$DATASPEC_LIST\" --sporadic-outputs --channel-config \"$CHANNELS_LIST\" ${TIMEFRAME_SHM_LIMIT+--timeframes-shm-limit} $TIMEFRAME_SHM_LIMIT" "" 0 + if [[ -z ${O2_TPC_IDC_CMV_IO_THREADS:-} ]]; then + O2_TPC_IDC_CMV_IO_THREADS=4; + fi + #add_W o2-dpl-raw-proxy "--proxy-name tpcidc --io-threads 4 --dataspec \"$DATASPEC_LIST\" --sporadic-outputs --channel-config \"$CHANNELS_LIST\" ${TIMEFRAME_SHM_LIMIT+--timeframes-shm-limit} $TIMEFRAME_SHM_LIMIT" "" 0 + + add_W o2-dpl-raw-proxy "--proxy-name tpcidc --io-threads ${O2_TPC_IDC_CMV_IO_THREADS} --dataspec \"$DATASPEC_LIST\" --sporadic-outputs --channel-config \"$CHANNELS_LIST\" ${TIMEFRAME_SHM_LIMIT+--timeframes-shm-limit} $TIMEFRAME_SHM_LIMIT" "" 0 fi elif [[ $AGGREGATOR_TASKS == CALO_TF ]]; then if [[ -n ${CALIBDATASPEC_CALO_TF:-} ]]; then @@ -318,10 +323,13 @@ if ! workflow_has_parameter CALIB_LOCAL_INTEGRATED_AGGREGATOR; then add_W o2-tpc-idc-factorize "--n-TFs-buffer ${nBuffer} --input-lanes ${lanesFactorize} --crus ${crus} --timeframes ${nTFs} --nthreads-grouping ${threadFactorize} --nthreads-IDC-factorization ${threadFactorize} --sendOutputFFT true --enable-CCDB-output true --enablePadStatusMap true ${TPC_WRITING_PAD_STATUS_MAP} --use-precise-timestamp true $IDC_DELTA" "TPCIDCGroupParam.groupPadsSectorEdges=32211" add_W o2-tpc-idc-ft-aggregator "--rangeIDC 200 --inputLanes ${lanesFactorize} --nFourierCoeff 40 --nthreads 8" fi - if [[ $CALIB_TPC_CMV == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then - add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --n-TFs-buffer ${nBuffer_cmv} --enable-CCDB-output --cmv-zero-threshold 1.0 --cmv-dynamic-precision-mean 1.0 --cmv-dynamic-precision-sigma 8.0 --use-sparse --use-compression-huffman" -## add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --n-TFs-buffer ${nBuffer_cmv} --enable-CCDB-output --cmv-zero-threshold 1.0 --cmv-dynamic-precision-mean 1.0 --cmv-dynamic-precision-sigma 8.0 --use-sparse" -## add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --n-TFs-buffer ${nBuffer_cmv} --enable-CCDB-output --cmv-zero-threshold 1.0 --use-sparse " + if [[ $CALIB_TPC_CMV == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then + if [[ -z ${O2_TPC_CMV_ZERO_THRESHOLD:-} ]]; then O2_TPC_CMV_ZERO_THRESHOLD="--cmv-zero-threshold 1.0"; fi + if [[ -z ${O2_TPC_CMV_DYNAMIC_PRECISION_MEAN:-} ]]; then O2_TPC_CMV_DYNAMIC_PRECISION_MEAN="--cmv-dynamic-precision-mean 1.0"; fi + if [[ -z ${O2_TPC_CMV_DYNAMIC_PRECISION_SIGMA:-} ]]; then O2_TPC_CMV_DYNAMIC_PRECISION_SIGMA="--cmv-dynamic-precision-sigma 8.0"; fi + if [[ -z ${O2_TPC_CMV_USE_HUFFMANN:-} ]]; then O2_TPC_CMV_USE_HUFFMANN="--use-compression-huffman"; fi + if [[ -z ${O2_TPC_CMV_TIMEFRAMES:-} ]]; then O2_TPC_CMV_TIMEFRAMES="--timeframes 20000"; fi + add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --n-TFs-buffer ${nBuffer_cmv} ${O2_TPC_CMV_TIMEFRAMES} --enable-CCDB-output {O2_TPC_CMV_ZERO_THRESHOLD} {O2_TPC_CMV_DYNAMIC_PRECISION_MEAN} {O2_TPC_CMV_DYNAMIC_PRECISION_SIGMA} --use-sparse ${O2_TPC_CMV_USE_HUFFMANN}" fi if [[ $CALIB_TPC_SAC == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then add_W o2-tpc-sac-distribute "--timeframes ${nTFs_SAC} --output-lanes 1 " From 24512f726b81a071edc5fa8dffe577b03596c25d Mon Sep 17 00:00:00 2001 From: Robert Muenzer Date: Fri, 24 Apr 2026 09:28:10 +0200 Subject: [PATCH 3/7] Add o2-tpc-cmv-aggragate-task --- prodtests/full-system-test/aggregator-workflow.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/prodtests/full-system-test/aggregator-workflow.sh b/prodtests/full-system-test/aggregator-workflow.sh index dd7514fbc2020..e78b2492050ef 100755 --- a/prodtests/full-system-test/aggregator-workflow.sh +++ b/prodtests/full-system-test/aggregator-workflow.sh @@ -310,6 +310,7 @@ nTFs=$((1000 * 128 / ${NHBPERTF})) nTFs_SAC=$((10000 * 128 / ${NHBPERTF})) nBuffer=$((100 * 128 / ${NHBPERTF})) nBuffer_cmv=$((300 * 128 / ${NHBPERTF})) +lanesCMVaggreagte=${O2_TPC_IDC_FACTORIZE_NLANES:-2} IDC_DELTA="--disable-IDCDelta true" # off by default # deltas are on by default; you need to request explicitly to switch them off; if [[ "${DISABLE_IDC_DELTA:-}" == "1" ]]; then IDC_DELTA=""; fi @@ -324,12 +325,13 @@ if ! workflow_has_parameter CALIB_LOCAL_INTEGRATED_AGGREGATOR; then add_W o2-tpc-idc-ft-aggregator "--rangeIDC 200 --inputLanes ${lanesFactorize} --nFourierCoeff 40 --nthreads 8" fi if [[ $CALIB_TPC_CMV == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then - if [[ -z ${O2_TPC_CMV_ZERO_THRESHOLD:-} ]]; then O2_TPC_CMV_ZERO_THRESHOLD="--cmv-zero-threshold 1.0"; fi - if [[ -z ${O2_TPC_CMV_DYNAMIC_PRECISION_MEAN:-} ]]; then O2_TPC_CMV_DYNAMIC_PRECISION_MEAN="--cmv-dynamic-precision-mean 1.0"; fi - if [[ -z ${O2_TPC_CMV_DYNAMIC_PRECISION_SIGMA:-} ]]; then O2_TPC_CMV_DYNAMIC_PRECISION_SIGMA="--cmv-dynamic-precision-sigma 8.0"; fi + if [[ -z ${O2_TPC_CMV_ZERO_THRESHOLD:-} ]]; then O2_TPC_CMV_ZERO_THRESHOLD="1.0"; fi + if [[ -z ${O2_TPC_CMV_DYNAMIC_PRECISION_MEAN:-} ]]; then O2_TPC_CMV_DYNAMIC_PRECISION_MEAN="1.0"; fi + if [[ -z ${O2_TPC_CMV_DYNAMIC_PRECISION_SIGMA:-} ]]; then O2_TPC_CMV_DYNAMIC_PRECISION_SIGMA="8.0"; fi if [[ -z ${O2_TPC_CMV_USE_HUFFMANN:-} ]]; then O2_TPC_CMV_USE_HUFFMANN="--use-compression-huffman"; fi - if [[ -z ${O2_TPC_CMV_TIMEFRAMES:-} ]]; then O2_TPC_CMV_TIMEFRAMES="--timeframes 20000"; fi - add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --n-TFs-buffer ${nBuffer_cmv} ${O2_TPC_CMV_TIMEFRAMES} --enable-CCDB-output {O2_TPC_CMV_ZERO_THRESHOLD} {O2_TPC_CMV_DYNAMIC_PRECISION_MEAN} {O2_TPC_CMV_DYNAMIC_PRECISION_SIGMA} --use-sparse ${O2_TPC_CMV_USE_HUFFMANN}" + if [[ -z ${O2_TPC_CMV_TIMEFRAMES:-} ]]; then O2_TPC_CMV_TIMEFRAMES="2400"; fi + add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --output-lanes ${lanesCMVaggreagte} --n-TFs-buffer ${nBuffer_cmv} --timeframes ${O2_TPC_CMV_TIMEFRAMES} --send-precise-timestamp " + add_W o2-tpc-cmv-aggregate "--crus ${crus} --input-lanes ${lanesCMVaggreagte} --n-TFs-buffer ${nBuffer_cmv} --nthreads-compression 4 --timeframes ${O2_TPC_CMV_TIMEFRAMES} --use-precise-timestamp --enable-CCDB-output --cmv-zero-threshold ${O2_TPC_CMV_ZERO_THRESHOLD} --cmv-dynamic-precision-mean ${O2_TPC_CMV_DYNAMIC_PRECISION_MEAN} --cmv-dynamic-precision-sigma ${O2_TPC_CMV_DYNAMIC_PRECISION_SIGMA} --use-sparse ${O2_TPC_CMV_USE_HUFFMANN}" fi if [[ $CALIB_TPC_SAC == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then add_W o2-tpc-sac-distribute "--timeframes ${nTFs_SAC} --output-lanes 1 " From 4967b4046ea1fc0809df9ce573c741025d922b94 Mon Sep 17 00:00:00 2001 From: rmunzer <97919772+rmunzer@users.noreply.github.com> Date: Fri, 24 Apr 2026 17:32:27 +0200 Subject: [PATCH 4/7] Cleanup and change of parameters names --- prodtests/full-system-test/aggregator-workflow.sh | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/prodtests/full-system-test/aggregator-workflow.sh b/prodtests/full-system-test/aggregator-workflow.sh index e78b2492050ef..5bb1f527615f2 100755 --- a/prodtests/full-system-test/aggregator-workflow.sh +++ b/prodtests/full-system-test/aggregator-workflow.sh @@ -199,8 +199,6 @@ if workflow_has_parameter CALIB_PROXIES; then if [[ -z ${O2_TPC_IDC_CMV_IO_THREADS:-} ]]; then O2_TPC_IDC_CMV_IO_THREADS=4; fi - #add_W o2-dpl-raw-proxy "--proxy-name tpcidc --io-threads 4 --dataspec \"$DATASPEC_LIST\" --sporadic-outputs --channel-config \"$CHANNELS_LIST\" ${TIMEFRAME_SHM_LIMIT+--timeframes-shm-limit} $TIMEFRAME_SHM_LIMIT" "" 0 - add_W o2-dpl-raw-proxy "--proxy-name tpcidc --io-threads ${O2_TPC_IDC_CMV_IO_THREADS} --dataspec \"$DATASPEC_LIST\" --sporadic-outputs --channel-config \"$CHANNELS_LIST\" ${TIMEFRAME_SHM_LIMIT+--timeframes-shm-limit} $TIMEFRAME_SHM_LIMIT" "" 0 fi elif [[ $AGGREGATOR_TASKS == CALO_TF ]]; then @@ -310,7 +308,7 @@ nTFs=$((1000 * 128 / ${NHBPERTF})) nTFs_SAC=$((10000 * 128 / ${NHBPERTF})) nBuffer=$((100 * 128 / ${NHBPERTF})) nBuffer_cmv=$((300 * 128 / ${NHBPERTF})) -lanesCMVaggreagte=${O2_TPC_IDC_FACTORIZE_NLANES:-2} +lanesCMVaggregate=${O2_TPC_IDC_FACTORIZE_NLANES:-2} IDC_DELTA="--disable-IDCDelta true" # off by default # deltas are on by default; you need to request explicitly to switch them off; if [[ "${DISABLE_IDC_DELTA:-}" == "1" ]]; then IDC_DELTA=""; fi @@ -320,18 +318,15 @@ if [[ "${DISABLE_IDC_PAD_MAP_WRITING:-}" == 1 ]]; then TPC_WRITING_PAD_STATUS_MA if ! workflow_has_parameter CALIB_LOCAL_INTEGRATED_AGGREGATOR; then if [[ $CALIB_TPC_IDC == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then - add_W o2-tpc-idc-distribute "--crus ${crus} --timeframes ${nTFs} --output-lanes ${lanesFactorize} --send-precise-timestamp true --condition-tf-per-query ${nTFs} " + add_W o2-tpc-idc-distribute "--crus ${crus} --timeframes ${nTFs} --output-lanes ${lanesFactorize} --send-precise-timestamp true --condition-tf-per-query ${nTFs} --n-TFs-buffer ${nBuffer}" add_W o2-tpc-idc-factorize "--n-TFs-buffer ${nBuffer} --input-lanes ${lanesFactorize} --crus ${crus} --timeframes ${nTFs} --nthreads-grouping ${threadFactorize} --nthreads-IDC-factorization ${threadFactorize} --sendOutputFFT true --enable-CCDB-output true --enablePadStatusMap true ${TPC_WRITING_PAD_STATUS_MAP} --use-precise-timestamp true $IDC_DELTA" "TPCIDCGroupParam.groupPadsSectorEdges=32211" add_W o2-tpc-idc-ft-aggregator "--rangeIDC 200 --inputLanes ${lanesFactorize} --nFourierCoeff 40 --nthreads 8" fi if [[ $CALIB_TPC_CMV == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then - if [[ -z ${O2_TPC_CMV_ZERO_THRESHOLD:-} ]]; then O2_TPC_CMV_ZERO_THRESHOLD="1.0"; fi - if [[ -z ${O2_TPC_CMV_DYNAMIC_PRECISION_MEAN:-} ]]; then O2_TPC_CMV_DYNAMIC_PRECISION_MEAN="1.0"; fi - if [[ -z ${O2_TPC_CMV_DYNAMIC_PRECISION_SIGMA:-} ]]; then O2_TPC_CMV_DYNAMIC_PRECISION_SIGMA="8.0"; fi - if [[ -z ${O2_TPC_CMV_USE_HUFFMANN:-} ]]; then O2_TPC_CMV_USE_HUFFMANN="--use-compression-huffman"; fi + if [[ -z ${O2_TPC_CMV_COMPRESSION:-} ]]; then O2_TPC_CMV_DYNAMIC_PRECISION_MEAN="--cmv-zero-threshold 1.0 --cmv-dynamic-precision-mean 1.0--cmv-dynamic-precision-sigma 8.0 --use-compression-huffman"; fi if [[ -z ${O2_TPC_CMV_TIMEFRAMES:-} ]]; then O2_TPC_CMV_TIMEFRAMES="2400"; fi - add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --output-lanes ${lanesCMVaggreagte} --n-TFs-buffer ${nBuffer_cmv} --timeframes ${O2_TPC_CMV_TIMEFRAMES} --send-precise-timestamp " - add_W o2-tpc-cmv-aggregate "--crus ${crus} --input-lanes ${lanesCMVaggreagte} --n-TFs-buffer ${nBuffer_cmv} --nthreads-compression 4 --timeframes ${O2_TPC_CMV_TIMEFRAMES} --use-precise-timestamp --enable-CCDB-output --cmv-zero-threshold ${O2_TPC_CMV_ZERO_THRESHOLD} --cmv-dynamic-precision-mean ${O2_TPC_CMV_DYNAMIC_PRECISION_MEAN} --cmv-dynamic-precision-sigma ${O2_TPC_CMV_DYNAMIC_PRECISION_SIGMA} --use-sparse ${O2_TPC_CMV_USE_HUFFMANN}" + add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --output-lanes ${lanesCMVaggregate} --n-TFs-buffer ${nBuffer_cmv} --timeframes ${O2_TPC_CMV_TIMEFRAMES} --send-precise-timestamp " + add_W o2-tpc-cmv-aggregate "--crus ${crus} --input-lanes ${lanesCMVaggregate} --n-TFs-buffer ${nBuffer_cmv} --nthreads-compression 4 --timeframes ${O2_TPC_CMV_TIMEFRAMES} --use-precise-timestamp --enable-CCDB-output ${O2_TPC_CMV_COMPRESSION}" fi if [[ $CALIB_TPC_SAC == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then add_W o2-tpc-sac-distribute "--timeframes ${nTFs_SAC} --output-lanes 1 " From aab5a57db3d371ddebae22fa1a39acab0800ec81 Mon Sep 17 00:00:00 2001 From: Robert Muenzer Date: Fri, 24 Apr 2026 17:40:46 +0200 Subject: [PATCH 5/7] Correct white spaces --- prodtests/full-system-test/aggregator-workflow.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/prodtests/full-system-test/aggregator-workflow.sh b/prodtests/full-system-test/aggregator-workflow.sh index 5bb1f527615f2..7706a210fe6f1 100755 --- a/prodtests/full-system-test/aggregator-workflow.sh +++ b/prodtests/full-system-test/aggregator-workflow.sh @@ -196,9 +196,9 @@ if workflow_has_parameter CALIB_PROXIES; then if [[ -n ${CALIBDATASPEC_TPCSAC:-} ]]; then add_semicolon_separated DATASPEC_LIST "\"$CALIBDATASPEC_TPCSAC\"" fi - if [[ -z ${O2_TPC_IDC_CMV_IO_THREADS:-} ]]; then - O2_TPC_IDC_CMV_IO_THREADS=4; - fi + if [[ -z ${O2_TPC_IDC_CMV_IO_THREADS:-} ]]; then + O2_TPC_IDC_CMV_IO_THREADS=4; + fi add_W o2-dpl-raw-proxy "--proxy-name tpcidc --io-threads ${O2_TPC_IDC_CMV_IO_THREADS} --dataspec \"$DATASPEC_LIST\" --sporadic-outputs --channel-config \"$CHANNELS_LIST\" ${TIMEFRAME_SHM_LIMIT+--timeframes-shm-limit} $TIMEFRAME_SHM_LIMIT" "" 0 fi elif [[ $AGGREGATOR_TASKS == CALO_TF ]]; then @@ -323,10 +323,10 @@ if ! workflow_has_parameter CALIB_LOCAL_INTEGRATED_AGGREGATOR; then add_W o2-tpc-idc-ft-aggregator "--rangeIDC 200 --inputLanes ${lanesFactorize} --nFourierCoeff 40 --nthreads 8" fi if [[ $CALIB_TPC_CMV == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then - if [[ -z ${O2_TPC_CMV_COMPRESSION:-} ]]; then O2_TPC_CMV_DYNAMIC_PRECISION_MEAN="--cmv-zero-threshold 1.0 --cmv-dynamic-precision-mean 1.0--cmv-dynamic-precision-sigma 8.0 --use-compression-huffman"; fi - if [[ -z ${O2_TPC_CMV_TIMEFRAMES:-} ]]; then O2_TPC_CMV_TIMEFRAMES="2400"; fi - add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --output-lanes ${lanesCMVaggregate} --n-TFs-buffer ${nBuffer_cmv} --timeframes ${O2_TPC_CMV_TIMEFRAMES} --send-precise-timestamp " - add_W o2-tpc-cmv-aggregate "--crus ${crus} --input-lanes ${lanesCMVaggregate} --n-TFs-buffer ${nBuffer_cmv} --nthreads-compression 4 --timeframes ${O2_TPC_CMV_TIMEFRAMES} --use-precise-timestamp --enable-CCDB-output ${O2_TPC_CMV_COMPRESSION}" + if [[ -z ${O2_TPC_CMV_COMPRESSION:-} ]]; then O2_TPC_CMV_DYNAMIC_PRECISION_MEAN="--cmv-zero-threshold 1.0 --cmv-dynamic-precision-mean 1.0--cmv-dynamic-precision-sigma 8.0 --use-compression-huffman"; fi + if [[ -z ${O2_TPC_CMV_TIMEFRAMES:-} ]]; then O2_TPC_CMV_TIMEFRAMES="2400"; fi + add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --output-lanes ${lanesCMVaggregate} --n-TFs-buffer ${nBuffer_cmv} --timeframes ${O2_TPC_CMV_TIMEFRAMES} --send-precise-timestamp " + add_W o2-tpc-cmv-aggregate "--crus ${crus} --input-lanes ${lanesCMVaggregate} --n-TFs-buffer ${nBuffer_cmv} --nthreads-compression 4 --timeframes ${O2_TPC_CMV_TIMEFRAMES} --use-precise-timestamp --enable-CCDB-output ${O2_TPC_CMV_COMPRESSION}" fi if [[ $CALIB_TPC_SAC == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then add_W o2-tpc-sac-distribute "--timeframes ${nTFs_SAC} --output-lanes 1 " From 4dd8f09f84eae79aae380ec8132c39dc8e8232ca Mon Sep 17 00:00:00 2001 From: Robert Muenzer Date: Fri, 24 Apr 2026 17:59:00 +0200 Subject: [PATCH 6/7] Remove white space --- prodtests/full-system-test/aggregator-workflow.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prodtests/full-system-test/aggregator-workflow.sh b/prodtests/full-system-test/aggregator-workflow.sh index 7706a210fe6f1..4dc913366c329 100755 --- a/prodtests/full-system-test/aggregator-workflow.sh +++ b/prodtests/full-system-test/aggregator-workflow.sh @@ -322,7 +322,7 @@ if ! workflow_has_parameter CALIB_LOCAL_INTEGRATED_AGGREGATOR; then add_W o2-tpc-idc-factorize "--n-TFs-buffer ${nBuffer} --input-lanes ${lanesFactorize} --crus ${crus} --timeframes ${nTFs} --nthreads-grouping ${threadFactorize} --nthreads-IDC-factorization ${threadFactorize} --sendOutputFFT true --enable-CCDB-output true --enablePadStatusMap true ${TPC_WRITING_PAD_STATUS_MAP} --use-precise-timestamp true $IDC_DELTA" "TPCIDCGroupParam.groupPadsSectorEdges=32211" add_W o2-tpc-idc-ft-aggregator "--rangeIDC 200 --inputLanes ${lanesFactorize} --nFourierCoeff 40 --nthreads 8" fi - if [[ $CALIB_TPC_CMV == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then + if [[ $CALIB_TPC_CMV == 1 ]] && [[ $AGGREGATOR_TASKS == TPC_IDCBOTH_SAC || $AGGREGATOR_TASKS == ALL ]]; then if [[ -z ${O2_TPC_CMV_COMPRESSION:-} ]]; then O2_TPC_CMV_DYNAMIC_PRECISION_MEAN="--cmv-zero-threshold 1.0 --cmv-dynamic-precision-mean 1.0--cmv-dynamic-precision-sigma 8.0 --use-compression-huffman"; fi if [[ -z ${O2_TPC_CMV_TIMEFRAMES:-} ]]; then O2_TPC_CMV_TIMEFRAMES="2400"; fi add_W o2-tpc-cmv-distribute "--crus ${crus} --lanes 4 --output-lanes ${lanesCMVaggregate} --n-TFs-buffer ${nBuffer_cmv} --timeframes ${O2_TPC_CMV_TIMEFRAMES} --send-precise-timestamp " From a2bb660d824b2f0ce1719b2b0271842ca40353a4 Mon Sep 17 00:00:00 2001 From: Robert Muenzer Date: Fri, 24 Apr 2026 18:10:34 +0200 Subject: [PATCH 7/7] Change Parameter name --- prodtests/full-system-test/aggregator-workflow.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prodtests/full-system-test/aggregator-workflow.sh b/prodtests/full-system-test/aggregator-workflow.sh index 4dc913366c329..e7f390fe3b7bd 100755 --- a/prodtests/full-system-test/aggregator-workflow.sh +++ b/prodtests/full-system-test/aggregator-workflow.sh @@ -308,7 +308,7 @@ nTFs=$((1000 * 128 / ${NHBPERTF})) nTFs_SAC=$((10000 * 128 / ${NHBPERTF})) nBuffer=$((100 * 128 / ${NHBPERTF})) nBuffer_cmv=$((300 * 128 / ${NHBPERTF})) -lanesCMVaggregate=${O2_TPC_IDC_FACTORIZE_NLANES:-2} +lanesCMVaggregate=${O2_TPC_CMV_AGGREGATE_NLANES:-2} IDC_DELTA="--disable-IDCDelta true" # off by default # deltas are on by default; you need to request explicitly to switch them off; if [[ "${DISABLE_IDC_DELTA:-}" == "1" ]]; then IDC_DELTA=""; fi