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

Old L1T tags consumed in DQM modules #37016

Closed
tvami opened this issue Feb 21, 2022 · 33 comments · Fixed by #37033
Closed

Old L1T tags consumed in DQM modules #37016

tvami opened this issue Feb 21, 2022 · 33 comments · Fixed by #37033

Comments

@tvami
Copy link
Contributor

tvami commented Feb 21, 2022

This is the main CMSSW version of
cms-l1t-offline#958
now focusing on the DQM packages.

As of now the following packages were identified to use (very possibly) deprecated L1T records. The list might be updated in the future.

Possible Group Module Record Removed Tag
DQM/JetMET METAnalyzer L1GtTriggerMenuRcd L1GtTriggerMenu_CRAFT09_hlt
DQM/JetMET JetAnalyzer L1GtTriggerMenuRcd L1GtTriggerMenu_CRAFT09_hlt
DQM/BPH BPHMonitor L1GtStableParametersRcd L1GtStableParameters_CRAFT09_hlt
DQM/Strips SiStripMonitorCluster L1GtStableParametersRcd L1GtStableParameters_CRAFT09_hlt
DQM/Muons MuonMonitor L1GtStableParametersRcd L1GtStableParameters_CRAFT09_hlt
@tvami
Copy link
Contributor Author

tvami commented Feb 21, 2022

assign dqm

@cmsbuild
Copy link
Contributor

New categories assigned: dqm

@jfernan2,@ahmad3213,@rvenditti,@emanueleusai,@pbo0,@pmandrik you have been requested to review this Pull request/Issue and eventually sign? Thanks

@cmsbuild
Copy link
Contributor

A new Issue was created by @tvami Tamas Vami.

@Dr15Jones, @perrotta, @dpiparo, @makortel, @smuzaffar, @qliphy can you please review it and eventually sign/assign? Thanks.

cms-bot commands are listed here

@tvami
Copy link
Contributor Author

tvami commented Feb 21, 2022

Hi @cms-sw/dqm-l2 friends,
Could you please assign the relevant subsystem DQM experts?
Thanks!

@tvami
Copy link
Contributor Author

tvami commented Feb 21, 2022

This PR #36986 might be helpful in how to handle the situation (that was for a different record)

@tvami
Copy link
Contributor Author

tvami commented Feb 21, 2022

Hi @arossi83 @sroychow could you please have a look at why SiStripMonitorCluster is accessing the L1GtStableParametersRcd?

@mmusich
Copy link
Contributor

mmusich commented Feb 22, 2022

