@@ -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