1 #ifndef RecoParticleFlow_PFProducer_PFMuonAlgo_h 2 #define RecoParticleFlow_PFProducer_PFMuonAlgo_h 169 bool operator()(
const MuonTrackTypePair& mu1,
const MuonTrackTypePair& mu2) {
188 return coll_->at(mu1).pt() > coll_->at(mu2).pt();
204 bool operator()(
const MuonTrackTypePair& mu1,
const MuonTrackTypePair& mu2) {
205 return mu1.first->ptError()/mu1.first->pt() < mu2.first->ptError()/mu2.first->pt();
Abstract base class for a PFBlock element (track, cluster...)
static bool isIsolatedMuon(const reco::PFBlockElement &elt)
bool cleanMismeasured(reco::PFCandidate &, unsigned int)
static bool isTightMuonPOG(const reco::MuonRef &muonRef)
void removeDeadCandidates(reco::PFCandidateCollection *, const std::vector< unsigned int > &)
std::unique_ptr< reco::PFCandidateCollection > pfPunchThroughMuonCleanedCandidates_
the collection of punch-through cleaned muon candidates
void addMissingMuons(edm::Handle< reco::MuonCollection >, reco::PFCandidateCollection *cands)
bool operator()(int mu1, int mu2)
static bool isMuon(const reco::PFBlockElement &elt)
const double minPunchThroughEnergy_
static bool isTrackerLooseMuon(const reco::PFBlockElement &elt)
const double metFactorRejection_
TrackQuality
track quality
std::unique_ptr< reco::PFCandidateCollection > transferAddedMuonCandidates()
PFMuonAlgo(edm::ParameterSet const &)
constructor
std::unique_ptr< reco::PFCandidateCollection > pfFakeMuonCleanedCandidates_
the collection of fake cleaned muon candidates
static bool isGlobalLooseMuon(const reco::PFBlockElement &elt)
const double minPunchThroughMomentum_
std::unique_ptr< reco::PFCandidateCollection > transferCleanedTrackerAndGlobalCandidates()
bool cleanPunchThroughAndFakes(reco::PFCandidate &, reco::PFCandidateCollection *, unsigned int)
void setInputsForCleaning(reco::VertexCollection const &)
std::vector< Vertex > VertexCollection
collection of Vertex objects
reco::Muon::MuonTrackTypePair MuonTrackTypePair
const double punchThroughFactor_
std::unique_ptr< reco::PFCandidateCollection > pfCleanedTrackerAndGlobalMuonCandidates_
the collection of tracker/global cleaned muon candidates
const double metFactorCleaning_
static void printMuonProperties(const reco::MuonRef &muonRef)
std::vector< MuonTrackTypePair > tracksPointingAtMET(const std::vector< MuonTrackTypePair > &)
bool hasValidTrack(const reco::MuonRef &muonRef, bool loose=false)
static bool isGlobalTightMuon(const reco::PFBlockElement &elt)
TrackMETComparator(double METX, double METY)
MuonTrackTypePair getTrackWithSmallestError(const std::vector< MuonTrackTypePair > &)
const int minTrackerHits_
const double metFactorHighEta_
const double cosmicRejDistance_
const double minPostCleaningPt_
std::vector< reco::Muon::MuonTrackTypePair > goodMuonTracks(const reco::MuonRef &muon, bool includeSA=false)
void estimateEventQuantities(const reco::PFCandidateCollection *)
const double ptFactorHighEta_
void changeTrack(reco::PFCandidate &, const MuonTrackTypePair &)
const double eventFractionCleaning_
std::unique_ptr< reco::PFCandidateCollection > pfAddedMuonCandidates_
the collection of added muon candidates
bool operator()(const MuonTrackTypePair &mu1, const MuonTrackTypePair &mu2)
IndexPtComparator(const reco::PFCandidateCollection *coll)
const double metFactorFake_
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
std::vector< unsigned int > maskedIndices_
static bool isLooseMuon(const reco::PFBlockElement &elt)
const double eventFactorCosmics_
std::pair< double, double > getMinMaxMET2(const reco::PFCandidate &)
std::unique_ptr< reco::PFCandidateCollection > transferCleanedCosmicCandidates()
Particle reconstructed by the particle flow algorithm.
std::unique_ptr< reco::PFCandidateCollection > transferCleanedFakeCandidates()
reco::Muon::MuonTrackType MuonTrackType
const reco::PFCandidateCollection * coll_
const reco::VertexCollection * vertices_
MuonTrackType
map for Global Muon refitters
const double punchThroughMETFactor_
std::pair< TrackRef, Muon::MuonTrackType > MuonTrackTypePair
std::unique_ptr< reco::PFCandidateCollection > pfCosmicsMuonCleanedCandidates_
the collection of cosmics cleaned muon candidates
std::vector< MuonTrackTypePair > tracksWithBetterMET(const std::vector< MuonTrackTypePair > &, const reco::PFCandidate &)
void postClean(reco::PFCandidateCollection *)
std::unique_ptr< reco::PFCandidateCollection > transferPunchThroughCleanedHadronCandidates()
bool operator()(const MuonTrackTypePair &mu1, const MuonTrackTypePair &mu2)
std::vector< reco::Muon::MuonTrackTypePair > muonTracks(const reco::MuonRef &muon, bool includeSA=false, double dpt=1e+9)
const double eventFractionRejection_
const double errorCompScale_
Power< A, B >::type pow(const A &a, const B &b)
const double metSigForCleaning_
static bool isTrackerTightMuon(const reco::PFBlockElement &elt)
const reco::TrackBase::TrackQuality trackQuality_
const double metSigForRejection_
std::unique_ptr< reco::PFCandidateCollection > pfPunchThroughHadronCleanedCandidates_
the collection of punch-through cleaned neutral hadron candidates
bool reconstructMuon(reco::PFCandidate &, const reco::MuonRef &, bool allowLoose=false)
std::unique_ptr< reco::PFCandidateCollection > transferPunchThroughCleanedMuonCandidates()