Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implements LLP displaced jet trigger in uGT emulator for CMSSW 12 3 x #36858

Merged
merged 5 commits into from Feb 15, 2022

Conversation

cavana
Copy link
Contributor

@cavana cavana commented Feb 1, 2022

PR description:

This PR implements the long-lived particle (LLP) displaced (DISP) jet trigger in the uGT emulator. There are no changes to the output. This PR does not depend on any other PRs, but it does rely on the external UTM library 0.10, which is already included in the CMSSW_12_3_0_pre3 release and the CMSSW_12_3_X master.

PR validation:

This PR was validated in the following ways:
(1) all code changes were verified to successfully compile with the CMSSW_12_3_X master
(2) all code changes successfully passed "scram build code-format" checks
(2) test vectors were produced (with the code changes to the emulator) and compared with the uGT firmware. Perfect agreement was observed between the emulator and the firmware.
(3) the runTheMatrix workflow successfully passed all tests.

if this PR is a backport please specify the original PR and why you need to backport that PR:

This PR is not a backport.

Before submitting your pull requests, make sure you followed this checklist:

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 1, 2022

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-36858/28099

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 1, 2022

A new Pull Request was created by @cavana (Richard Cavanaugh) for master.

It involves the following packages:

  • L1Trigger/L1TGlobal (l1)

@epalencia, @cmsbuild, @cecilecaillol, @rekovic can you please review it and eventually sign? Thanks.
@Martin-Grunewald, @missirol this is something you requested to watch as well.
@perrotta, @dpiparo, @qliphy you are the release manager for this.

cms-bot commands are listed here

@cecilecaillol
Copy link
Contributor

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 2, 2022

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-56b28c/22137/summary.html
COMMIT: 82c3bad
CMSSW: CMSSW_12_3_X_2022-02-01-2300/slc7_amd64_gcc10
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/36858/22137/install.sh to create a dev area with all the needed externals and cmssw changes.

CMS StaticAnalyzer warnings: There are 1 inherits from legacy modules warnings. See https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-56b28c/22137/llvm-analysis/legacy-mod-sa.txt for details.

Comparison Summary

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 3 differences found in the comparisons
  • DQMHistoTests: Total files compared: 43
  • DQMHistoTests: Total histograms compared: 3449612
  • DQMHistoTests: Total failures: 1467
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3448123
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 42 files compared)
  • Checked 181 log files, 42 edm output root files, 43 DQM output files
  • TriggerResults: found differences in 6 / 42 workflows

@cecilecaillol
Copy link
Contributor

+l1

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 2, 2022

This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @perrotta, @dpiparo, @qliphy (and backports should be raised in the release meeting by the corresponding L2)

// note that this check is only valid when hwQual contains just the single LLP DISP bit, which is consistent
// with the uGT firmware expectations. If hwQual is later defined to contain more quality bits, then
// the below sanity check will have to be changed to include the extra quality bits.
if (cand.hwQual() > 1) {
Copy link
Contributor

@perrotta perrotta Feb 3, 2022

Choose a reason for hiding this comment

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

Were is this hwQual for the L1Candidate set?
Wouldn't it be safer and better portable to check the explicit LLP DISP bit instead?

@cavana
Copy link
Contributor Author

cavana commented Feb 3, 2022 via email

@perrotta
Copy link
Contributor

perrotta commented Feb 3, 2022

Thank you @cavana for the clear explanation
Then, wouldn't it be more appropiate a LogError there, instead of LogDebug, to warn future developers who may not dare enabling the LogDebug?

@cavana
Copy link
Contributor Author

cavana commented Feb 4, 2022 via email

@cavana
Copy link
Contributor Author

cavana commented Feb 9, 2022

Thank you @perrotta and my apologies for causing extra work for this PR. I just consulted with the Calo Trigger emulator people and we agreed that the "sanity" check for hwQual() should be for 3 bits, instead of just the single LSB bit (as I originally coded). I have committed that change, which also reverts back to LogDebug. I very much appreciate your extra pair of eyes; your review was important in clarifying better the interface between the Calo Trigger emulator and the Global Trigger emulator.

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 9, 2022

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-36858/28229

  • This PR adds an extra 44KB to repository

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 9, 2022

Pull request #36858 was updated. @epalencia, @cmsbuild, @cecilecaillol, @rekovic can you please check and sign again.

@perrotta
Copy link
Contributor

perrotta commented Feb 9, 2022

Thank you @perrotta and my apologies for causing extra work for this PR. I just consulted with the Calo Trigger emulator people and we agreed that the "sanity" check for hwQual() should be for 3 bits, instead of just the single LSB bit (as I originally coded). I have committed that change, which also reverts back to LogDebug. I very much appreciate your extra pair of eyes; your review was important in clarifying better the interface between the Calo Trigger emulator and the Global Trigger emulator.

Thank you @cavana

About using LogDebug or LogError, it really depends on the purpose of that message:

  • If it reports about a pathological situation that should not happen, and should be notified and (possibly) cured if encountered, then a LogError is due
  • (If that pathological situation does not allow to proceed, then an exception would be even better, so that people is forced to fix it as soon as it shows up)
  • If it reports about a possible additional info that you decide to switch on in case you see problems here or somewhere else, then a LogDebug is in order

You know the details of your code, then you must judge which one has to be preferred. Please notice that would you had left the LogDebug as it was at the beginning you would have never noticed that hwQual was outside of the chosen range, and therefore it would have silently returned at line 534: does it correspond to your purposes?

@cavana
Copy link
Contributor Author

cavana commented Feb 9, 2022

@perrotta Indeed, I currently prefer to leave it as LogDebug, as that is historically consistent with the rest of the legacy uGT emulator code. If, in the future, the uGT group decides it should be elevated to LogError, I would like to consistently do that for all other bit-wise "sanity checks" in the emulator code. In which case, it would be appropriate to have a separate PR for that.

@cecilecaillol
Copy link
Contributor

please test

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-56b28c/22325/summary.html
COMMIT: 20414b1
CMSSW: CMSSW_12_3_X_2022-02-09-2300/slc7_amd64_gcc10
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/36858/22325/install.sh to create a dev area with all the needed externals and cmssw changes.

CMS StaticAnalyzer warnings: There are 1 inherits from legacy modules warnings. See https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-56b28c/22325/llvm-analysis/legacy-mod-sa.txt for details.

Comparison Summary

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 4 differences found in the comparisons
  • DQMHistoTests: Total files compared: 46
  • DQMHistoTests: Total histograms compared: 3764420
  • DQMHistoTests: Total failures: 8
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3764390
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 45 files compared)
  • Checked 193 log files, 42 edm output root files, 46 DQM output files
  • TriggerResults: no differences found

@cecilecaillol
Copy link
Contributor

+l1

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @perrotta, @dpiparo, @qliphy (and backports should be raised in the release meeting by the corresponding L2)

@perrotta
Copy link
Contributor

+1

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.

None yet

4 participants