Remove duplicates from the list of electrons. More...
Public Member Functions | |
DuplicatedElectronCleaner (const edm::ParameterSet &iConfig) | |
virtual void | produce (edm::StreamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const override final |
~DuplicatedElectronCleaner () | |
Public Member Functions inherited from edm::global::EDProducer<> | |
EDProducer ()=default | |
Public Member Functions inherited from edm::global::EDProducerBase | |
EDProducerBase () | |
ModuleDescription const & | moduleDescription () const |
virtual | ~EDProducerBase () |
Public Member Functions inherited from edm::ProducerBase | |
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
std::vector< edm::ProductResolverIndex > const & | indiciesForPutProducts (BranchType iBranchType) const |
ProducerBase () | |
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
std::function< void(BranchDescription const &)> | registrationCallback () const |
used by the fwk to register list of products More... | |
void | resolvePutIndicies (BranchType iBranchType, std::unordered_multimap< std::string, edm::ProductResolverIndex > const &iIndicies, std::string const &moduleLabel) |
virtual | ~ProducerBase () noexcept(false) |
Public Member Functions inherited from edm::EDConsumerBase | |
std::vector< ConsumesInfo > | consumesInfo () const |
void | convertCurrentProcessAlias (std::string const &processName) |
Convert "@currentProcess" in InputTag process names to the actual current process name. More... | |
EDConsumerBase () | |
EDConsumerBase (EDConsumerBase const &)=delete | |
EDConsumerBase (EDConsumerBase &&)=default | |
ProductResolverIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
void | itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
void | itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
std::vector< ProductResolverIndexAndSkipBit > const & | itemsToGetFrom (BranchType iType) const |
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
void | modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
virtual | ~EDConsumerBase () noexcept(false) |
Private Attributes | |
const pat::DuplicatedElectronRemover | duplicateRemover_ |
const edm::EDGetTokenT< edm::View< reco::GsfElectron > > | electronSrcToken_ |
std::atomic< uint64_t > | pass_ |
std::atomic< uint64_t > | try_ |
Additional Inherited Members | |
Public Types inherited from edm::global::EDProducerBase | |
typedef EDProducerBase | ModuleType |
Public Types inherited from edm::ProducerBase | |
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
Public Types inherited from edm::EDConsumerBase | |
typedef ProductLabels | Labels |
Static Public Member Functions inherited from edm::global::EDProducerBase | |
static const std::string & | baseType () |
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
static void | prevalidate (ConfigurationDescriptions &descriptions) |
Protected Member Functions inherited from edm::EDConsumerBase | |
template<typename ProductType , BranchType B = InEvent> | |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
template<BranchType B> | |
EDGetToken | consumes (TypeToGet const &id, edm::InputTag const &tag) |
ConsumesCollector | consumesCollector () |
Use a ConsumesCollector to gather consumes information from helper functions. More... | |
template<typename ProductType , BranchType B = InEvent> | |
void | consumesMany () |
void | consumesMany (const TypeToGet &id) |
template<BranchType B> | |
void | consumesMany (const TypeToGet &id) |
template<typename ProductType , BranchType B = InEvent> | |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
template<BranchType B> | |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
Remove duplicates from the list of electrons.
The DuplicatedElectronCleaner removes duplicates from the input collection. Two electrons are considered duplicate if they share the same gsfTrack or the same superCluster. Among the two, the one with |E/P| nearest to 1 is kept. This is performed by the DuplicatedElectronRemover in PhysicsTools/PatUtils
The output is an edm::RefVector<reco:::GsfElectron>, which can be read through edm::View<reco::GsfElectron>
Definition at line 33 of file DuplicatedElectronCleaner.cc.
|
explicit |
Definition at line 47 of file DuplicatedElectronCleaner.cc.
pat::DuplicatedElectronCleaner::~DuplicatedElectronCleaner | ( | ) |
Definition at line 57 of file DuplicatedElectronCleaner.cc.
|
finaloverridevirtual |
Definition at line 62 of file DuplicatedElectronCleaner.cc.
References DEFINE_FWK_MODULE, duplicateRemover_, pat::DuplicatedElectronRemover::duplicatesToRemove(), genericTrackCleaner_cfi::electrons, electronSrcToken_, edm::Event::getByToken(), mps_fire::i, eostools::move(), gen::n, pass_, edm::Event::put(), mps_fire::result, and try_.
|
private |
Definition at line 42 of file DuplicatedElectronCleaner.cc.
Referenced by produce().
|
private |
Definition at line 41 of file DuplicatedElectronCleaner.cc.
Referenced by produce().
|
mutableprivate |
Definition at line 43 of file DuplicatedElectronCleaner.cc.
Referenced by produce().
|
mutableprivate |
Definition at line 43 of file DuplicatedElectronCleaner.cc.
Referenced by produce().