8 unsigned int nsrc =
src.size();
9 std::vector<bool>
good(nsrc,
true);
10 for (
unsigned int i = 0;
i < nsrc; ++
i) {
17 for (
unsigned int j =
i + 1;
j < nsrc; ++
j) {
24 if (nSegments2 == 0 || nSegments1 == 0)
37 for (
unsigned int i = 0;
i < nsrc; ++
i) {
48 (mu1.reco::Muon::innerTrack().isNonnull() ? mu1.reco::Muon::innerTrack() == mu2.reco::Muon::innerTrack()
49 : mu1.reco::Muon::outerTrack() == mu2.reco::Muon::outerTrack());
69 return (nm1 != nm2 ? nm1 > nm2 : mu1.
pt() > mu2.
pt());
auto const good
min quality of good
double sharedFraction_
Fraction of shared segments.
double pt() const final
transverse momentum
bool isSameMuon(const pat::Muon &mu1, const pat::Muon &mu2) const
Methods.
bool isBetterMuon(const pat::Muon &mu1, bool mu1PF, const pat::Muon &mu2, bool mu2PF) const
StringCutObjectSelector< pat::Muon > passthrough_
Always-accept cut.
std::vector< bool > clean(const std::vector< pat::Muon > &muons) const
Return a vector of boolean marking the muons to be considered clean.
TAKEN FROM http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW/ElectroWeakAnalysis/Utilities/src/PdfWeig...
bool isNull() const
Checks for null.
int numberOfMatches(ArbitrationType type=SegmentAndTrackArbitration) const
get number of chambers with matched segments
int sharedSegments(const reco::Muon &muon1, const reco::Muon &muon2, unsigned int segmentArbitrationMask=reco::MuonSegmentMatch::BestInChamberByDR)
reco::TrackRef track() const override
reference to Track reconstructed in the tracker only (reimplemented from reco::Muon) ...
StringCutObjectSelector< pat::Muon > preselection_
Preselection cut.
const edm::Ptr< reco::Candidate > & originalObjectRef() const
reference to original object. Returns a null reference if not available
Analysis-level muon class.
bool isGlobalMuon() const override
~CMGMuonCleanerBySegmentsAlgo()
int charge() const final
electric charge