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) | |
virtual void | produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override |
virtual | ~MuonCleanerBySegmentsT () |
Public Member Functions inherited from edm::EDProducer | |
EDProducer () | |
ModuleDescription const & | moduleDescription () const |
virtual | ~EDProducer () |
Public Member Functions inherited from edm::ProducerBase | |
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
ProducerBase () | |
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
std::function< void(BranchDescription const &)> | registrationCallback () const |
used by the fwk to register list of products More... | |
virtual | ~ProducerBase () |
Public Member Functions inherited from edm::EDConsumerBase | |
std::vector< ConsumesInfo > | consumesInfo () const |
EDConsumerBase () | |
ProductHolderIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
void | itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const |
void | itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const |
std::vector < ProductHolderIndexAndSkipBit > const & | itemsToGetFromEvent () const |
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
void | modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const |
void | modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
bool | registeredToConsume (ProductHolderIndex, bool, BranchType) const |
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
void | updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &) |
virtual | ~EDConsumerBase () |
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 | |
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.
|
inlinevirtual |
Definition at line 43 of file MuonCleanerBySegments.cc.
bool modules::MuonCleanerBySegmentsT< T >::isBetterMuon | ( | const T & | mu1, |
const T & | mu2 | ||
) | const |
Definition at line 134 of file MuonCleanerBySegments.cc.
References reco::deltaR2(), and reco::Muon::SegmentArbitration.
|
inline |
Definition at line 47 of file MuonCleanerBySegments.cc.
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().
|
overridevirtual |
Implements edm::EDProducer.
Definition at line 93 of file MuonCleanerBySegments.cc.
References edm::Event::getByToken(), i, j, GenerateHcalLaserBadRunList::out, edm::Event::put(), reco::Muon::SegmentArbitration, muon::sharedSegments(), and alcazmumu_cfi::src.
|
private |
Definition at line 70 of file MuonCleanerBySegments.cc.
|
private |
Use default criteria to choose the best muon.
Definition at line 67 of file MuonCleanerBySegments.cc.
|
private |
Always-accept cut.
Definition at line 61 of file MuonCleanerBySegments.cc.
|
private |
Preselection cut.
Definition at line 59 of file MuonCleanerBySegments.cc.
|
private |
Fraction of shared segments.
Definition at line 64 of file MuonCleanerBySegments.cc.
|
private |
Tokens for input collections.
Definition at line 56 of file MuonCleanerBySegments.cc.