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

Select the unpacker to be run (between SCAL and MetaData) via Era modifier #27676

Closed
wants to merge 1 commit into from

Conversation

arossi83
Copy link
Contributor

@arossi83 arossi83 commented Aug 2, 2019

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).

  1. 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

  2. 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

@cmsbuild
Copy link
Contributor

cmsbuild commented Aug 2, 2019

The code-checks are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

cmsbuild commented Aug 2, 2019

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-27676/11262

@cmsbuild
Copy link
Contributor

cmsbuild commented Aug 2, 2019

A new Pull Request was created by @arossi83 (Alessandro Rossi) for master.

It involves the following packages:

Configuration/Eras
Configuration/StandardSequences

@cmsbuild, @franzoni, @fabiocos, @davidlange6 can you please review it and eventually sign? Thanks.
@makortel, @felicepantaleo, @GiacomoSguazzoni, @rovere, @VinInn, @Martin-Grunewald, @dgulhan this is something you requested to watch as well.
@davidlange6, @slava77, @fabiocos you are the release manager for this.

cms-bot commands are listed here

@arossi83
Copy link
Contributor Author

arossi83 commented Aug 2, 2019

i.e. This changes make possible to easily switch between OnlineMetaData and LumiScalers like proposed on PR #27677 for TrackingDQM

@fioriNTU
Copy link
Contributor

fioriNTU commented Aug 2, 2019

@arossi83 why you didn't include this pr as a commit on #27677 ? Can you clarify?

@mmusich
Copy link
Contributor

mmusich commented Aug 2, 2019

@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).
#27677 can be tested meaningfully only after this one is merged. If we choose this approach and this PR is merged other PRs in the style of #27677 will follow.
An alternative approach it the one followed in this PR #27638 that doesn't require to change the raw2digi sequence.

@fabiocos
Copy link
Contributor

fabiocos commented Aug 5, 2019

@mmusich @perrotta @slava77 I did not attend that part of the meeting, what was the outcome of the discussion about the issue that this PR is addressing?

@fabiocos
Copy link
Contributor

fabiocos commented Aug 5, 2019

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Aug 5, 2019

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-run-pr-tests/1833/console Started: 2019/08/05 14:32

@mmusich
Copy link
Contributor

mmusich commented Aug 5, 2019

I did not attend that part of the meeting, what was the outcome of the discussion about the issue that this PR is addressing?

@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.
cc @mtosi

@makortel
Copy link
Contributor

makortel commented Aug 5, 2019

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)

@cmsbuild
Copy link
Contributor

cmsbuild commented Aug 5, 2019

-1

Tested at: f1ccf28

You can see the results of the tests here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-35450d/1833/summary.html

I found follow errors while testing this PR

Failed tests: UnitTests

  • Unit Tests:

I found errors in the following unit tests:

---> test TestConfigDP had ERRORS

@cmsbuild
Copy link
Contributor

cmsbuild commented Aug 5, 2019

Comparison job queued.

@cmsbuild
Copy link
Contributor

cmsbuild commented Aug 5, 2019

Comparison is ready
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-35450d/1833/summary.html

@slava77 comparisons for the following workflows were not done due to missing matrix map:

  • /build/cmsbld/jenkins/workspace/compare-root-files-short-matrix/results/JR-comparison/PR-35450d/11634.0_TTbar_14TeV+TTbar_14TeV_TuneCUETP8M1_2021_GenSimFull+DigiFull_2021+RecoFull_2021+HARVESTFull_2021+ALCAFull_2021

Comparison Summary:

  • No significant changes to the logs found
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 33
  • DQMHistoTests: Total histograms compared: 2715989
  • DQMHistoTests: Total failures: 1
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 2715659
  • DQMHistoTests: Total skipped: 329
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 32 files compared)
  • Checked 137 log files, 14 edm output root files, 33 DQM output files

@cmsbuild
Copy link
Contributor

cmsbuild commented Aug 8, 2019

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-run-pr-tests/1904/console Started: 2019/08/08 12:54

@cmsbuild
Copy link
Contributor

cmsbuild commented Aug 8, 2019

@cmsbuild
Copy link
Contributor

cmsbuild commented Aug 8, 2019

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)
Copy link
Contributor

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

@slava77
Copy link
Contributor

slava77 commented Aug 8, 2019

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.

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.

@cmsbuild
Copy link
Contributor

cmsbuild commented Aug 8, 2019

Comparison is ready
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-35450d/1904/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 33
  • DQMHistoTests: Total histograms compared: 2715989
  • DQMHistoTests: Total failures: 1
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 2715659
  • DQMHistoTests: Total skipped: 329
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 32 files compared)
  • Checked 137 log files, 14 edm output root files, 33 DQM output files

Copy link
Contributor

@fabiocos fabiocos left a 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)
Copy link
Contributor

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
Copy link
Contributor

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.

Copy link
Contributor

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)

@fabiocos
Copy link
Contributor

hold

@cmsbuild
Copy link
Contributor

Pull request has been put on hold by @fabiocos
They need to issue an unhold command to remove the hold state or L1 can unhold it for all

@fabiocos
Copy link
Contributor

@arossi83 is there any plan to review this proposal along the lines of #27676 (review) ?

@arossi83
Copy link
Contributor Author

arossi83 commented Sep 10, 2019

@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

@fabiocos
Copy link
Contributor

@arossi83 any news?

@fabiocos
Copy link
Contributor

fabiocos commented Oct 9, 2019

@arossi83 is there a plan to update this PR?

@arossi83
Copy link
Contributor Author

@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?

@fabiocos
Copy link
Contributor

@arossi83 @mmusich I will close this PR, waiting for a new proposal, or to reopen it in case a significant update is made

@fabiocos fabiocos closed this Oct 30, 2019
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.

7 participants