Skip to content

Commit 4c19899

Browse files
author
Benjamin Huber
committed
L1AcceptFilter add veto and triggerType logic
1 parent 8be9981 commit 4c19899

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

L1Trigger/Phase2L1GT/plugins/L1GTAcceptFilter.cc

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,33 +26,41 @@ class L1GTAcceptFilter : public edm::global::EDFilter<> {
2626

2727
const edm::EDGetTokenT<P2GTAlgoBlockMap> algoBlocksToken_;
2828
const DecisionType decisionEnum_;
29+
int triggerType_;
2930
};
3031

3132
L1GTAcceptFilter::L1GTAcceptFilter(const edm::ParameterSet& config)
3233
: algoBlocksToken_(consumes<P2GTAlgoBlockMap>(config.getParameter<edm::InputTag>("algoBlocksTag"))),
3334
decisionEnum_(config.getParameter<std::string>("decision") == "beforeBxMaskAndPrescale" ? beforeBxMaskAndPrescale
3435
: config.getParameter<std::string>("decision") == "beforePrescale" ? beforePrescale
35-
: final) {}
36+
: final),
37+
triggerType_(config.getParameter<int>("triggerType")) {}
3638

3739
bool L1GTAcceptFilter::filter(edm::StreamID, edm::Event& event, const edm::EventSetup& setup) const {
3840
const P2GTAlgoBlockMap& algoMap = event.get(algoBlocksToken_);
3941
bool decision = false;
42+
bool veto = false;
4043
for (const auto& [name, algoBlock] : algoMap) {
41-
if (decisionEnum_ == beforeBxMaskAndPrescale) {
42-
decision |= algoBlock.decisionBeforeBxMaskAndPrescale();
43-
} else if (decisionEnum_ == beforePrescale) {
44-
decision |= algoBlock.decisionBeforePrescale();
45-
} else {
46-
decision |= algoBlock.decisionFinal();
44+
if (algoBlock.isVeto()) {
45+
veto |= algoBlock.decisionFinal();
46+
} else if ((algoBlock.triggerTypes() & triggerType_) > 0) {
47+
if (decisionEnum_ == beforeBxMaskAndPrescale) {
48+
decision |= algoBlock.decisionBeforeBxMaskAndPrescale();
49+
} else if (decisionEnum_ == beforePrescale) {
50+
decision |= algoBlock.decisionBeforePrescale();
51+
} else {
52+
decision |= algoBlock.decisionFinal();
53+
}
4754
}
4855
}
4956

50-
return decision;
57+
return decision && !veto;
5158
}
5259

5360
void L1GTAcceptFilter::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
5461
edm::ParameterSetDescription desc;
5562
desc.add<edm::InputTag>("algoBlocksTag");
63+
desc.add<int>("triggerType", 1);
5664
desc.ifValue(edm::ParameterDescription<std::string>("decision", "final", true),
5765
edm::allowedValues<std::string>("beforeBxMaskAndPrescale", "beforePrescale", "final"));
5866

0 commit comments

Comments
 (0)