-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
JetCorrector migration in DQM/Physics #39847
Conversation
FYI @makortel @Dr15Jones |
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-39847/32726
|
please test |
A new Pull Request was created by @wddgit (W. David Dagenhart) for master. It involves the following packages:
@emanueleusai, @ahmad3213, @jfernan2, @syuvivida, @pmandrik, @micsucmed, @rvenditti can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-7fb13a/28500/summary.html Comparison SummarySummary:
|
+1 |
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, @rappoccio (and backports should be raised in the release meeting by the corresponding L2) |
@emanueleusai rather that simply signing this PR, could you please review and answer the several questions to @cms-sw/dqm-l2 that were posed by @wddgit in the PR description? |
hold |
Pull request has been put on hold by @perrotta |
New info related to this: The PR that deletes the deprecated header file (JetCorrector.h) was submitted, #39953. I tested it on top of this PR (and 3 other similar ones), all PR tests pass. Further, I ran runTheMatrix.py (the full version with all 1000+ tests) and that passes. It successfully compiles and builds. The only high priority question that I see that someone should answer immediately is whether the pre-existing bug causes some critical problem that must be fixed right away. Since it is DQM and not reconstruction, my guess is that the answer is no. It seems like at worst we would be creating tuples or histograms without jet corrections to be used only for monitoring. We can create an issue, remember it, and when an expert is available revisit this and investigate carefully. This and possibly other DQM code that is unused could be deleted later, when it is convenient. I am willing to modify the PR and approach it in a different way. Let me know if you want this. Two options I can think of:
|
@wddgit No, to the best of my knowledge, it does not break anything essential. We are running a survey of all POG/PAG-related DQM modules and check which one are actually still being looked at. In particular we strongly suspect the top-related modules object of this PR are run in our Physics DQM sequence, but are not actually used by anybody. Please allow us a few more days to verify with the interested parties (TOP group) that these modules are not used so we can delete them altogether. |
Any news on this yet? A week ago there were 4 PRs left under review that remove dependence on the old JetCorrector class. Two were merged. Only this one and one other are left now. We are getting close. |
@wddgit we are checking if the sequences are used for RelVal, we should have an answer soon. |
Any news yet? I am eagerly waiting on this PR to be able to delete the old JetCorrector code (PR #39953). |
Any news yet? |
The module is actually run in the Physics sequence in DQM Offline and RelVal, so we cannot remove it or make it throw an exception every time. Being part of the relval DQM and not seeing any differences in the DQM bin-to-bin I believe the module runs OK. The overarching question, which should not hold this PR, is whether the module is still needed and somebody is actually looking at the plots in Physics/TOP. This is something we are investigating and will take a little longer to sort out. So we can delete these modules in a later PR if it turns out they are not needed anymore. My vote goes for merging as it is and perhaps open an issue to investigate whether the module is still needed. |
@emanueleusai That sounds good to me. |
@perrotta I think we arrived at the point where we are waiting for you to remove the hold (since you placed that hold). @emanueleusai commented 3 days ago and those comments resolved the remaining issues, unless there is something I am missing. Maybe it is worth refreshing the tests. I will start them now. |
please test |
unhold |
This pull request is fully signed and it will be integrated in one of the next master IBs after it passes the integration tests. This pull request will now be reviewed by the release team before it's merged. @perrotta, @dpiparo, @rappoccio (and backports should be raised in the release meeting by the corresponding L2) |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-7fb13a/29405/summary.html Comparison SummarySummary:
|
+1 |
PR description:
This is part of the migration from getting the deprecated ::JetCorrector class from the EventSetup to getting the new reco::JetCorrector from the Event. This migration has been in progress since 2014 and is nearly complete. There are only a few cases left that need migrating. We want to finish this soon and delete the deprecated header file and related code. This is related to the consumes migration and will improve multi-threading performance.
This PR handles the remaining cases in the package DQM/Physics. I need some help with this from DQM if possible.
First question. Is this code still used? If not, I would rather delete it entirely than continue maintaining dead code.
The existing code has what appears to be a bug. See for example, https://cmssdt.cern.ch/dxr/CMSSW/source/DQM/Physics/src/SingleTopTChannelLeptonDQM.cc#511
The following conditional always evaluates to false.
So the code inside that conditional that uses the deprecated JetCorrector class is never actually executed. From the history, it appears this is not intentional. If it was intentional, I could just delete the related code fragments, not modify the behavior, and complete the migration. If you want this, please let me know.
In the PR, I have migrated the C++ code to use the new interface in reco::JetCorrector. I need help, because I do not know how to test this code. I also do not know how to verify that the configurations are correct and reading the correct JetCorrector objects. Is there a DQM expert who could help with this? Which tests should I run? I am willing to do a little more work on this, but need some help and/or direction.
There are no unit tests. I've run the limited runTheMatrix.py tests, but I do not know if they use this code or not. If I know what tests to run, then I will try to run them. There may be implications for changing histograms and needing to update comparison reference histograms and DQM experts would need to handle that.
I am a Core expert, not a DQM expert so help from DQM on this migration would be appreciated.
Note the old JetCorrectors for the EventSetup are no longer supported. I'm not sure that they would run without exceptions even if the existing bug was fixed.
PR validation:
It compiles and builds. There are no unit tests. Limited runTheMatrix tests pass, but I do not know if those execute this code.