@tvami
SiStripMonitorCluster is NOT accessing directly L1GtStableParametersRcd as a very quick search in DXR will demonstrate to you: https://cmssdt.cern.ch/dxr/CMSSW/search?q=L1GtStableParametersRcd&case=true.
On the other hand, L1GtTriggerMenuRcd does (since it's a dependent record on L1GtStableParametersRcd):

class L1GtTriggerMenuRcd : public edm::eventsetup::DependentRecordImplementation<
L1GtTriggerMenuRcd,
edm::mpl::Vector<L1GtStableParametersRcd, L1TriggerKeyListRcd, L1TriggerKeyRcd> > {
// empty
};

and that in turn is consumed in GenericTriggerEventFlag

if (onL1_ && !stage2_) {
l1GtTriggerMenuToken_ = iC.esConsumes<L1GtTriggerMenu, L1GtTriggerMenuRcd, edm::Transition::BeginRun>();
}

and this object is finally constructed in SiStripMonitorCluster in:

genTriggerEventFlagBPTXfilter_ =
new GenericTriggerEventFlag(iConfig.getParameter<edm::ParameterSet>("BPTXfilter"), consumesCollector(), *this);
genTriggerEventFlagPixelDCSfilter_ = new GenericTriggerEventFlag(
iConfig.getParameter<edm::ParameterSet>("PixelDCSfilter"), consumesCollector(), *this);
genTriggerEventFlagStripDCSfilter_ = new GenericTriggerEventFlag(
iConfig.getParameter<edm::ParameterSet>("StripDCSfilter"), consumesCollector(), *this);

In summary, if you want to loose the dependency on that record, you should not ask the DQM people, but rather either the HLT (as responsibles of CommonTools/TriggerUtils or the L1T for the record L1GtTriggerMenuRcd).
Finally please notice that in the GenericTriggerEventFlag the consumes is encapsulated in a statement regarding it begin stage1 (pre 2016), so the dependency seems legit to me.

@tvami
Copy link
Contributor Author

tvami commented Feb 22, 2022

Hi @mmusich thanks a lot for looking into this. I see that https://github.com/cms-sw/cmssw/blob/master/DQM/SiStripMonitorClient/python/pset4GenericTriggerEventFlag_cfi.py doesnt have the stage2 boolean on true (and the default is false), so I guess that's the cause of the problem.

@tvami
Copy link
Contributor Author

tvami commented Feb 22, 2022

assign hlt

@tvami
Copy link
Contributor Author

tvami commented Feb 22, 2022

unassign dqm

@cmsbuild
Copy link
Contributor

New categories assigned: hlt

@missirol,@Martin-Grunewald you have been requested to review this Pull request/Issue and eventually sign? Thanks

@mmusich
Copy link
Contributor

mmusich commented Feb 22, 2022

doesnt have the stage2 boolean on true (and the default is false), so I guess that's the cause of the problem.

right, probably one just needs to change here (and everywhere else that objected is used) the default for stage2 using the process modifier.

@tvami
Copy link
Contributor Author

tvami commented Feb 22, 2022

Hi @missirol can you make this modification that if the stage-2 era is used then


is set to true? I think it's better to do this at the source here instead of each single module that's using this flag, do you agree?

@missirol
Copy link
Contributor

Based on https://github.com/cms-sw/cmssw/pull/28592/files#r358835228 , my understanding is that the default value of stage2 should be false as it already is in GenericTriggerEventFlag, so I don't see any change to be applied to the latter (other than eventually use fillDescriptions, but that's purely technical); the cpp class has to handle both cases, is configurable, and defaults to stage2=false.

right, probably one just needs to change here (and everywhere else that objected is used) the default for stage2 using the process modifier.

I would follow this approach, and if i understand Marco's comment, this means changing the python configuration of all the relevant DQM modules with the relevant modifier (that code is mostly under DQM, I think).

@tvami
Copy link
Contributor Author

tvami commented Feb 22, 2022

I was not suggesting to modify the cc code, I was suggesting to have a cff file that changes stage2 to true if the stage2L1Trigger era is used, something like

from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
stage2L1Trigger.toModify(GenericTriggerEventFlag, stage2 = true)

Do you think that's a possible solution?

@missirol
Copy link
Contributor

missirol commented Feb 22, 2022

Yes, sure. The problem is that I don't see a central cfi for the PSet of GenericTriggerEventFlag. One way would be to have that cfi, it would contain the proc-modifier call as you wrote, and all the client modules would clone from that. Instead, it looks like these modules are creating this PSet from "scratch". So to me, this still makes it a client problem (iow, "assign dqm"). If you'd like me to look more into the details, it would be helpful to suggest a timeline ("by pre6?").

@mmusich
Copy link
Contributor

mmusich commented Feb 22, 2022

@tvami
as far as I can tell one of the GenericTriggerEventFlag is already been taken care of here:

from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
stage2L1Trigger.toModify(SiStripMonitorClusterBPTX,
BPTXfilter = dict(
stage2 = cms.bool(True),
l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
ReadPrescalesFromFile = cms.bool(True)
)
)

I guess one just needs to adjust the other ones...
How can one check if the dependency is lost after the changes?

@tvami
Copy link
Contributor Author

tvami commented Feb 22, 2022

Here is what we've been using

runTheMatrix.py --what standard -l 138.4 --command "--conditions 121X_dataRun3_L1TriggerTagRemoval_v1 -n 1000" -t 8

Sorry it's in 121X, the whole cleaning started back then...

@mmusich
Copy link
Contributor

mmusich commented Feb 22, 2022

OK.
I think this should solve:

diff --git a/DQM/SiStripMonitorClient/python/SiStripSourceConfigTier0_cff.py b/DQM/SiStripMonitorClient/python/SiStripSourceConfigTier0_cff.py
index 2e7fd85237c..6cfd463b334 100644
--- a/DQM/SiStripMonitorClient/python/SiStripSourceConfigTier0_cff.py
+++ b/DQM/SiStripMonitorClient/python/SiStripSourceConfigTier0_cff.py
@@ -75,7 +75,9 @@ stage2L1Trigger.toModify(SiStripMonitorClusterBPTX,
         l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
         l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
         ReadPrescalesFromFile = cms.bool(True)
-    )
+    ),
+    PixelDCSfilter = dict(stage2 = cms.bool(True)),
+    StripDCSfilter = dict(stage2 = cms.bool(True))
 )
 
 # refitter ### (FIXME rename, move)
