50 electronSrc_(iConfig.getParameter<edm::InputTag>(
"electronSource")),
54 produces<edm::RefToBaseVector<reco::GsfElectron> >();
68 try_ += electrons->size();
73 std::auto_ptr< std::vector<size_t> > duplicates = duplicateRemover_.duplicatesToRemove(*electrons);
75 std::vector<size_t>::const_iterator itdup = duplicates->begin(), enddup = duplicates->end();
76 for (
size_t i = 0,
n = electrons->size();
i <
n; ++
i) {
77 while ((itdup != enddup) && (*itdup <
i)) { ++itdup; }
78 if ((itdup != enddup) && (*itdup ==
i))
continue;
80 result->push_back(electrons->refAt(
i));
83 pass_ += result->size();
#define DEFINE_FWK_MODULE(type)
Remove duplicates from the list of electrons.
virtual void produce(edm::Event &iEvent, const edm::EventSetup &iSetup)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
pat::DuplicatedElectronRemover duplicateRemover_
DuplicatedElectronCleaner(const edm::ParameterSet &iConfig)
edm::InputTag electronSrc_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
unsigned long long uint64_t
~DuplicatedElectronCleaner()