-
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
Select the unpacker to be run (between SCAL and MetaData) via Era modifier #27676
Conversation
…aDataDigis) via Era modifier
The code-checks are being triggered in jenkins. |
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-27676/11262
|
A new Pull Request was created by @arossi83 (Alessandro Rossi) for master. It involves the following packages: Configuration/Eras @cmsbuild, @franzoni, @fabiocos, @davidlange6 can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
i.e. This changes make possible to easily switch between OnlineMetaData and LumiScalers like proposed on PR #27677 for TrackingDQM |
@fioriNTU, #27677 is very-DQM specific, while this one is more concerning the "general" approach and needs to be agreed upon by RECO and DAQ (as we discussed during the last (RECO/AT meeting). |
please test |
The tests are being triggered in jenkins. |
@fabiocos we proposed the solution implemented in this PR that was not met with any negative feedback from the audience, though if there is a better / preferred way, of course a different strategy can be used. It would be important though that it is a generally agreed upon solution (hence the request to discuss at the RECO/AT meeting) as it has consequences on how the migration is carried out from several subsystems. |
Let me repeat/rephrase my comment #27677 (comment) that for the framework it is more natural (and thus more performant) to customize what is being consumed rather than what is being produced (including a per-event check of what is available in the event), because the (unscheduled) execution is driven by the consumes dependencies. (sorry for not being able to attend the meeting) |
-1 Tested at: f1ccf28 You can see the results of the tests here: I found follow errors while testing this PR Failed tests: UnitTests
I found errors in the following unit tests: ---> test TestConfigDP had ERRORS |
Comparison job queued. |
Comparison is ready @slava77 comparisons for the following workflows were not done due to missing matrix map:
Comparison Summary:
|
The tests are being triggered in jenkins. |
Comparison job queued. |
Run2_2018 = cms.ModifierChain(Run2_2017.copyAndExclude([run2_HEPlan1_2017, run2_muon_2017, run2_L1prefiring, run2_HLTconditions_2017, run2_egamma_2017, ctpps_2017]), | ||
run2_CSC_2018, run2_HCAL_2018, run2_HB_2018, run2_HE_2018,run2_DT_2018, run2_SiPixel_2018, | ||
run2_HLTconditions_2018, run2_muon_2018, run2_egamma_2018, ctpps_2018) | ||
Run2_2018 = cms.ModifierChain(Run2_2017.copyAndExclude([run2_HEPlan1_2017, run2_muon_2017, run2_L1prefiring, run2_HLTconditions_2017, run2_egamma_2017, ctpps_2017]), run2_CSC_2018, run2_HCAL_2018, run2_HB_2018, run2_HE_2018,run2_DT_2018, run2_SiPixel_2018, run2_HLTconditions_2018, run2_muon_2018, run2_egamma_2018, ctpps_2018, run2_onlineMetaData_2018) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please keep the line readable
I do not particularly like the strategy of letting the consumer code to pick one of the available data collections in the stream. This is OK in some exceptional cases. In most cases we know at the configuration stage what needs to be consumed. |
Comparison is ready Comparison Summary:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@arossi83 please find a few comments below, I think several comments suggest a possibly different approach than the one chosen here
Run2_2018 = cms.ModifierChain(Run2_2017.copyAndExclude([run2_HEPlan1_2017, run2_muon_2017, run2_L1prefiring, run2_HLTconditions_2017, run2_egamma_2017, ctpps_2017]), | ||
run2_CSC_2018, run2_HCAL_2018, run2_HB_2018, run2_HE_2018,run2_DT_2018, run2_SiPixel_2018, | ||
run2_HLTconditions_2018, run2_muon_2018, run2_egamma_2018, ctpps_2018) | ||
Run2_2018 = cms.ModifierChain(Run2_2017.copyAndExclude([run2_HEPlan1_2017, run2_muon_2017, run2_L1prefiring, run2_HLTconditions_2017, run2_egamma_2017, ctpps_2017]), run2_CSC_2018, run2_HCAL_2018, run2_HB_2018, run2_HE_2018,run2_DT_2018, run2_SiPixel_2018, run2_HLTconditions_2018, run2_muon_2018, run2_egamma_2018, ctpps_2018, run2_onlineMetaData_2018) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@arossi83 please split the statement among multiple lines as previously done
@@ -81,6 +80,12 @@ | |||
muonRPCDigis.InputLabel = 'rawDataCollector' | |||
castorDigis.InputLabel = 'rawDataCollector' | |||
|
|||
#Add OnlineMetaData only from Run2_2018 | |||
from Configuration.Eras.Modifier_run2_onlineMetaData_2018_cff import run2_onlineMetaData_2018 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
summarizing the comments in this thread and during ORP meetings: the use case for which this development is thought, i.e. #27677, seems to be better served by customizing the consumer to use one or the other input, than the producer sequence as suggested here.
An approach similar to that suggested here is in #27638, but to me that is a quite limited use case for a standalone online application, while for a general use in production workflows the suggestion by @makortel and @slava77 make more sense.
I suggest to review the proposal along these lines.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let me add that if the onlineMetaDataDigis
producer doesn't work for data/MC <= 2017, then, I think, it might be useful to add it to the Task with a Modifier so that the producer is available only in scenarios where it makes sense. Does scalersRawToDigi
work for data/MC >= 2018?
(but regardless of that I still think that it would be better for the client side (as well) to customize the client configuration with a Modifier to consume only the needed product)
hold |
Pull request has been put on hold by @fabiocos |
@arossi83 is there any plan to review this proposal along the lines of #27676 (review) ? |
@fabiocos yes, there is a plan. I'm just back from vacation and I will work on this |
@arossi83 any news? |
@arossi83 is there a plan to update this PR? |
Hi @fabiocos, sorry I didn't have so much time to work on this. In any case since to solutions suggested implies a change on consumer side instead that on producer I suggest to close this PR. Any other action will affect completely different pieces of code. @mmusich do you agree? |
PR description:
Actually both unpacker (for Scalers and MetaData) are inserted in the RawToDigi sequence. With the changes proposed here the OnlineMetaData unpacker is inserted only starting from Era Run2_2018 (when these data start to be available). After these changes all the MetaData/SCAL consumers can simply select the available Handle exploiting isValid method in order to preserve backward compatibility of the code.
(with the same approach Scalers unpacker could be removed starting from Run3, if needed)
PR validation:
Manually tested on a run from 2017(no softFED1022) and one from 2018(with softFED1022).
2017
cmsDriver.py step1 -s RAW2DIGI,L1Reco,RECO,DQM -n 100 --eventcontent DQM --datatier DQMIO --conditions 110X_dataRun2_v1 --filein /store/data/Run2018D/ZeroBias/RAW/v1/000/323/997/00000/DDE05469-39F3-0647-BC31-AA8247C0B6C1.root --data --no_exec --python_filename=runFirst2017.py --era Run2_2017
cmsRun runFirst2017.py
2018
cmsDriver.py step1 -s RAW2DIGI,L1Reco,RECO,DQM -n 100 --eventcontent DQM --datatier DQMIO --conditions 110X_dataRun2_v1 --filein /store/data/Run2018D/ZeroBias/RAW/v1/000/323/997/00000/DDE05469-39F3-0647-BC31-AA8247C0B6C1.root --data --no_exec --python_filename=runFirst2018.py --era Run2_2018
cmsRun runFirst2018.py
if this PR is a backport please specify the original PR:
is not a backport