Skip to content

Commit

Permalink
miscellaneous improvements to LSNumberFilter
Browse files Browse the repository at this point in the history
  • Loading branch information
mmusich committed Apr 23, 2024
1 parent b212c73 commit 1830e6e
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 29 deletions.
46 changes: 27 additions & 19 deletions Alignment/CommonAlignmentProducer/plugins/LSNumberFilter.cc
Original file line number Diff line number Diff line change
@@ -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 <iostream>

//
// class declaration
Expand All @@ -15,44 +14,53 @@
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<std::string> veto_HLT_Menu;
bool is_HLT_vetoed_;
const unsigned int minLS_;
const std::vector<std::string> veto_HLT_Menu_;
HLTConfigProvider hltConfig_;
};

LSNumberFilter::LSNumberFilter(const edm::ParameterSet& iConfig)
: minLS(iConfig.getUntrackedParameter<unsigned>("minLS", 21)),
veto_HLT_Menu(iConfig.getUntrackedParameter<std::vector<std::string>>("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<unsigned int>("minLS", 21)->setComment("first LS to accept");
desc.addUntracked<std::vector<std::string>>("veto_HLT_Menu", {})->setComment("list of HLT menus to reject");
descriptions.addWithDefaultLabel(desc);
}

LSNumberFilter::~LSNumberFilter() {}
LSNumberFilter::LSNumberFilter(const edm::ParameterSet& iConfig)
: minLS_(iConfig.getUntrackedParameter<unsigned>("minLS", 21)),
veto_HLT_Menu_(iConfig.getUntrackedParameter<std::vector<std::string>>("veto_HLT_Menu")) {}

//
// member functions
//

// ------------ 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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@


seqALCARECOPromptCalibProdSiPixelAli = cms.Sequence(ALCARECOTkAlMinBiasFilterForSiPixelAli*
lsNumberFilter*
LSNumberFilter*
offlineBeamSpot*
SiPixelAliHighPuritySelector*
SiPixelAliTrackRefitter0*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@
fileBlobLabel = cms.string(''))

seqALCARECOPromptCalibProdSiPixelAliHGDiMu = cms.Sequence(ALCARECOTkAlZMuMuFilterForSiPixelAli*
lsNumberFilter*
LSNumberFilter*
offlineBeamSpot*
SiPixelAliHighPuritySelectorHGDimuon*
SiPixelAliTrackRefitterHGDimuon0*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
fileBlobLabel = cms.string(''))

seqALCARECOPromptCalibProdSiPixelAliHG = cms.Sequence(ALCARECOTkAlMinBiasFilterForSiPixelAliHG*
lsNumberFilter*
LSNumberFilter*
offlineBeamSpot*
SiPixelAliHighPuritySelectorHG*
SiPixelAliTrackRefitterHG0*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@


seqALCARECOPromptCalibProdSiPixelAli = cms.Sequence(ALCARECOTkAlMinBiasFilterForSiPixelAli*
lsNumberFilter*
LSNumberFilter*
offlineBeamSpot*
SiPixelAliHighPuritySelector*
SiPixelAliTrackRefitter0*
Expand Down
Original file line number Diff line number Diff line change
@@ -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"])
Original file line number Diff line number Diff line change
Expand Up @@ -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

##
Expand Down

0 comments on commit 1830e6e

Please sign in to comment.