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
Test ECAL pedestals in next MWGR #33765
Test ECAL pedestals in next MWGR #33765
Conversation
A new Pull Request was created by @francescobrivio for CMSSW_11_3_X. It involves the following packages: Calibration/EcalCalibAlgos @malbouis, @yuanchao, @cmsbuild, @tlampen, @pohsun, @francescobrivio can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
test parameters:
|
@cmsbuild please test |
@@ -5,7 +5,7 @@ | |||
BarrelDigis=cms.InputTag('ecalDigis','ebDigis'), | |||
EndcapDigis=cms.InputTag('ecalDigis','eeDigis'), | |||
tcdsRecord =cms.InputTag('tcdsDigis','tcdsRecord'), | |||
requireStableBeam = cms.bool(True), | |||
requireStableBeam = cms.bool(False), |
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.
wildly speculating: can this be included in the cosmics reconstruction scenario, which by construction doesn't have stable beams, without having to pollute conditions with unstable collisions?
https://github.com/cms-sw/cmssw/blob/master/Configuration/DataProcessing/python/Impl/cosmics.py
Alternatively one can adapt the C++ source code here:
cmssw/Calibration/EcalCalibAlgos/src/ECALpedestalPCLworker.cc
Lines 48 to 54 in c861ecf
if (requireStableBeam_) { | |
edm::Handle<TCDSRecord> tcdsData; | |
iEvent.getByToken(tcdsToken_, tcdsData); | |
int beamMode = tcdsData->getBST().getBeamMode(); | |
if (beamMode != BSTRecord::BeamMode::STABLE) | |
return; | |
} |
to accept also
BSTRecord::BeamMode::NOBEAM
(I suppose that's what the TDSC record has for cosmics).
Not sure though one wants to run the ecal pedestal on all cosmics runs.
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.
From a private conversation with @simonepigazzini I understood they are fine running this test in the upcoming MWGR, but otherwise they would like to keep things as they were, i.e. only run the pedestals with stable beams.
So I don't think including this in the cosmic scenario is the way to go. Maybe create a MWGR scenario? (if this even makes sense...)
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.
I don't see how your code proposal differs from mine in this respect other than being worse, since it also accepts the collision in unstable beam.
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.
Ah I see your point now...indeed it might be a good solution to run it only for cosmics and it can still be reverted after the MWGR. I'll have a look how to customize the cosmics.py
.
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.
I understood they are fine running this test in the upcoming MWGR, but otherwise they would like to keep things as they were, i.e. only run the pedestals with stable beams.
One additional comment.
If there is concern that running the ECAL pedestal workflow on non-stable beams might produce conditions polluting the production pedestal tags, a valid option is to make this line configurable:
poolDbService->writeOne(&pedestals, poolDbService->currentTime(), "EcalPedestalsRcd"); |
so that in the case of non-stable beam configuration it writes on a different record name than EcalPedestalsRcd
(can be whatever random string) and then use that key to steer the PCL upload to a different tag name at the level of DropBoxMetaData
by adding an appropriate entry here (for a different record).
cmssw/CondFormats/Common/test/ProduceDropBoxMetadata.py
Lines 145 to 149 in 74144ae
cms.PSet(record = cms.untracked.string('EcalPedestalsRcd'), | |
Source = cms.untracked.string("AlcaHarvesting"), | |
FileClass = cms.untracked.string("ALCA"), | |
prodMetaData = cms.untracked.string(EcalPedestalsRcd_prod_str), | |
prepMetaData = cms.untracked.string(EcalPedestalsRcd_prep_str), |
Notice that in this context a record
is just a dummy string and doesn't map to the actual C++ class associated to the CondFormat (as you can see in the DropBoxMetaData
we have all sort of dummy names).
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.
@mmusich two further cosiderations:
-
Regarding the flag: since this is a one time only change (@simonepigazzini please confirm this from ECAL side) and will be reverted after MWGR I think it's faster to change the flag as I already did instead of modifying the cosmics customization (because I need some time to understand how to do that properly).
-
In any case, in order not to pollute the production tags, we are planning to write the payloads to a test tag as you suggest. I was under the impression that changing the
DropBoxMetaData
was enough to do that, but from your last comment it seems that some hardcoded changes are needed inpoolDbService->writeOne(&pedestals, poolDbService->currentTime(), "EcalPedestalsRcd");
Could you help me understand better?
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.
@francescobrivio the DropBoxMetaData
mechanism assigns the tags on which to write the payload produced by the PCL by means of reading from the framework job report the target record produced by the PCL harvester configuration. That's why the record in the source C++ code is relevant to steer which tags to populate. If you don't foresee to have a separate harvesting for cosmics then there is no need to change the source code (that would be needed to maintain at the same time two harvesting flavours), but just create a new IOV for the DropBoxMetaData
record in the express Global Tag and then roll it back after the MWGR.
We can talk more at length offline if you wish.
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.
@francescobrivio the
DropBoxMetaData
mechanism assigns the tags on which to write the payload produced by the PCL by means of reading from the framework job report the target record produced by the PCL harvester configuration. That's why the record in the source C++ code is relevant to steer which tags to populate. If you don't foresee to have a separate harvesting for cosmics then there is no need to change the source code (that would be needed to maintain at the same time two harvesting flavours),
Thanks for the nice explanation.
but just create a new IOV for the
DropBoxMetaData
record in the express Global Tag and then roll it back after the MWGR.
Yes, this is what I had in mind to do.
We can talk more at length offline if you wish.
Yes, that would be really useful thanks!
So I think this PR is fine as it is now, given also that all the tests are succesful.
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-6764c3/15167/summary.html Comparison Summary@slava77 comparisons for the following workflows were not done due to missing matrix map:
Summary:
|
+alca The flag changed in this PR will allow the ECAL pedestal PCL to be tested during the upcoming MWGR. It will be immediately reverted after the MWGR and in principle there are no intentions on repeating this exercise with this particular workflow. |
This pull request is fully signed and it will be integrated in one of the next CMSSW_11_3_X IBs (tests are also fine) and once validation in the development release cycle CMSSW_12_0_X is complete. This pull request will now be reviewed by the release team before it's merged. @silviodonato, @dpiparo, @qliphy (and backports should be raised in the release meeting by the corresponding L2) |
PR description:
In order to test the ECAL pedestal workflow in PCL during next MWGR we need to change
the flag
requireStableBeam
inecalPedestalPCLworker_cfi.py
, because usually the ECAL pedestalPCL workflow is only run with collisions (with stable beams to be precise).
Since this change is needed only for the upcoming MWGR and after that it will be reverted I'm not sure
if there is a smarter way to configure this without the need for a patch release, I'm open to suggestions.
ECAL DPGs are informed and agree with this change provided we revert it after the MWGR.
PR validation:
Tested with
RunTheMatrix.py -l 1010 --ibeos
Backport:
This is not a backport and no backport is needed. Will be reverted after MWGR.