Skip to content

Conversation

@LukasEbeling
Copy link

@LukasEbeling LukasEbeling commented Oct 9, 2025

PR description
This PR adds the L1 emulator code for the topological trigger targeting the single-muon finale state of the hhbbww process.

  • Based on the AXOL1TL emulator code added in this PR
  • The model was trained (quantised training) on di-Higgs signal samples and minimal bias background samples of the summer 2022 data taking period.
  • The training repository (containing the qkeras model) is liked here
  • The model binaries are generated at runtime from the external cms-hls4ml TOPO repository. This draft PR contains the current hls model.
  • Run-3 Deployment of the topological trigger is targeted for early 2026
  • The lastest talk summarises the technical details of the latest model

PR validation
the final dnn score outputted by the cms-sw L1 emulator agrees well with the keras model training in a python environment. At relevant scores above 0.8, only deviations of the order two percent are expected:
image

@cmsbuild
Copy link
Contributor

cmsbuild commented Oct 9, 2025

cms-bot internal usage

@cmsbuild
Copy link
Contributor

cmsbuild commented Oct 9, 2025

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49119/46392

Code check has found code style and quality issues which could be resolved by applying following patch(s)

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49119/46432

@cmsbuild
Copy link
Contributor

Pull request #49119 was updated.

@LukasEbeling LukasEbeling changed the title topo added L1 emulator of topological trigger for cms-sw Oct 14, 2025
@artlbv
Copy link
Contributor

artlbv commented Oct 14, 2025

To be done by OffSW conveners: a cmsdist entry for TOPO like for AXO https://github.com/cms-sw/cmsdist/blob/IB/CMSSW_16_0_X/master/AXOL1TL.spec

@LukasEbeling LukasEbeling marked this pull request as ready for review October 14, 2025 12:35
@artlbv
Copy link
Contributor

artlbv commented Oct 14, 2025

somehow I don't see the usual bot message asking for the L2 review .. @BenjaminRS @quinnanm

@cmsbuild
Copy link
Contributor

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

It involves the following packages:

  • L1Trigger/L1TGlobal (l1)

@BenjaminRS, @cmsbuild, @quinnanm can you please review it and eventually sign? Thanks.
@Martin-Grunewald, @missirol, @mmusich 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

it seems to have just come through now - thanks

@quinnanm
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-790099/48740/summary.html
COMMIT: a420219
CMSSW: CMSSW_16_0_X_2025-10-20-1100/el8_amd64_gcc13
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/49119/48740/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • You potentially added 5 lines to the logs
  • Reco comparison results: 2 differences found in the comparisons
  • DQMHistoTests: Total files compared: 51
  • DQMHistoTests: Total histograms compared: 3939853
  • DQMHistoTests: Total failures: 62
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3939771
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 50 files compared)
  • Checked 218 log files, 188 edm output root files, 51 DQM output files
  • TriggerResults: no differences found

theCondition = std::make_unique<TOPOCondition>(itCond.second, this);
theCondition->setVerbosity(m_verbosity);

if (m_saveAXOScore and not m_axoScoreConditionName.empty()) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Is it right that this is using m_saveAXOScore and not m_axoScoreConditionName.empty()? should these be m_saveTOPOScore and not m_topoScoreConditionName.empty()

}

//setModelVersion - set the model version of the condition
void TOPOTemplate::setModelVersion(const std::string& modelversion) { m_modelVersion = modelversion; }
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm guessing you tested getting the model version from a custom xml file? can you describe those tests? and do you have a link to the cms-dist model release?

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.

5 participants