diff --git a/Alignment/CommonAlignmentProducer/plugins/LSNumberFilter.cc b/Alignment/CommonAlignmentProducer/plugins/LSNumberFilter.cc index ad3352f526dc3..e13de5c930ad7 100644 --- a/Alignment/CommonAlignmentProducer/plugins/LSNumberFilter.cc +++ b/Alignment/CommonAlignmentProducer/plugins/LSNumberFilter.cc @@ -1,12 +1,11 @@ -#include "FWCore/Framework/interface/stream/EDFilter.h" #include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/Run.h" -#include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/Run.h" +#include "FWCore/Framework/interface/stream/EDFilter.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h" -#include // // class declaration @@ -15,22 +14,30 @@ class LSNumberFilter : public edm::stream::EDFilter<> { public: explicit LSNumberFilter(const edm::ParameterSet&); - ~LSNumberFilter() override; + ~LSNumberFilter() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: void beginRun(edm::Run const&, edm::EventSetup const&) override; bool filter(edm::Event&, const edm::EventSetup&) override; - bool is_HLT_vetoed; - unsigned int minLS; - const std::vector veto_HLT_Menu; + bool is_HLT_vetoed_; + const unsigned int minLS_; + const std::vector veto_HLT_Menu_; HLTConfigProvider hltConfig_; }; -LSNumberFilter::LSNumberFilter(const edm::ParameterSet& iConfig) - : minLS(iConfig.getUntrackedParameter("minLS", 21)), - veto_HLT_Menu(iConfig.getUntrackedParameter>("veto_HLT_Menu")) {} +void LSNumberFilter::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.setComment("Filters the first minLS lumisections and reject the run according to the HLT menu name"); + desc.addUntracked("minLS", 21)->setComment("first LS to accept"); + desc.addUntracked>("veto_HLT_Menu", {})->setComment("list of HLT menus to reject"); + descriptions.addWithDefaultLabel(desc); +} -LSNumberFilter::~LSNumberFilter() {} +LSNumberFilter::LSNumberFilter(const edm::ParameterSet& iConfig) + : minLS_(iConfig.getUntrackedParameter("minLS", 21)), + veto_HLT_Menu_(iConfig.getUntrackedParameter>("veto_HLT_Menu")) {} // // member functions @@ -38,21 +45,22 @@ LSNumberFilter::~LSNumberFilter() {} // ------------ method called on each new Event ------------ bool LSNumberFilter::filter(edm::Event& iEvent, const edm::EventSetup& iSetup) { - if ((iEvent.luminosityBlock() < minLS) || is_HLT_vetoed) + if ((iEvent.luminosityBlock() < minLS_) || is_HLT_vetoed_) { return false; + } return true; } void LSNumberFilter::beginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) { - bool changed(false); + bool changed{false}; hltConfig_.init(iRun, iSetup, "HLT", changed); - is_HLT_vetoed = false; - for (unsigned int i = 0; i < veto_HLT_Menu.size(); i++) { - std::size_t found = hltConfig_.tableName().find(veto_HLT_Menu[i]); + is_HLT_vetoed_ = false; + for (const auto& veto : veto_HLT_Menu_) { + std::size_t found = hltConfig_.tableName().find(veto); if (found != std::string::npos) { - is_HLT_vetoed = true; - edm::LogWarning("LSNumberFilter") << "Detected " << veto_HLT_Menu[i] + is_HLT_vetoed_ = true; + edm::LogWarning("LSNumberFilter") << "Detected " << veto << " in HLT Config tableName(): " << hltConfig_.tableName() << "; Events of this run will be ignored" << std::endl; break; diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAli0T_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAli0T_cff.py index 8e4c6a0694880..3efc11e01e7fa 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAli0T_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAli0T_cff.py @@ -151,7 +151,7 @@ seqALCARECOPromptCalibProdSiPixelAli = cms.Sequence(ALCARECOTkAlMinBiasFilterForSiPixelAli* - lsNumberFilter* + LSNumberFilter* offlineBeamSpot* SiPixelAliHighPuritySelector* SiPixelAliTrackRefitter0* diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHGDiMuon_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHGDiMuon_cff.py index 7cc13a08481c8..9fae5a852ed78 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHGDiMuon_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHGDiMuon_cff.py @@ -123,7 +123,7 @@ fileBlobLabel = cms.string('')) seqALCARECOPromptCalibProdSiPixelAliHGDiMu = cms.Sequence(ALCARECOTkAlZMuMuFilterForSiPixelAli* - lsNumberFilter* + LSNumberFilter* offlineBeamSpot* SiPixelAliHighPuritySelectorHGDimuon* SiPixelAliTrackRefitterHGDimuon0* diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHG_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHG_cff.py index 2c47ea7b6da76..a550d30cb3b84 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHG_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHG_cff.py @@ -64,7 +64,7 @@ fileBlobLabel = cms.string('')) seqALCARECOPromptCalibProdSiPixelAliHG = cms.Sequence(ALCARECOTkAlMinBiasFilterForSiPixelAliHG* - lsNumberFilter* + LSNumberFilter* offlineBeamSpot* SiPixelAliHighPuritySelectorHG* SiPixelAliTrackRefitterHG0* diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAli_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAli_cff.py index e9aa2c08d81b9..366910788be41 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAli_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAli_cff.py @@ -149,7 +149,7 @@ seqALCARECOPromptCalibProdSiPixelAli = cms.Sequence(ALCARECOTkAlMinBiasFilterForSiPixelAli* - lsNumberFilter* + LSNumberFilter* offlineBeamSpot* SiPixelAliHighPuritySelector* SiPixelAliTrackRefitter0* diff --git a/Alignment/CommonAlignmentProducer/python/LSNumberFilter_cfi.py b/Alignment/CommonAlignmentProducer/python/LSNumberFilter_cfi.py index 8f0e4a5b696ff..6a57305771cb1 100644 --- a/Alignment/CommonAlignmentProducer/python/LSNumberFilter_cfi.py +++ b/Alignment/CommonAlignmentProducer/python/LSNumberFilter_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -lsNumberFilter = cms.EDFilter("LSNumberFilter", - minLS = cms.untracked.uint32(21), - veto_HLT_Menu = cms.untracked.vstring("LumiScan") - ) +from Alignment.CommonAlignmentProducer.lsNumberFilter_cfi import lsNumberFilter +LSNumberFilter = lsNumberFilter.clone(minLS = 21, + veto_HLT_Menu = ["LumiScan"]) diff --git a/Alignment/CommonAlignmentProducer/python/customizeLSNumberFilterForRelVals.py b/Alignment/CommonAlignmentProducer/python/customizeLSNumberFilterForRelVals.py index 32bbbb6340325..fe0186ff1982a 100644 --- a/Alignment/CommonAlignmentProducer/python/customizeLSNumberFilterForRelVals.py +++ b/Alignment/CommonAlignmentProducer/python/customizeLSNumberFilterForRelVals.py @@ -6,8 +6,8 @@ ## def doNotFilterLS(process): - if hasattr(process,'lsNumberFilter'): - process.lsNumberFilter.minLS = 1 + if hasattr(process,'LSNumberFilter'): + process.LSNumberFilter.minLS = 1 return process ##