Skip to content

Commit b76319c

Browse files
committed
fix throwOnMissing logic in ObjectSelectorBase
1 parent 365705a commit b76319c

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

CommonTools/UtilAlgos/interface/ObjectSelectorBase.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class ObjectSelectorBase : public Base {
4040
srcToken_(
4141
this->template consumes<typename Selector::collection>(cfg.template getParameter<edm::InputTag>("src"))),
4242
filter_(false),
43-
throwOnMissing_(cfg.template getUntrackedParameter<bool>("throwOnMissing", true)),
43+
throwOnMissing_(cfg.getUntrackedParameter<bool>("throwOnMissing", true)),
4444
selectorInit_(this->consumesCollector()),
4545
selector_(cfg, this->consumesCollector()),
4646
sizeSelector_(reco::modules::make<SizeSelector>(cfg)),
@@ -69,10 +69,13 @@ class ObjectSelectorBase : public Base {
6969
bool filter(edm::Event& evt, const edm::EventSetup& es) override {
7070
selectorInit_.init(selector_, evt, es);
7171
edm::Handle<typename Selector::collection> source;
72+
evt.getByToken(srcToken_, source);
73+
// if throwOnMissing is false, but the input source is not valid
74+
// allow all events to pass
7275
if (!throwOnMissing_ && !source.isValid()) {
7376
return !filter_;
7477
}
75-
evt.getByToken(srcToken_, source);
78+
7679
StoreManager manager(source);
7780
selector_.select(source, evt, es);
7881
manager.cloneAndStore(selector_.begin(), selector_.end(), evt);

0 commit comments

Comments
 (0)