Skip to content

L1S(Nano): updates for 2026 data-taking (CaloTowers, Scenario)#50510

Merged
cmsbuild merged 8 commits intocms-sw:masterfrom
missirol:devel_l1sNanoCaloTowersFor2026_v2
Mar 26, 2026
Merged

L1S(Nano): updates for 2026 data-taking (CaloTowers, Scenario)#50510
cmsbuild merged 8 commits intocms-sw:masterfrom
missirol:devel_l1sNanoCaloTowersFor2026_v2

Conversation

@missirol
Copy link
Contributor

@missirol missirol commented Mar 24, 2026

PR description:

This PR implements several updates to the NanoAOD flavours for L1-Scouting data (introduced in #48163) for 2026 data-taking.

  • Addition of CaloTowers for the Run-3 2026 era (via the addition of a dedicated process modifier); this is based on work by @RoccoA97.
  • Addition of wfs to relvals_nano.py to test the L1-Scouting NanoAOD flavours for the Run-3 2025 and 2026 eras.
  • A small bugfix to the plugin SimpleOrbitFlatTableProducer for a case which is not currently used in any central workflows (see the commit message of the relevant commit for more info).
  • Fixed a bug in L1ScoutingEtSumOrbitFlatTableProducer affecting the content of two NanoAOD 'branches' (the EtSum pt/phi hardware values were mistakenly being filled with the pt/phi physical values).
  • Sync'd the branch names and types of the L1-Scouting NanoAOD flavour to the L1T-DPG NanoAOD flavour ("L1DPG").
  • Added a data-taking "Scenario" for 2026 L1-Scouting in order to produce the L1-Scouting NanoAOD flavour at T0, similar to what is done since 2024 for HLT-Scouting.
  • Added a parameter isL1Scouting to the mergeProcess function; the latter function is used by T0/WMCore to build the configuration for the "merge" step of the outputs of CMSSW jobs.

The latter update to the "merge" step is meant to support a feature specific to the L1-Scouting NanoAOD flavour, which is that the conversion from NanoAOD EDM files to "flat" NanoAOD ntuples needs to be done with the plugin OrbitNanoAODOutputModule (instead of NanoAODOutputModule) in order to convert orbit-based EDM tables to flat (BX-based) output branches (the terminology I used might be imprecise, but that's the idea). The corresponding update to WMCore is dmwm/WMCore#12485.

The original version of this PR was in #50374, it included only the first 3 points of the list above. It was not reviewed timely, and it ended up being replaced by this PR.

PR validation:

The L1ScoutingNano-related workflows pass (both the existing ones and the new ones).

runTheMatrix.py -w nano -l 2500.231,2500.2311,2500.3311,2500.3312,2500.4301,2500.4302

The unit test related to the new Scenario for L1-Scouting passed.

scram b runtests_TestConfigDP_14

The additional test in [*] runs as expected (compared to the matrix wfs, this one also tests the NANOEDMAOD event content, and the conversion from NANOEDMAOD to NANOAOD using the script RunMerge.py).

If this PR is a backport, please specify the original PR and why you need to backport that PR. If this PR will be backported, please specify to which release cycle the backport is meant for:

CMSSW_16_0_X

To be backported to 16_0_X in an attempt to run the NanoAOD step on L1-Scouting data at T0 during 2026 data-taking.

[*]

#!/bin/bash -e

jobLabel=tmp_cmsDriver

nanoFlavours=(
  L1Scout
  L1ScoutSelect
)

declare -A inputFiles=(
  ["L1Scout"]="/store/data/Run2026B/L1Scouting/L1SCOUT/v1/000/402/144/00000/af07ed8c-d45e-41ad-81c7-8c32478c40be.root"
  ["L1ScoutSelect"]="/store/data/Run2026B/L1ScoutingSelection/L1SCOUT/v1/000/402/144/00000/56a86b0d-c4a0-4ffc-84c5-158494ec8ecc.root"
)

maxEvents=10

for nanoFlavour in "${nanoFlavours[@]}"; do
  dataTier=NANOAOD
  outputFilePrefix="${jobLabel}"_"${nanoFlavour}"_"${dataTier}"
  echo "--------------------------------------------------------------------------"
  echo "${outputFilePrefix}"
  echo "--------------------------------------------------------------------------"
  cmsDriver.py none -n "${maxEvents}" \
    --process "${dataTier}" --eventcontent "${dataTier}" --datatier "${dataTier}" \
    --era Run3_2026 --data --conditions auto:run3_data_prompt \
    --filein "${inputFiles[${nanoFlavour}]}" \
    --python_filename "${outputFilePrefix}".py \
    --fileout "${outputFilePrefix}".root \
    -s NANO:@"${nanoFlavour}"
  edmConfigDump --prune "${outputFilePrefix}".py > "${outputFilePrefix}"_dump.py
  edmFileUtil "${outputFilePrefix}".root

  dataTier=NANOEDMAOD
  outputFilePrefix="${jobLabel}"_"${nanoFlavour}"_"${dataTier}"
  echo "--------------------------------------------------------------------------"
  echo "${outputFilePrefix}"
  echo "--------------------------------------------------------------------------"
  cmsDriver.py none -n "${maxEvents}" \
    --process "${dataTier}" --eventcontent "${dataTier}" --datatier "${dataTier}" \
    --era Run3_2026 --data --conditions auto:run3_data_prompt \
    --filein "${inputFiles[${nanoFlavour}]}" \
    --python_filename "${outputFilePrefix}".py \
    --fileout "${outputFilePrefix}".root \
    -s NANO:@"${nanoFlavour}"
  edmConfigDump --prune "${outputFilePrefix}".py > "${outputFilePrefix}"_dump.py
  edmFileUtil "${outputFilePrefix}".root
  edmDumpEventContent "${outputFilePrefix}".root | tee "${outputFilePrefix}".txt

  # Conversion from NANOEDMAOD to NANOAOD with a hand-made config
cat <<@EOF >> "${outputFilePrefix}"_flattened1.py
import FWCore.ParameterSet.Config as cms

process = cms.Process("NANOAOD")

process.source = cms.Source("PoolSource",
    fileNames = cms.untracked.vstring("file:${outputFilePrefix}.root")
)

process.outputModule = cms.OutputModule("OrbitNanoAODOutputModule",
    fileName = cms.untracked.string("file:${outputFilePrefix}_flattened1.root"),
    dataset = cms.untracked.PSet(
        dataTier = cms.untracked.string('NANOAOD')
    ),
    selectedBx = cms.InputTag(""),
    skipEmptyBXs = cms.bool(True)
)

from Configuration.EventContent.EventContent_cff import L1SCOUTNANOAODEventContent
process.outputModule.update_(L1SCOUTNANOAODEventContent)

process.outputEndPath = cms.EndPath(process.outputModule)
@EOF
  cmsRun "${outputFilePrefix}"_flattened1.py 2>&1 | tee "${outputFilePrefix}"_flattened1.log
  edmFileUtil "${outputFilePrefix}"_flattened1.root

  # Conversion from NANOEDMAOD to NANOAOD using RunMerge.py
  runMergeFile="${CMSSW_BASE}"/src/Configuration/DataProcessing/test/RunMerge.py
  if [ ! -f "${runMergeFile}" ]; then
    runMergeFile="${CMSSW_RELEASE_BASE}"/src/Configuration/DataProcessing/test/RunMerge.py
  fi

  python3 "${runMergeFile}" \
    --input-files=file:"${outputFilePrefix}".root \
    --output-file="${outputFilePrefix}"_flattened2.root \
    --mergeNANO --isL1Scouting

  mv RunMergeCfg.py "${outputFilePrefix}"_flattened2.py

  cmsRun "${outputFilePrefix}"_flattened2.py \
    2>&1 | tee "${outputFilePrefix}"_flattened2.log
  edmFileUtil "${outputFilePrefix}"_flattened2.root
done

rm -rf __pycache__

missirol and others added 7 commits March 24, 2026 11:26
…=True

This changes the initialisation of the vector "selbxOffsets",
which is used in case the parameter "skipNonExistingSrc" is set to True.
Without this change, that vector is empty, and this leads to a segmentation fault at
https://github.com/cms-sw/cmssw/blob/edd2f62bfb3fe43fdc5609ce38b82169e80251fb/DataFormats/NanoAOD/interface/OrbitFlatTable.h#L27
Updates to add CaloTowers' information to the output
of "L1ScoutingNano" for 2026 workflows.

This is done by adding a modifier named "run3_l1scouting_2026",
and including it in the Era "Run3_2026".

Various updates are made to custom_l1scoutingrun3_cff, mainly
 - using a dedicated Sequence (rather than overriding the regular NANO sequence), and
 - making the customisation of the relevant output module(s) more robust
   (covering both the NANOEDMAOD and NANOAOD data tiers, and
   not relying solely on the label of the output module).

Co-Authored-By: Rocco Ardino <rocco.ardino@cern.ch>
This change adds wfs to test on real data
the NANOAOD flavours "L1Scout" and "L1ScoutSelect"
for the Eras "Run3_2025" and "Run3_2026".
…a to EventContent_cff

The EventContents (incl. compression settings)
of Run-3 L1-Scouting data for the NANO(EDM)AOD data tiers
are now defined in a dedicated file [1], and the latter file is imported by [2],
following what is done for other EventContents used in "central production".

The implementation of the L1-Scouting NANOAOD flavours is updated accordingly
(removing explicit "keep/drop statements" from the relevant customisation functions).

[1] PhysicsTools/NanoAOD/python/L1SCOUTNanoAODEDMEventContent_cff.py
[2] Configuration/EventContent/python/EventContent_cff.py
This adds a scenario named "l1ScoutingEra_Run3_2026",
in order to produce "L1ScoutingNano" data sets at Tier-0 in 2026.

This closely resembles what has been done for HLT-Scouting since 2024, see for example
cms-sw#44970
This updates the "mergeProcess" function in Merge.py
in order to support the merging of NanoEDMAOD files for Run-3 L1-Scouting data.

Creating flat NanoAOD files from NANOEDMAOD files of Run-3 L1-Scouting data
requires using the plugin "OrbitNanoAODOutputModule" (instead of "NanoAODOutputModule").
"OrbitNanoAODOutputModule" converts orbit-based NanoAOD tables (EDM)
to event/BX-based "flat" NanoAOD branches.

See dmwm/WMCore#12485
for related updates to the WMCore package.
This updates the content of the NanoAOD flavour for L1-Scouting data
in order to use the same branch names and data types as those used
in the NanoAOD flavour used for the L1T-DPG studies ("L1DPG").
@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 24, 2026

cms-bot internal usage

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-50510/48677

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @missirol for master.

It involves the following packages:

  • Configuration/DataProcessing (operations)
  • Configuration/Eras (operations)
  • Configuration/EventContent (operations)
  • Configuration/PyReleaseValidation (pdmv)
  • L1TriggerScouting/Utilities (daq)
  • PhysicsTools/NanoAOD (xpog)

@AdrianoDee, @DickyChant, @antoniovagnerini, @battibass, @cmsbuild, @davidlange6, @emeschi, @fabiocos, @ftenchini, @ftorrresd, @mandrenguyen, @miquork, @smorovic can you please review it and eventually sign? Thanks.
@Martin-Grunewald, @Mmiglio, @fabiocos, @gpetruc, @makortel, @mmusich, @slomeo this is something you requested to watch as well.
@ftenchini, @mandrenguyen, @sextonkennedy you are the release manager for this.

cms-bot commands are listed here

@BenjaminRS
Copy link
Contributor

enable nano

@BenjaminRS
Copy link
Contributor

please test

@cmsbuild
Copy link
Contributor

+1

Size: This PR adds an extra 16KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-cfdf9e/52192/summary.html
COMMIT: 97ebc89
CMSSW: CMSSW_16_1_X_2026-03-24-1100/el8_amd64_gcc13
Additional Tests: NANO
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/50510/52192/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • No significant changes to the logs found
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 4 differences found in the comparisons
  • DQMHistoTests: Total files compared: 53
  • DQMHistoTests: Total histograms compared: 4185300
  • DQMHistoTests: Total failures: 56
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 4185224
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 52 files compared)
  • Checked 227 log files, 198 edm output root files, 53 DQM output files
  • TriggerResults: no differences found

Nano size comparison Summary:

  • Nano ERROR: Missing ref/2500.3311_L1ScoutingNANOdata150Xrun3-size.json
  • Nano ERROR: Missing ref/2500.3311_L1ScoutingNANOdata150Xrun3-size.json
  • Nano ERROR: Missing ref/2500.3312_L1ScoutingSelectionNANOdata150Xrun3-size.json
  • Nano ERROR: Missing ref/2500.3312_L1ScoutingSelectionNANOdata150Xrun3-size.json
  • Nano ERROR: Missing ref/2500.4301_L1ScoutingNANOdata160Xrun3-size.json
  • Nano ERROR: Missing ref/2500.4301_L1ScoutingNANOdata160Xrun3-size.json
  • Nano ERROR: Missing ref/2500.4302_L1ScoutingSelectionNANOdata160Xrun3-size.json
  • Nano ERROR: Missing ref/2500.4302_L1ScoutingSelectionNANOdata160Xrun3-size.json
workflow id kb/ev ref kb/ev diff kb/ev ev/s/thd ref ev/s/thd diff rate mem/thd ref mem/thd
NANOmc106Xul16v2 2500.0001 3.094 3.094 0.000 ( +0.0% ) 3.59 3.11 +15.3% 2.492 2.441
NANOmc106Xul16APVv2 2500.0002 3.048 3.048 0.000 ( +0.0% ) 3.53 2.85 +23.8% 2.510 2.453
NANOmc106Xul17v2 2500.0003 3.153 3.153 0.000 ( +0.0% ) 3.33 2.80 +18.7% 2.916 2.861
NANOmc106Xul18v2 2500.0004 3.105 3.105 0.000 ( +0.0% ) 3.41 2.87 +18.7% 2.911 2.853
NANOdata106Xul16v2 2500.0101 1.540 1.540 0.000 ( +0.0% ) 5.86 5.02 +16.7% 2.634 2.586
NANOdata106Xul17v2 2500.0102 1.926 1.926 0.000 ( +0.0% ) 3.98 3.44 +15.8% 2.856 2.766
NANOdata106Xul18v2 2500.0103 1.890 1.890 0.000 ( +0.0% ) 4.73 4.08 +15.9% 2.711 2.690
NANOmcUL16APVreMINI 2500.0201 0.022 0.022 0.000 ( +0.0% ) 1.85 1.48 +24.9% 2.506 2.518
NANOmcUL16reMINI 2500.0202 0.022 0.022 0.000 ( +0.0% ) 1.78 1.37 +30.2% 2.531 2.521
NANOmcUL17reMINI 2500.0203 0.022 0.022 0.000 ( +0.0% ) 1.55 1.29 +20.0% 2.661 2.679
NANOmcUL18reMINI 2500.0204 0.022 0.022 0.000 ( +0.0% ) 1.57 1.28 +23.2% 2.676 2.693
NANOdataUL16APVreMINI 2500.0301 0.035 0.035 0.000 ( +0.0% ) 1.55 1.25 +24.1% 2.566 2.565
NANOdataUL16reMINI 2500.0302 0.036 0.036 0.000 ( +0.0% ) 1.54 1.27 +20.9% 2.495 2.505
NANOdataUL17reMINI 2500.0303 0.037 0.037 -0.000 ( -0.1% ) 1.50 1.28 +17.1% 2.606 2.743
NANOdataUL18reMINI 2500.0304 0.036 0.036 0.000 ( +0.0% ) 1.50 1.28 +17.2% 2.592 2.588
NANOmcUL16APVMini2Mini 2500.0401 0.023 0.023 0.000 ( +0.0% ) 2.45 2.04 +20.2% 2.122 2.176
NANOmcUL16Mini2Mini 2500.0402 0.023 0.023 0.000 ( +0.0% ) 2.49 2.13 +16.8% 2.100 2.120
NANOmcUL17Mini2Mini 2500.0403 0.023 0.023 0.000 ( +0.0% ) 2.20 2.03 +8.4% 2.113 2.144
NANOmcUL18Mini2Mini 2500.0404 0.023 0.023 0.000 ( +0.0% ) 2.29 2.04 +12.3% 2.112 2.163
NANOdataUL16Mini2Mini 2500.0501 0.039 0.039 0.000 ( +0.0% ) 3.36 2.76 +21.5% 1.980 1.979
NANOdataUL17Mini2Mini 2500.0502 0.040 0.040 0.000 ( +0.0% ) 2.50 2.01 +24.5% 2.040 2.043
NANOdataUL18Mini2Mini 2500.0503 0.039 0.039 0.000 ( +0.0% ) 2.91 2.38 +22.2% 2.039 2.056
NANOmc130X 2500.1001 3.228 3.228 0.000 ( +0.0% ) 4.02 3.29 +22.0% 2.872 2.278
NANOdata130Xrun3 2500.1101 1.790 1.790 0.000 ( +0.0% ) 6.02 5.25 +14.5% 2.605 2.507
NANOmc23Mini2Mini 2500.1201 0.022 0.022 0.000 ( +0.0% ) 2.60 2.33 +11.7% 1.990 2.005
NANOdata23Mini2Mini 2500.1301 0.041 0.041 0.000 ( +0.0% ) 3.43 2.98 +15.0% 2.286 2.147
ScoutingNANOdata124Xrun3 2500.1501 0.772 0.772 0.000 ( +0.0% ) 32.16 26.53 +21.2% 1.456 1.384
ScoutingNANOmonitordata124Xrun3 2500.1502 0.862 0.862 0.000 ( +0.0% ) 13.16 11.38 +15.6% 1.384 1.120
ScoutingNANOdata130Xrun3 2500.1503 1.251 1.251 0.000 ( +0.0% ) 23.41 20.71 +13.0% 1.436 1.438
ScoutingNANOmonitordata130Xrun3 2500.1504 1.297 1.297 0.000 ( +0.0% ) 10.03 8.39 +19.6% 1.374 1.373
muPOGNANOmc140X 2500.2201 2.269 2.269 0.000 ( +0.0% ) 5.25 4.28 +22.5% 1.985 2.009
EGMNANOmc140X 2500.2202 3.859 3.859 0.000 ( +0.0% ) 3.71 3.35 +10.8% 2.317 2.310
BTVNANOmc140X 2500.2203 10.475 10.475 0.000 ( +0.0% ) 2.28 2.08 +9.3% 2.505 2.498
jmeNANOmc140X 2500.2204 6.639 6.639 0.000 ( +0.0% ) 1.05 0.92 +14.2% 2.377 2.404
lepTrackInfoNANOmc140X 2500.2206 3.553 3.553 0.000 ( +0.0% ) 3.55 3.33 +6.5% 2.309 2.307
ScoutingNANOmc140X 2500.2207 1.488 1.488 0.000 ( +0.0% ) 11.02 10.39 +6.1% 1.750 1.760
ScoutingNANOwithPromptmc140X 2500.2208 4.461 4.461 0.000 ( +0.0% ) 3.10 2.61 +19.1% 2.509 2.581
muPOGNANO140Xrun3 2500.2301 1.683 1.683 0.000 ( +0.0% ) 7.34 5.94 +23.5% 2.251 2.245
EGMNANOdata140Xrun3 2500.2302 2.623 2.623 0.000 ( +0.0% ) 5.44 4.61 +18.0% 2.255 2.568
BTVNANOdata140Xrun3 2500.2303 5.612 5.612 0.000 ( +0.0% ) 3.50 3.03 +15.7% 2.452 2.477
jmeNANOdata140Xrun3 2500.2304 3.976 3.976 0.000 ( +0.0% ) 1.41 1.18 +18.9% 2.309 2.306
lepTrackInfoNANOdata140Xrun3 2500.2306 2.413 2.413 0.000 ( +0.0% ) 5.53 4.71 +17.4% 2.252 2.245
ScoutingNANOdata140Xrun3 2500.2307 1.101 1.101 0.000 ( +0.0% ) 29.12 24.81 +17.4% 1.274 1.435
ScoutingNANOmonitordata140Xrun3 2500.2308 2.784 2.784 0.000 ( +0.0% ) 4.99 4.24 +17.6% 2.889 2.771
ScoutingNANOmonitorWithPromptdata140Xrun3 2500.2309 2.784 2.784 0.000 ( +0.0% ) 5.00 4.21 +18.8% 2.896 2.750
L1ScoutingSelectionNANOdata140Xrun3 2500.2311 0.081 0.081 -0.000 ( -0.2% ) 47.70 34.08 +39.9% 0.674 0.750
L1ScoutingNANOdata140Xrun3 2500.231 0.082 0.082 -0.001 ( -0.7% ) 4.04 3.30 +22.3% 0.814 0.811
l1DPGNANO140Xrun3 2500.2401 9.405 9.405 0.000 ( +0.0% ) 6.51 4.32 +50.9% 1.697 1.722
muDPGNANO140Xrun3 2500.2402 10.377 10.377 0.000 ( +0.0% ) 1.55 1.32 +17.4% 1.567 1.592
muDPGNANOBkg140Xrun3 2500.2403 6.401 6.401 0.000 ( +0.0% ) 15.12 13.52 +11.8% 1.153 1.154
hcalDPGNANO140Xrun3 2500.2404 486.015 486.015 0.000 ( +0.0% ) 1.14 1.01 +12.8% 1.572 1.550
hcalDPGCalibNANO140Xrun3 2500.2405 826.418 826.418 0.000 ( +0.0% ) 1.50 1.34 +11.8% 1.534 1.529
hcalDPGMCNANO140Xrun3 2500.2501 645.333 645.333 0.000 ( +0.0% ) 1.63 1.36 +19.5% 1.633 1.644
NANOmc2024reMINI 2500.2601 0.021 0.021 0.000 ( +0.0% ) 1.87 1.63 +15.2% 2.589 2.572
NANOdata2024reMINI 2500.2701 0.036 0.036 0.000 ( +0.0% ) 1.83 1.45 +25.8% 2.508 2.510
NANOmc150X 2500.3001 3.224 3.224 0.000 ( +0.0% ) 17.27 15.21 +13.5% 2.491 2.530
NANOdata150X 2500.3101 2.144 2.144 0.000 ( +0.0% ) 33.65 27.02 +24.5% 2.186 2.179
NANOdata150X 2500.3102 2.630 2.630 0.000 ( +0.0% ) 27.74 22.04 +25.9% 2.200 2.352
muPOGNANOmc150X 2500.3201 2.344 2.344 0.000 ( +0.0% ) 16.01 15.07 +6.2% 2.303 2.302
EGMNANOmc150X 2500.3202 4.118 4.118 0.000 ( +0.0% ) 14.51 13.20 +9.9% 2.413 2.405
BTVNANOmc150X 2500.3203 10.559 10.559 0.000 ( +0.0% ) 4.81 4.47 +7.6% 2.608 2.607
jmeNANOmc150X 2500.3204 6.460 6.460 0.000 ( +0.0% ) 1.34 1.11 +20.6% 2.589 2.621
jmeNANOrePuppimc150X 2500.3205 6.464 6.464 0.000 ( +0.0% ) 1.25 1.03 +21.0% 2.840 2.849
lepTrackInfoNANOmc150X 2500.3206 3.728 3.728 0.000 ( +0.0% ) 14.97 13.54 +10.6% 2.428 2.406
ScoutingNANOmc150X 2500.3207 1.563 1.563 0.000 ( +0.0% ) 19.69 15.65 +25.8% 2.236 2.215
ScoutingNANOwithPromptmc150X 2500.3208 4.781 4.781 0.000 ( +0.0% ) 10.47 8.82 +18.7% 2.684 2.730
BPHNANOmc150X 2500.3209 4.135 4.135 0.000 ( +0.0% ) 16.74 13.31 +25.8% 2.514 2.501
muPOGNANO150Xrun3 2500.3301 1.244 1.244 0.000 ( +0.0% ) 29.05 25.69 +13.1% 2.019 2.012
EGMNANOdata150Xrun3 2500.3302 2.985 2.985 0.000 ( +0.0% ) 25.97 23.69 +9.7% 2.099 2.105
BTVNANOdata150Xrun3 2500.3303 7.971 7.971 0.000 ( +0.0% ) 5.93 4.64 +27.7% 2.298 2.294
jmeNANOdata150Xrun3 2500.3304 4.349 4.349 0.000 ( +0.0% ) 1.63 1.29 +26.9% 2.263 2.272
jmeNANOrePuppidata150Xrun3 2500.3305 4.332 4.332 0.000 ( +0.0% ) 1.43 1.15 +24.9% 2.241 2.230
lepTrackInfoNANOdata150Xrun3 2500.3306 2.625 2.625 0.000 ( +0.0% ) 28.17 19.86 +41.8% 2.101 2.097
ScoutingNANOdata150Xrun3 2500.3307 1.738 1.738 0.000 ( +0.0% ) 31.82 26.23 +21.3% 1.463 1.443
ScoutingNANOmonitordata150Xrun3 2500.3308 1.400 1.400 0.000 ( +0.0% ) 27.30 20.71 +31.9% 2.076 2.057
ScoutingNANOmonitorWithPromptdata150Xrun3 2500.3309 2.602 2.602 0.000 ( +0.0% ) 17.93 14.51 +23.5% 2.430 2.427
BPHNANOdata150Xrun3 2500.331 2.632 2.632 0.000 ( +0.0% ) 32.30 18.52 +74.4% 2.216 2.213
TTbarMINIAOD10.6_UL18v2 2500.9001 1.814 1.814 0.000 ( +0.0% ) 34.83 21.02 +65.7% 1.717 1.713
TTbarMINIAOD14.0 2500.9002 1.662 1.662 0.000 ( +0.0% ) 34.05 20.98 +62.3% 1.350 1.336
DYToLL_M-50_13TeV_pythia8 2500.9101 14.992 14.992 0.000 ( +0.0% ) 7.72 5.04 +53.1% 1.026 1.024
DYToll01234Jets_5f_LO_MLM_Madgraph_LHE_13TeV 2500.9102 0.171 0.437 -0.266 ( -60.9% ) 3.17 1.61 +97.0% 0.811 0.812
TTbar_Pow_LHE_13TeV 2500.9103 0.110 0.110 0.000 ( +0.0% ) 2.40 1.98 +21.3% 0.812 0.816

NANO Comparison Summary

Summary:

  • You potentially removed 1572 lines from the logs
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 32
  • DQMHistoTests: Total histograms compared: 43020
  • DQMHistoTests: Total failures: 0
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 43020
  • DQMHistoTests: Total skipped: 0
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 31 files compared)
  • Checked 181 log files, 106 edm output root files, 32 DQM output files
  • TriggerResults: no differences found