diff --git a/DQMOffline/Trigger/python/BPHMonitor_cfi.py b/DQMOffline/Trigger/python/BPHMonitor_cfi.py
index 71dab23a1a8..5f1bab34a06 100644
--- a/DQMOffline/Trigger/python/BPHMonitor_cfi.py
+++ b/DQMOffline/Trigger/python/BPHMonitor_cfi.py
@@ -4,9 +4,6 @@ from DQMOffline.Trigger.bphMonitoring_cfi import bphMonitoring as _bphMonitoring
 
 hltBPHmonitoring = _bphMonitoring.clone()
 
-from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
-stage2L1Trigger.toModify(hltBPHmonitoring, stageL1Trigger = 2)
-
 #hltBPHmonitoring.options = cms.untracked.PSet(
 #    SkipEvent = cms.untracked.vstring('ProductNotFound')
 #)
@@ -117,3 +114,9 @@ hltBPHmonitoring.denGenericTriggerEventPSet.hltPaths  = cms.vstring( "HLT_Mu7p5_
 hltBPHmonitoring.denGenericTriggerEventPSet.andOrDcs      = cms.bool( False )
 hltBPHmonitoring.denGenericTriggerEventPSet.errorReplyDcs = cms.bool( True )
 hltBPHmonitoring.denGenericTriggerEventPSet.verbosityLevel = cms.uint32(0)
+
+from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
+stage2L1Trigger.toModify(hltBPHmonitoring,
+                         stageL1Trigger = 2,
+                         numGenericTriggerEventPSet = dict(stage2 = cms.bool(True)),
+                         denGenericTriggerEventPSet = dict(stage2 = cms.bool(True)))
diff --git a/DQMOffline/Trigger/python/JetMonitor_cfi.py b/DQMOffline/Trigger/python/JetMonitor_cfi.py
index 932838c5344..b0c5447e221 100644
--- a/DQMOffline/Trigger/python/JetMonitor_cfi.py
+++ b/DQMOffline/Trigger/python/JetMonitor_cfi.py
@@ -39,3 +39,7 @@ hltJetMETmonitoring.denGenericTriggerEventPSet.andOrDcs      = cms.bool( False )
 hltJetMETmonitoring.denGenericTriggerEventPSet.errorReplyDcs = cms.bool( True )
 hltJetMETmonitoring.denGenericTriggerEventPSet.verbosityLevel = cms.uint32(1)
 
+from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
+stage2L1Trigger.toModify(hltJetMETmonitoring,
+                         numGenericTriggerEventPSet = dict(stage2 = cms.bool(True)),
+                         denGenericTriggerEventPSet = dict(stage2 = cms.bool(True)))
diff --git a/DQMOffline/Trigger/python/METMonitor_cfi.py b/DQMOffline/Trigger/python/METMonitor_cfi.py
index 8f72ba6acc0..be521b4aad8 100644
--- a/DQMOffline/Trigger/python/METMonitor_cfi.py
+++ b/DQMOffline/Trigger/python/METMonitor_cfi.py
@@ -37,3 +37,8 @@ hltMETmonitoring.denGenericTriggerEventPSet.errorReplyDcs = cms.bool( True )
 hltMETmonitoring.denGenericTriggerEventPSet.verbosityLevel = cms.uint32(1)
 #hltMETmonitoring.denGenericTriggerEventPSet.hltPaths      = cms.vstring("HLT_IsoMu27_v*");
 hltMETmonitoring.denGenericTriggerEventPSet.hltPaths      = cms.vstring();
+
+from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
+stage2L1Trigger.toModify(hltMETmonitoring,
+                         numGenericTriggerEventPSet = dict(stage2 = cms.bool(True)),
+                         denGenericTriggerEventPSet = dict(stage2 = cms.bool(True)))
diff --git a/DQMOffline/Trigger/python/MuonMonitor_cfi.py b/DQMOffline/Trigger/python/MuonMonitor_cfi.py
index 93c16eb01c4..cfc74964fc9 100644
--- a/DQMOffline/Trigger/python/MuonMonitor_cfi.py
+++ b/DQMOffline/Trigger/python/MuonMonitor_cfi.py
@@ -39,3 +39,8 @@ hltMuonmonitoring.denGenericTriggerEventPSet.andOrDcs      = cms.bool( False )
 hltMuonmonitoring.denGenericTriggerEventPSet.errorReplyDcs = cms.bool( True )
 hltMuonmonitoring.denGenericTriggerEventPSet.verbosityLevel = cms.uint32(1)
 
+from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
+stage2L1Trigger.toModify(hltMuonmonitoring,
+                         numGenericTriggerEventPSet = dict(stage2 = cms.bool(True)),
+                         denGenericTriggerEventPSet = dict(stage2 = cms.bool(True)))
+

I don't want to own a PR about it and have no time to test it, but @tvami or @panoskatsoulis feel free to check it if works for you

@tvami
Copy link
Contributor Author

tvami commented Feb 22, 2022

Thanks Marco, I can submit the PR

@missirol
Copy link
Contributor

unassign hlt

@tvami
Copy link
Contributor Author

tvami commented Feb 22, 2022

assign dqm

@cmsbuild
Copy link
Contributor

New categories assigned: dqm

@jfernan2,@ahmad3213,@rvenditti,@emanueleusai,@pbo0,@pmandrik you have been requested to review this Pull request/Issue and eventually sign? Thanks

@tvami
Copy link
Contributor Author

tvami commented Feb 22, 2022

Yes, sure. The problem is that I don't see a central cfi for the PSet of GenericTriggerEventFlag. One way would be to have that cfi, it would contain the proc-modifier call as you wrote, and all the client modules would clone from that. Instead, it looks like these modules are creating this PSet from "scratch". So to me, this still makes it a client problem (iow, "assign dqm"). If you'd like me to look more into the details, it would be helpful to suggest a timeline ("by pre6?").

Maybe this can be added to a long term development with the fillDescription method, thanks!

@missirol
Copy link
Contributor

missirol commented Feb 22, 2022

I'm afraid Marco's patch might not be enough (hopefully i'm wrong).

The reason is that those (HLT-)DQM modules do have fillDescriptions, and those try to "guess" the parameters used inside GenericTriggerEventFlag (the latter unfortunately does not have its own fillPSetDescription to properly encapsulate things, as we were saying) .. and stage2 is not listed as an allowed parameter in the DQM modules' fillDescriptions. Example:

edm::ParameterSetDescription genericTriggerEventPSet;
genericTriggerEventPSet.add<bool>("andOr");
genericTriggerEventPSet.add<edm::InputTag>("dcsInputTag", edm::InputTag("scalersRawToDigi"));
genericTriggerEventPSet.add<edm::InputTag>("hltInputTag", edm::InputTag("TriggerResults::HLT"));
genericTriggerEventPSet.add<std::vector<int>>("dcsPartitions", {});
genericTriggerEventPSet.add<bool>("andOrDcs", false);
genericTriggerEventPSet.add<bool>("errorReplyDcs", true);
genericTriggerEventPSet.add<std::string>("dbLabel", "");
genericTriggerEventPSet.add<bool>("andOrHlt", true);
genericTriggerEventPSet.add<bool>("andOrL1", true);
genericTriggerEventPSet.add<std::vector<std::string>>("hltPaths", {});
genericTriggerEventPSet.add<std::vector<std::string>>("l1Algorithms", {});
genericTriggerEventPSet.add<std::string>("hltDBKey", "");
genericTriggerEventPSet.add<bool>("errorReplyHlt", false);
genericTriggerEventPSet.add<bool>("errorReplyL1", true);
genericTriggerEventPSet.add<bool>("l1BeforeMask", true);
genericTriggerEventPSet.add<unsigned int>("verbosityLevel", 0);
desc.add<edm::ParameterSetDescription>("numGenericTriggerEventPSet", genericTriggerEventPSet);
desc.add<edm::ParameterSetDescription>("denGenericTriggerEventPSet", genericTriggerEventPSet);

so I would expect the framework to object to the last two lines of

+stage2L1Trigger.toModify(hltBPHmonitoring,
+                         stageL1Trigger = 2,
+                         numGenericTriggerEventPSet = dict(stage2 = cms.bool(True)),
+                         denGenericTriggerEventPSet = dict(stage2 = cms.bool(True)))

The bottom line is that some fillDescriptions cleanup in the cpp source code is likely needed.

@tvami
Copy link
Contributor Author

tvami commented Feb 22, 2022

Yes, seems like you are right @missirol
#37033 (comment)

@missirol
Copy link
Contributor

A quick workaround would be to add stage2 to the fillDescriptions of those 2/3 HLT-DQM plugins (anyways, that's a DQM package, so not really up to me to comment).

@jfernan2
Copy link
Contributor

+1
For the records

@cmsbuild
Copy link
Contributor

This issue is fully signed and ready to be closed.

@mmusich
Copy link
Contributor

mmusich commented Mar 2, 2022

In light of cms-l1t-offline#958 (comment), I believe this issue has been closed too early.
I think at least this change would be still needed (not sure if there is a smarter way of using the modifiers for VPsets):

diff --git a/DQMOffline/JetMET/python/metDQMConfig_cfi.py b/DQMOffline/JetMET/python/metDQMConfig_cfi.py
index 4711c9ab286..b226e0cfabd 100644
--- a/DQMOffline/JetMET/python/metDQMConfig_cfi.py
+++ b/DQMOffline/JetMET/python/metDQMConfig_cfi.py
@@ -55,6 +55,10 @@ caloMetDQMAnalyzer = DQMEDAnalyzer('METAnalyzer',
         hltPaths       = cms.vstring( 'HLT_PFJet450_v*' ), 
         andOrHlt       = cms.bool( True ),
         errorReplyHlt  = cms.bool( False ),
+        stage2 = cms.bool(False),
+        l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+        l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+        ReadPrescalesFromFile = cms.bool(False),
     ),
     cms.PSet(label = cms.string('lowPtJet'),
         andOr         = cms.bool( False ),     #True -> OR #Comment this line to turn OFF
@@ -64,6 +68,10 @@ caloMetDQMAnalyzer = DQMEDAnalyzer('METAnalyzer',
         hltPaths       = cms.vstring( 'HLT_PFJet80_v*' ), 
         andOrHlt       = cms.bool( True ),
         errorReplyHlt  = cms.bool( True ),
+        stage2 = cms.bool(False),
+        l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+        l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+        ReadPrescalesFromFile = cms.bool(False),
     ),
     cms.PSet(label = cms.string('zeroBias'),
         andOr         = cms.bool( False ),     #True -> OR #Comment this line to turn OFF
@@ -73,6 +81,10 @@ caloMetDQMAnalyzer = DQMEDAnalyzer('METAnalyzer',
         hltPaths       = cms.vstring( 'HLT_ZeroBias_v*' ), 
         andOrHlt       = cms.bool( True ),
         errorReplyHlt  = cms.bool( False ),
+        stage2 = cms.bool(False),
+        l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+        l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+        ReadPrescalesFromFile = cms.bool(False),
     ),
     cms.PSet(label = cms.string('highMET'),
         andOr         = cms.bool( False ),     #True -> OR #Comment this line to turn OFF
@@ -82,6 +94,10 @@ caloMetDQMAnalyzer = DQMEDAnalyzer('METAnalyzer',
         hltPaths       = cms.vstring( 'HLT_MET250_v*' ), 
         andOrHlt       = cms.bool( True ),
         errorReplyHlt  = cms.bool( False ),
+        stage2 = cms.bool(False),
+        l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+        l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+        ReadPrescalesFromFile = cms.bool(False),
     ),
     #cms.PSet(label = cms.string('singleEle'),
     #    andOr         = cms.bool( False ),     #True -> OR #Comment this line to turn OFF
@@ -100,6 +116,10 @@ caloMetDQMAnalyzer = DQMEDAnalyzer('METAnalyzer',
         hltPaths       = cms.vstring( 'HLT_IsoMu24_eta2p1_v*', 'HLT_IsoMu27_v*'), 
         andOrHlt       = cms.bool( True ),
         errorReplyHlt  = cms.bool( False ),
+        stage2 = cms.bool(False),
+        l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+        l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+        ReadPrescalesFromFile = cms.bool(False),
     ) 
     ),
  
@@ -132,6 +152,33 @@ caloMetDQMAnalyzer = DQMEDAnalyzer('METAnalyzer',
     ),
 )
 
+#
+# Make changes if using the Stage 2 trigger
+#
+from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
+stage2L1Trigger.toModify(caloMetDQMAnalyzer,
+                         triggerSelectedSubFolders = {
+                             0:dict(stage2 = cms.bool(True),
+                                    l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    ReadPrescalesFromFile = cms.bool(True)),
+                             1:dict(stage2 = cms.bool(True),
+                                    l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    ReadPrescalesFromFile = cms.bool(True)),
+                             2:dict(stage2 = cms.bool(True),
+                                    l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    ReadPrescalesFromFile = cms.bool(True)),
+                             3:dict(stage2 = cms.bool(True),
+                                    l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    ReadPrescalesFromFile = cms.bool(True)),
+                             4:dict(stage2 = cms.bool(True),
+                                    l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    ReadPrescalesFromFile = cms.bool(True))})
+
 pfMetDQMAnalyzer = caloMetDQMAnalyzer.clone(
     METType = 'pf',
     METCollectionLabel     = "pfMet",

but the real problem is that METAnalyzer is consuming directly L1GtTriggerMenuRcd:

const L1GtTriggerMenu* menu = &iSetup.getData(l1gtTrigMenuToken_);

I am not sure how exactly the code should be adapted in the case of the stage-2, but if that record is really obsolete, it is probably not doing anything useful currently.
In any case it would be something that a JME DQM expert should solve.

@jfernan2
Copy link
Contributor

jfernan2 commented Mar 2, 2022

@iatakisi @ramankhurana @physicist87 @bobaekim @pallabidas could you please advice in the issue above?
Thanks

@ramankhurana
Copy link
Contributor

Thanks for notice, but I am not responsible for this anymore (from last 4 years).

@makortel
Copy link
Contributor

makortel commented Mar 2, 2022

(not sure if there is a smarter way of using the modifiers for VPsets):

+                          triggerSelectedSubFolders = {
+                             0:dict(stage2 = cms.bool(True),
+                                    l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    ReadPrescalesFromFile = cms.bool(True)),
+                             1:dict(stage2 = cms.bool(True),
+                                    l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    ReadPrescalesFromFile = cms.bool(True)),
+                             2:dict(stage2 = cms.bool(True),
+                                    l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    ReadPrescalesFromFile = cms.bool(True)),
+                             3:dict(stage2 = cms.bool(True),
+                                    l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    ReadPrescalesFromFile = cms.bool(True)),
+                             4:dict(stage2 = cms.bool(True),
+                                    l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
+                                    ReadPrescalesFromFile = cms.bool(True))})

I think this part could be expressed as something along

triggerSelectedSubFolders = {i: dict(stage2 = True,
    l1tAlgBlkInputTag = "gtStage2Digis",
    l1tExtBlkInputTag = "gtStage2Digis",
    ReadPrescalesFromFile = True) for i in range(0, len(caloMetDQMAnalyzer.triggerSelectedSubFolders))}

I tested as far as the dictionary comprehension produces the same dictionary as above (except here I dropped the explicit types from the "right hand side" as they seemed unnecessary(?)).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants