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
L1T EMTF fix for pT assignment configuration bug in 2016 and 2017 #29080
Conversation
Necessary for proper pT assignment in 2016 MC. Selects which pT assignment "engine" to use: L1Trigger/L1TMuonEndCap/src/TrackFinder.cc#L27 Use of incorrect engine can lead to catastrophic failure, e.g. all pT values set to 0.
In 2016 MC, false warnings being thrown by PtAssignment.cc. The address packing / unpacking check invoked only exists for PtAssignmentEngine2017.
The code-checks are being triggered in jenkins. |
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-29080/13965
Code check has found code style and quality issues which could be resolved by applying following patch(s)
|
The code-checks are being triggered in jenkins. |
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-29080/13967
|
A new Pull Request was created by @abrinke1 for master. It involves the following packages: L1Trigger/L1TMuonEndCap @cmsbuild, @rekovic, @benkrikler can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
please test |
The tests are being triggered in jenkins. |
@abrinke1 @rekovic
Thx. |
+1 |
Comparison job queued. |
Hi, Regarding the code backport, my concern is that we change the object definition which we don't do for production release except in newer versions of MiniAOD and NanoAOD that needs for production. Like what we propose to other groups, they can do backport on code which changes efficiency/performance for their studies, but it needs to be under customization. So, by default, you should get the same definition of objects. However, now it is more complicated because we are also talking about GT. So we can have situations where
Can we have, i.e. customization (or new era on top of 2017, 2018) that triggers both python setting, code and specific tag to replace one in GT? So, we don't need to worry in code and GT in the same time, and user always get what they should get. It's my quick idea, I don't know if this is possible. Maybe Alca can comment if we choose to go this way. Here is an example: --era Run2_2017, Run2_fixL1EmuLegacy May I propose we go for 2016 first as an urgent need, and rediscuss on 2017 and 2018 parts later? @silviodonato @abrinke1 @rekovic @eyigitba @davignon @BenjaminRS |
Hi @srimanob , @davignon , @BenjaminRS , all, I think there are a few misunderstandings I can clear up, and a few additional questions I have to understand Phat's concerns. I'm not familiar enough with the sequences you're talking about to know where problems from inconsistencies would arise, for example.
A note on these "Engines": a question of the following sort has come up a few times, but I'll quote Olivier: "What will happen in >=2021 when the engine changes again? The answer is, this will not be transparent, and will require code changes. But there is a good reason for this: the firmware for this future configuration (which would presumably include GEM, for example) does not yet exist, and the emulation for this future firmware also doesn't exist. So when we add this new functionality, we'll need to update the emulator. When we do this, the "default" Era will presumably go to "Run3_2021", and we'll need to add a new switch for "Run3_2018". But as long as we're using "Era" at all, I don't see a way around this: we can't very well have the default era be "PhaseII_2035" and have switches already for all the non-existent firmware/emulator versions in between. If one or more of you would like to chat over Skpe to sort this out more efficiently "in person" (virtually), I would be happy to accommodate: my Skype name is awbrinks. Best regards, |
Regarding "Can we have, i.e. customization (or new era on top of 2017, 2018) that triggers both python setting, code and specific tag to replace one in GT ..." I think I kind of understand what Phat is getting at. He's saying that (please correct me if I'm wrong), for MC, the "era" alone should be enough to fully specify the behavior of the EMTF emulator. And I think I agree with him. Given the era parameter, there is no ambiguity in the rest of the settings (for MC), users should get what they expect to get. However, that means we don't even need GT? But we still need to supply the correct "EventSetup"? In any case, I think this is meant for the long-term solution, it shouldn't delay this particular PR. Any suggestions for how to implement a proper long-term solution are very much welcome. Best regards, |
@abrinke1 @jiafulow Thanks to following up. Here is my idea, and clarification,
So all your updates tags do not need to go to GT, but in the CMSSW code and reload when the specific era is used. I propose this way because production starts, I would like to avoid to have a situation in future that
|
If I understood correctly, for this PR, we should only fix Run2_2016, but not Run2_2017? In the future, we should also fix Run2_2017 (and Run2_fixL1EmuLegacy), when the era parameter is specified. Would the fix be the same as these two lines (and same thing for Run2_fixL1EmuLegacy):
or do you have something different in mind? When you said production has already started, are you referring to a specific production? Or all the productions that have been made to date? What are the rules of fixing a bug in the future CMSSW releases (not just CMSSW_10_6_X, but also CMSSW_11_X)? |
Hi @jiafulow This PR should fix only what affects 2016, then backport can be done without any era modifier. When we agree on how to fix 2017, we bring Regarding the production, I mean that we already have 3B MC samples of Legacy 2017 + ~2B of Legacy 2018. Bugfix at this point needs to be considered carefully:
Thx. |
Hi @srimanob , Is the 2016 UL happening in a particular release? If so, I would prefer to port this PR into that release, and then comment-out the 2017 config lines, rather than commenting-out the 2017 lines in the "master" PR. But if you want us to just comment out the 2017 lines in this PR, I can do that as well. Best, |
Hi, CMSSW_10_6_X is the branch that PR should go for UL. We can leave this PR as it is for now but the PR subject should be changed, as it's mentioned for 2016 only. I propose to make a little cleaner but comment out 2017 for now, so this PR can backport will be exactly the same to handle 2016. Then they can be merged easily. You can have other PR for 2017 where backport will difference. This will be easier to manage, I think. |
Chatting with @srimanob , we would like to continue with this PR into the master branch, so that all future versions of CMSSW will have the Era bug-fixes for both 2016 and 2017. |
@benkrikler @rekovic do you have any objections? |
As long as PPD (@srimanob ) is fine with having different default behaviour with using Eras between 10_6 and 11_1, I am ok too. |
Hi, |
+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. @davidlange6, @silviodonato, @fabiocos (and backports should be raised in the release meeting by the corresponding L2) |
+1 |
Small fix in EMTF config file to enable configuration of pT assignment by global "Era". Fixes issue where all EMTF muons were being assigned pT = 0 in UL2016 RelVals.
Also suppress a spurious warning which is generated as a result of using the correct PtAssignmentEngine.
@davignon , @BenjaminRS , @rekovic , @jiafulow