@cmsbuild
Copy link
Contributor

-1

Size: This PR adds an extra 20KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-cfdf9e/52277/summary.html
COMMIT: 6d5ddc2
CMSSW: CMSSW_16_1_X_2026-03-25-2300/el8_amd64_gcc13
Additional Tests: NANO
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/50510/52277/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

Nano size comparison Summary:

  • Nano ERROR: Missing ref/2500.3311_L1ScoutingNANOdata150Xrun3-size.json
  • Nano ERROR: Missing ref/2500.3311_L1ScoutingNANOdata150Xrun3-size.json
  • Nano ERROR: Missing ref/2500.3312_L1ScoutingSelectionNANOdata150Xrun3-size.json
  • Nano ERROR: Missing ref/2500.3312_L1ScoutingSelectionNANOdata150Xrun3-size.json
  • Nano ERROR: Missing ref/2500.4301_L1ScoutingNANOdata160Xrun3-size.json
  • Nano ERROR: Missing ref/2500.4301_L1ScoutingNANOdata160Xrun3-size.json
  • Nano ERROR: Missing ref/2500.4302_L1ScoutingSelectionNANOdata160Xrun3-size.json
  • Nano ERROR: Missing ref/2500.4302_L1ScoutingSelectionNANOdata160Xrun3-size.json
