Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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