Removes duplicates from a muon collection using segment references. More...
Public Member Functions | |
bool | isBetterMuon (const T &mu1, const T &mu2) const |
bool | isSameMuon (const T &mu1, const T &mu2) const |
template<> | |
bool | isSameMuon (const pat::Muon &mu1, const pat::Muon &mu2) const |
template<> | |
bool | isSameMuon (const pat::Muon &mu1, const pat::Muon &mu2) const |
MuonCleanerBySegmentsT (const edm::ParameterSet &iConfig) | |
void | produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override |
~MuonCleanerBySegmentsT () override | |
Public Member Functions inherited from edm::EDProducer | |
EDProducer () | |
ModuleDescription const & | moduleDescription () const |
~EDProducer () override | |
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 () | |
std::vector< edm::ProductResolverIndex > const & | putTokenIndexToProductResolverIndex () const |
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, ModuleToResolverIndicies 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 Types | |
typedef std::pair< const reco::Muon *, const reco::Muon * > | MuonPointerPair |
Cut on the pair of objects together. More... | |
Private Attributes | |
StringCutObjectSelector< MuonPointerPair, true > | bestMuonSelector_ |
bool | defaultBestMuon_ |
Use default criteria to choose the best muon. More... | |
StringCutObjectSelector< T > | passthrough_ |
Always-accept cut. More... | |
StringCutObjectSelector< T > | preselection_ |
Preselection cut. More... | |
double | sharedFraction_ |
Fraction of shared segments. More... | |
edm::EDGetTokenT< edm::View< T > > | srcToken_ |
Tokens for input collections. More... | |
Additional Inherited Members | |
Public Types inherited from edm::EDProducer | |
typedef EDProducer | ModuleType |
Public Types inherited from edm::ProducerBase | |
using | ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >> |
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
Public Types inherited from edm::EDConsumerBase | |
typedef ProductLabels | Labels |
Static Public Member Functions inherited from edm::EDProducer | |
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) |
Removes duplicates from a muon collection using segment references.
This module removes duplicates from a muon collection using segment references.
All muons that don't pass the preselection are discarded first
Then, for each pair of muons that share at least a given fraction of segments, the worse one is flagged as ghost.
Finally, all muons that are not flagged as ghosts, or which pass a 'passthrough' selection, are saved in the output.
Definition at line 40 of file MuonCleanerBySegments.cc.
|
private |
Cut on the pair of objects together.
Definition at line 69 of file MuonCleanerBySegments.cc.
|
explicit |
Definition at line 79 of file MuonCleanerBySegments.cc.
|
inlineoverride |
Definition at line 43 of file MuonCleanerBySegments.cc.
References iEvent, and modules::MuonCleanerBySegmentsT< T >::produce().
bool modules::MuonCleanerBySegmentsT< T >::isBetterMuon | ( | const T & | mu1, |
const T & | mu2 | ||
) | const |
Definition at line 134 of file MuonCleanerBySegments.cc.
References modules::MuonCleanerBySegmentsT< T >::bestMuonSelector_, modules::MuonCleanerBySegmentsT< T >::defaultBestMuon_, reco::deltaR2(), and reco::Muon::SegmentArbitration.
Referenced by modules::MuonCleanerBySegmentsT< T >::isSameMuon(), and modules::MuonCleanerBySegmentsT< T >::produce().
|
inline |
Definition at line 47 of file MuonCleanerBySegments.cc.
References modules::MuonCleanerBySegmentsT< T >::isBetterMuon().
Referenced by modules::MuonCleanerBySegmentsT< T >::produce().
bool modules::MuonCleanerBySegmentsT< pat::Muon >::isSameMuon | ( | const pat::Muon & | mu1, |
const pat::Muon & | mu2 | ||
) | const |
bool modules::MuonCleanerBySegmentsT< pat::Muon >::isSameMuon | ( | const pat::Muon & | mu1, |
const pat::Muon & | mu2 | ||
) | const |
Definition at line 154 of file MuonCleanerBySegments.cc.
References pat::PATObject< ObjectType >::originalObjectRef().
|
override |
Definition at line 93 of file MuonCleanerBySegments.cc.
References edm::Event::getByToken(), mps_fire::i, modules::MuonCleanerBySegmentsT< T >::isBetterMuon(), modules::MuonCleanerBySegmentsT< T >::isSameMuon(), eostools::move(), MillePedeFileConverter_cfg::out, modules::MuonCleanerBySegmentsT< T >::passthrough_, modules::MuonCleanerBySegmentsT< T >::preselection_, edm::Event::put(), reco::Muon::SegmentArbitration, modules::MuonCleanerBySegmentsT< T >::sharedFraction_, muon::sharedSegments(), TrackRefitter_38T_cff::src, and modules::MuonCleanerBySegmentsT< T >::srcToken_.
Referenced by modules::MuonCleanerBySegmentsT< T >::~MuonCleanerBySegmentsT().
|
private |
Definition at line 70 of file MuonCleanerBySegments.cc.
Referenced by modules::MuonCleanerBySegmentsT< T >::isBetterMuon().
|
private |
Use default criteria to choose the best muon.
Definition at line 67 of file MuonCleanerBySegments.cc.
Referenced by modules::MuonCleanerBySegmentsT< T >::isBetterMuon().
|
private |
Always-accept cut.
Definition at line 61 of file MuonCleanerBySegments.cc.
Referenced by modules::MuonCleanerBySegmentsT< T >::produce().
|
private |
Preselection cut.
Definition at line 59 of file MuonCleanerBySegments.cc.
Referenced by modules::MuonCleanerBySegmentsT< T >::produce().
|
private |
Fraction of shared segments.
Definition at line 64 of file MuonCleanerBySegments.cc.
Referenced by modules::MuonCleanerBySegmentsT< T >::produce().
|
private |
Tokens for input collections.
Definition at line 56 of file MuonCleanerBySegments.cc.
Referenced by modules::MuonCleanerBySegmentsT< T >::produce().