workflow id kb/ev ref kb/ev diff kb/ev ev/s/thd ref ev/s/thd diff rate mem/thd ref mem/thd
NANOmc106Xul16v2 2500.0001 3.094 3.094 0.000 ( +0.0% ) 3.56 2.39 +49.1% 2.692 2.442
NANOmc106Xul16APVv2 2500.0002 3.048 3.048 0.000 ( +0.0% ) 3.59 2.35 +53.0% 2.658 2.422
NANOmc106Xul17v2 2500.0003 3.153 3.153 0.000 ( +0.0% ) 3.32 2.20 +51.2% 2.712 2.463
NANOmc106Xul18v2 2500.0004 3.105 3.105 0.000 ( +0.0% ) 3.34 2.26 +48.2% 2.709 2.453
NANOdata106Xul16v2 2500.0101 1.540 1.540 0.000 ( +0.0% ) 5.88 4.02 +46.4% 2.500 2.277
NANOdata106Xul17v2 2500.0102 1.926 1.926 0.000 ( +0.0% ) 3.94 2.67 +47.9% 2.559 2.291
NANOdata106Xul18v2 2500.0103 1.890 1.890 0.000 ( +0.0% ) 4.69 3.18 +47.5% 2.560 2.302
NANOmcUL16APVreMINI 2500.0201 0.022 0.022 0.000 ( +0.0% ) 1.73 1.11 +55.8% 2.687 2.546
NANOmcUL16reMINI 2500.0202 0.022 0.022 0.000 ( +0.0% ) 1.72 1.12 +53.0% 2.762 2.547
NANOmcUL17reMINI 2500.0203 0.022 0.022 0.000 ( +0.0% ) 1.61 1.16 +38.5% 3.065 2.649
NANOmcUL18reMINI 2500.0204 0.022 0.022 0.000 ( +0.0% ) 1.57 1.01 +56.3% 2.999 2.534
NANOdataUL16APVreMINI 2500.0301 0.035 0.035 0.000 ( +0.0% ) 1.54 1.01 +53.0% 2.846 2.465
NANOdataUL16reMINI 2500.0302 0.036 0.036 0.000 ( +0.0% ) 1.54 1.02 +50.5% 2.860 2.475
NANOdataUL17reMINI 2500.0303 0.037 0.037 0.000 ( +0.0% ) 1.49 0.99 +49.9% 2.855 2.502
NANOdataUL18reMINI 2500.0304 0.036 0.036 0.000 ( +0.0% ) 1.49 0.94 +57.9% 2.848 2.705
NANOmcUL16APVMini2Mini 2500.0401 0.023 0.023 0.000 ( +0.0% ) 2.53 1.62 +55.8% 2.241 2.205
NANOmcUL16Mini2Mini 2500.0402 0.023 0.023 0.000 ( +0.0% ) 2.46 1.59 +54.9% 2.271 2.099
NANOmcUL17Mini2Mini 2500.0403 0.023 0.023 0.000 ( +0.0% ) 2.35 1.48 +58.6% 2.283 2.125
NANOmcUL18Mini2Mini 2500.0404 0.023 0.023 0.000 ( +0.0% ) 2.38 1.57 +52.3% 2.284 2.121
NANOdataUL16Mini2Mini 2500.0501 0.039 0.039 0.000 ( +0.0% ) 3.46 2.08 +66.5% 2.125 1.937
NANOdataUL17Mini2Mini 2500.0502 0.040 0.040 0.000 ( +0.0% ) 2.59 1.71 +51.6% 2.200 2.000
NANOdataUL18Mini2Mini 2500.0503 0.039 0.039 0.000 ( +0.0% ) 3.05 1.91 +60.1% 2.188 1.808
NANOmc130X 2500.1001 3.228 3.228 0.000 ( +0.0% ) 3.92 2.54 +54.5% 2.538 2.317
NANOdata130Xrun3 2500.1101 1.790 1.790 0.000 ( +0.0% ) 6.05 3.99 +51.6% 2.786 2.550
NANOmc23Mini2Mini 2500.1201 0.022 0.022 0.000 ( +0.0% ) 2.76 2.01 +36.9% 2.162 1.993
NANOdata23Mini2Mini 2500.1301 0.041 0.041 -0.000 ( -0.2% ) 3.52 2.65 +32.7% 2.447 2.285
ScoutingNANOdata124Xrun3 2500.1501 0.772 0.772 0.000 ( +0.0% ) 30.47 23.91 +27.4% 1.522 1.312
ScoutingNANOmonitordata124Xrun3 2500.1502 0.862 0.862 0.000 ( +0.0% ) 12.80 9.34 +37.0% 1.412 1.335
ScoutingNANOdata130Xrun3 2500.1503 1.251 1.251 0.000 ( +0.0% ) 23.99 17.42 +37.7% 1.292 1.311
ScoutingNANOmonitordata130Xrun3 2500.1504 1.297 1.297 0.000 ( +0.0% ) 9.54 7.38 +29.2% 1.408 1.270
muPOGNANOmc140X 2500.2201 2.269 2.269 0.000 ( +0.0% ) 5.23 3.51 +49.1% 2.197 1.968
EGMNANOmc140X 2500.2202 3.859 3.859 0.000 ( +0.0% ) 3.84 2.44 +57.8% 2.433 2.311
BTVNANOmc140X 2500.2203 10.475 10.475 0.000 ( +0.0% ) 2.37 1.60 +48.3% 2.518 2.436
jmeNANOmc140X 2500.2204 6.639 6.639 0.000 ( +0.0% ) 1.07 0.69 +54.0% 2.653 2.400
lepTrackInfoNANOmc140X 2500.2206 3.553 3.553 0.000 ( +0.0% ) 3.87 2.39 +62.0% 2.519 2.302
ScoutingNANOmc140X 2500.2207 1.488 1.488 0.000 ( +0.0% ) 13.54 9.31 +45.4% 1.832 1.801
ScoutingNANOwithPromptmc140X 2500.2208 4.461 4.461 0.000 ( +0.0% ) 3.05 2.05 +48.6% 2.739 2.654
muPOGNANO140Xrun3 2500.2301 1.683 1.683 0.000 ( +0.0% ) 7.19 4.81 +49.5% 2.259 2.244
EGMNANOdata140Xrun3 2500.2302 2.623 2.623 0.000 ( +0.0% ) 5.45 3.49 +56.2% 2.746 2.574
BTVNANOdata140Xrun3 2500.2303 5.612 5.612 0.000 ( +0.0% ) 3.41 2.35 +45.1% 2.853 2.762
jmeNANOdata140Xrun3 2500.2304 3.976 3.976 0.000 ( +0.0% ) 1.34 0.92 +46.6% 2.663 2.619
lepTrackInfoNANOdata140Xrun3 2500.2306 2.413 2.413 0.000 ( +0.0% ) 5.39 3.61 +49.4% 2.764 2.569
ScoutingNANOdata140Xrun3 2500.2307 1.101 1.101 0.000 ( +0.0% ) 28.08 19.64 +43.0% 1.507 1.442
ScoutingNANOmonitordata140Xrun3 2500.2308 2.784 2.784 0.000 ( +0.0% ) 4.93 3.32 +48.6% 3.042 2.812
ScoutingNANOmonitorWithPromptdata140Xrun3 2500.2309 2.784 2.784 0.000 ( +0.0% ) 4.91 3.29 +49.5% 2.977 2.757
L1ScoutingSelectionNANOdata140Xrun3 2500.2311 0.081 0.081 -0.000 ( -0.2% ) 35.43 29.40 +20.5% 0.826 0.666
L1ScoutingNANOdata140Xrun3 2500.231 0.082 0.082 -0.001 ( -0.7% ) 3.94 2.55 +54.4% 0.865 0.815
l1DPGNANO140Xrun3 2500.2401 9.405 9.405 0.000 ( +0.0% ) 6.77 4.22 +60.5% 1.829 1.693
muDPGNANO140Xrun3 2500.2402 10.377 10.377 0.000 ( +0.0% ) 1.58 1.08 +47.0% 1.626 1.563
muDPGNANOBkg140Xrun3 2500.2403 6.401 6.401 0.000 ( +0.0% ) 15.38 10.04 +53.2% 1.224 1.185
hcalDPGNANO140Xrun3 2500.2404 486.015 486.015 0.000 ( +0.0% ) 1.10 0.75 +46.7% 1.657 1.542
hcalDPGCalibNANO140Xrun3 2500.2405 826.418 826.418 0.000 ( +0.0% ) 1.46 0.96 +52.1% 1.566 1.535
hcalDPGMCNANO140Xrun3 2500.2501 645.333 645.333 0.000 ( +0.0% ) 1.62 1.09 +49.4% 1.775 1.624
NANOmc2024reMINI 2500.2601 0.021 0.021 0.000 ( +0.0% ) 1.89 1.21 +56.1% 3.001 2.586
NANOdata2024reMINI 2500.2701 0.036 0.036 0.000 ( +0.0% ) 1.82 1.24 +46.5% 2.621 2.513
NANOmc150X 2500.3001 3.224 3.224 0.000 ( +0.0% ) 16.99 10.98 +54.7% 2.703 2.516
NANOdata150X 2500.3101 2.144 2.144 0.000 ( +0.0% ) 31.93 19.84 +61.0% 2.321 2.176
NANOdata150X 2500.3102 2.630 2.630 0.000 ( +0.0% ) 27.27 16.79 +62.5% 2.479 2.362
muPOGNANOmc150X 2500.3201 2.344 2.344 0.000 ( +0.0% ) 15.40 9.88 +55.9% 2.550 2.295
EGMNANOmc150X 2500.3202 4.118 4.118 0.000 ( +0.0% ) 13.70 8.88 +54.3% 2.691 2.407
BTVNANOmc150X 2500.3203 10.559 10.559 0.000 ( +0.0% ) 4.68 3.05 +53.3% 2.922 2.603
jmeNANOmc150X 2500.3204 6.460 6.460 0.000 ( +0.0% ) 1.31 0.86 +51.6% 2.828 1.994
jmeNANOrePuppimc150X 2500.3205 6.464 6.464 0.000 ( +0.0% ) 1.24 0.82 +51.8% 3.141 2.316
lepTrackInfoNANOmc150X 2500.3206 3.728 3.728 0.000 ( +0.0% ) 14.59 10.01 +45.8% 2.685 2.405
ScoutingNANOmc150X 2500.3207 1.563 1.563 0.000 ( +0.0% ) 19.68 13.91 +41.6% 2.419 2.225
ScoutingNANOwithPromptmc150X 2500.3208 4.781 4.781 0.000 ( +0.0% ) 10.35 7.63 +35.6% 2.853 2.692
BPHNANOmc150X 2500.3209 4.135 4.135 0.000 ( +0.0% ) 16.64 11.15 +49.2% 2.762 2.538
muPOGNANO150Xrun3 2500.3301 1.244 1.244 0.000 ( +0.0% ) 30.14 20.01 +50.6% 2.327 2.005
EGMNANOdata150Xrun3 2500.3302 2.985 2.985 0.000 ( +0.0% ) 26.41 14.82 +78.3% 2.439 2.091
BTVNANOdata150Xrun3 2500.3303 7.971 7.971 0.000 ( +0.0% ) 5.99 3.92 +52.8% 2.667 2.005
jmeNANOdata150Xrun3 2500.3304 4.349 4.349 0.000 ( +0.0% ) 1.63 1.08 +50.8% 2.597 2.303
jmeNANOrePuppidata150Xrun3 2500.3305 4.332 4.332 0.000 ( +0.0% ) 1.39 0.97 +44.1% 2.609 2.364
lepTrackInfoNANOdata150Xrun3 2500.3306 2.625 2.625 0.000 ( +0.0% ) 27.38 16.28 +68.2% 2.434 2.187
ScoutingNANOdata150Xrun3 2500.3307 1.738 1.738 0.000 ( +0.0% ) 31.14 21.64 +43.9% 1.631 1.467
ScoutingNANOmonitordata150Xrun3 2500.3308 1.400 1.400 0.000 ( +0.0% ) 26.43 18.25 +44.9% 2.305 2.070
ScoutingNANOmonitorWithPromptdata150Xrun3 2500.3309 2.602 2.602 0.000 ( +0.0% ) 17.43 12.05 +44.7% 2.673 2.544
BPHNANOdata150Xrun3 2500.331 2.632 2.632 0.000 ( +0.0% ) 32.23 20.92 +54.1% 2.269 2.212
TTbarMINIAOD10.6_UL18v2 2500.9001 1.814 1.814 0.000 ( +0.0% ) 34.47 21.22 +62.4% 1.829 1.708
TTbarMINIAOD14.0 2500.9002 1.662 1.662 0.000 ( +0.0% ) 33.61 20.01 +68.0% 1.421 1.331
DYToLL_M-50_13TeV_pythia8 2500.9101 14.992 14.992 0.000 ( +0.0% ) 7.87 4.52 +74.0% 1.076 1.020
DYToll01234Jets_5f_LO_MLM_Madgraph_LHE_13TeV 2500.9102 0.199 0.199 0.000 ( +0.0% ) 1.74 1.41 +23.9% 0.841 0.824
TTbar_Pow_LHE_13TeV 2500.9103 0.110 0.110 0.000 ( +0.0% ) 2.40 1.68 +42.8% 0.841 0.811

