Skip to content

Recipes for testing new HLT paths inclusions in the menu prior to pull requests

This section contains recipes for testing new paths inclusions and existing paths modifications in the HLT Phase 2 menu prior to making pull requests to cmssw.

Testing infrastructure

Starting from CMSSW_14_2_0_pre2 it is possible to test HLT path inclusions and/or modifications to the HLT Phase menu via the PRs cms-sw/cmssw#46110, cmssw-sw/cmssw#46148 and cms-sw/cmssw#46220.

The main command to use is hltPhase2UpgradeIntegrationTests, which is available in the path after having set the cmssw environment. This script:

  1. creates the configuration for the Phase 2 HLT menu from cmssw;
  2. for each of the N paths in the menu it creates a copy of the menu with only that one path in the schedule;
  3. it runs ten (configurable) GEN-SIM-DIGI-RAW TTbar event for the current Phase 2 default geometry;
  4. runs on those events first the full menu and then N jobs for the N single-path versions;
  5. finally it loops over the output N root files and compares for each one of the standalone path outputs the trigger results with the full menu using the hltDiff facility.

The script supports the following arguments:

1
2
3
4
5
6
7
--globaltag       : GlobalTag for the CMS conditions (required)
--geometry        : Geometry setting for the CMS process (required)
--events          : Number of events to process (default: 10)
--threads         : Number of threads to use (default: 1)
--parallelJobs    : Number of parallel cmsRun and hltDiff executions (default: 4) 
--restrictPathsTo : Restrict paths to be run to a user defined subset (e.g. "HLT_Ele*")
--procModifiers   : Optionally use one (or more) cmssw processModifier

Example usage:

1
hltPhase2UpgradeIntegrationTests --globaltag auto:phase2_realistic_T33 --geometry Extended2026D110 --events 10 --threads 4 

It is possible to use this options to test non-standard variants of the menu, e.g.:

1
hltPhase2UpgradeIntegrationTests --procModifiers alpaka 

will test the menu using the alpaka processModifier. Similarly can be done for other modifiers (e.g. ticl_v5, etc.) By default the test runs on 10 events, taking about 15 minutes on a typical lxplus node. In order to make it run faster, you can choose to restrict the tests to a subset of paths, for example you can run:

1
hltPhase2UpgradeIntegrationTests --restrictPathsTo  "HLT_Ele*" "HLT_Photon*"

Automatic tests in cmssw

Starting from the CMSSW_14_2_X release cycle it is possible to automatically run these tests in PRs. This was introduced in PR cms-sw/cms-bot#2354 and refined in cms-sw/cms-bot#2356.

cmssw L2 conveners (generally @cms-sw/hlt-l2) can issue on-demand automatic testing via the cms-bot command enable hlt_p2_integration (similarly to the timing option enable hlt_p2_timing).

Additionally the test is run by default in IBs (Integration Builds) and the results are be available IB by IB at the CMSSW IB dashborard in the "HLT" section (look for the file hltPhase2UpgradeIntegrationTests.log).