NANO Comparison Summary

Summary:

  • You potentially added 860 lines to the logs
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 32
  • DQMHistoTests: Total histograms compared: 43020
  • DQMHistoTests: Total failures: 0
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 43020
  • DQMHistoTests: Total skipped: 0
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 31 files compared)
  • Checked 181 log files, 106 edm output root files, 32 DQM output files
  • TriggerResults: no differences found

@missirol
Copy link
Contributor Author

missirol commented Mar 26, 2026

Mh, "DAS error" in wf 4.61 of the "matrix input" tests. I would say it's clearly unrelated to this PR. I don't know if it'd be worth it to restart the tests. Everything else in the outputs of the PR tests looks okay, as expected.

Edit : the corresponding tests of the 16_0_X backport (#50511 (comment)) passed without errors, suggesting that the issue with wf 4.61 here is unrelated.

@smorovic
Copy link
Contributor

+daq

@mandrenguyen
Copy link
Contributor

ignore tests-rejected with manual-override

@mandrenguyen
Copy link
Contributor

urgent
@cms-sw/xpog-l2 also the master version

@ftorrresd
Copy link
Contributor

Thanks for the PR. We (XPOG) have two comments:

1 - This PR is addressing 6 related but different businesses at the same time. This makes reviewing much harder. Maybe atomics are better for future PRs.

2 - Looks like the L1Scouting code is duplicating modules and functionalities around the NanoAOD infrastructure, which could be potentially hard to maintain in the future (as already mentioned at #48163 (comment) ). Maybe time has come to have further discussions on this, in order to understand the impact and refactor these duplications, if it makes sense.

Would you mind preparing a few slides to steer a conversation about it at the next XPOG meeting?

@ftorrresd
Copy link
Contributor

+1

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next master IBs (test failures were overridden). This pull request will now be reviewed by the release team before it's merged. @ftenchini, @sextonkennedy, @mandrenguyen (and backports should be raised in the release meeting by the corresponding L2)

@ftenchini
Copy link

+1

@cmsbuild cmsbuild merged commit 18014cb into cms-sw:master Mar 26, 2026
11 of 12 checks passed
@missirol missirol deleted the devel_l1sNanoCaloTowersFor2026_v2 branch March 26, 2026 16:08
@missirol
Copy link
Contributor Author

Hi @ftorrresd, thanks, some replies below.

1 - This PR is addressing 6 related but different businesses at the same time. This makes reviewing much harder. Maybe atomics are better for future PRs.

I'd agree that separating changes across multiple PRs is usually a good way to go, but then the review needs to be faster.

My attempt to factorise was to open #50374 (and its backport) 2 weeks ago, but that went basically un-reviewed by XPOG, so I decided to go for a single PR this time.

2 - Looks like the L1Scouting code is duplicating modules and functionalities around the NanoAOD infrastructure, which could be potentially hard to maintain in the future (as already mentioned at #48163 (comment) ). Maybe time has come to have further discussions on this, in order to understand the impact and refactor these duplications, if it makes sense.

Sure. This discussion is new to me, and I can't really comment on the specifics. Maybe it's useful to open an issue in CMSSW about this, and have XPOG and other sw experts define there..

  • the expected timeline to implement changes,
  • whether or not any of these changes would need to be backported to certain cycles,
  • whether or not these developments are only necessary for the RNTuple version,
  • what (if anything) should be implemented by XPOG experts rather than by L1-Scouting developers,
  • etc.

Would you mind preparing a few slides to steer a conversation about it at the next XPOG meeting?

Sure. When exactly ?

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants