1 #ifndef RecoParticleFlow_PFProducer_PFMuonAlgo_h 2 #define RecoParticleFlow_PFProducer_PFMuonAlgo_h 197 bool operator()(
const MuonTrackTypePair& mu1,
const MuonTrackTypePair& mu2) {
216 return coll_->at(mu1).pt() > coll_->at(mu2).pt();
232 bool operator()(
const MuonTrackTypePair& mu1,
const MuonTrackTypePair& mu2) {
233 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)
double punchThroughMETFactor_
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
double minPunchThroughMomentum_
double minPunchThroughEnergy_
void addMissingMuons(edm::Handle< reco::MuonCollection >, reco::PFCandidateCollection *cands)
bool operator()(int mu1, int mu2)
static bool isMuon(const reco::PFBlockElement &elt)
double eventFactorCosmics_
static bool isTrackerLooseMuon(const reco::PFBlockElement &elt)
TrackQuality
track quality
void setParameters(const edm::ParameterSet &)
std::unique_ptr< reco::PFCandidateCollection > transferAddedMuonCandidates()
double eventFractionCleaning_
std::unique_ptr< reco::PFCandidateCollection > pfFakeMuonCleanedCandidates_
the collection of fake cleaned muon candidates
static bool isGlobalLooseMuon(const reco::PFBlockElement &elt)
std::unique_ptr< reco::PFCandidateCollection > transferCleanedTrackerAndGlobalCandidates()
bool cleanPunchThroughAndFakes(reco::PFCandidate &, reco::PFCandidateCollection *, unsigned int)
double metSigForCleaning_
std::vector< Vertex > VertexCollection
collection of Vertex objects
reco::Muon::MuonTrackTypePair MuonTrackTypePair
std::unique_ptr< reco::PFCandidateCollection > pfCleanedTrackerAndGlobalMuonCandidates_
the collection of tracker/global cleaned muon candidates
double eventFractionRejection_
static void printMuonProperties(const reco::MuonRef &muonRef)
double metSigForRejection_
double minPostCleaningPt_
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 > &)
virtual ~PFMuonAlgo()
destructor
double cosmicRejDistance_
std::vector< reco::Muon::MuonTrackTypePair > goodMuonTracks(const reco::MuonRef &muon, bool includeSA=false)
void estimateEventQuantities(const reco::PFCandidateCollection *)
void changeTrack(reco::PFCandidate &, const MuonTrackTypePair &)
double punchThroughFactor_
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)
double metFactorCleaning_
double metFactorRejection_
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
std::vector< unsigned int > maskedIndices_
reco::TrackBase::TrackQuality trackQuality_
static bool isLooseMuon(const reco::PFBlockElement &elt)
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
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)
void setInputsForCleaning(const reco::VertexCollection *)
std::vector< reco::Muon::MuonTrackTypePair > muonTracks(const reco::MuonRef &muon, bool includeSA=false, double dpt=1e+9)
Power< A, B >::type pow(const A &a, const B &b)
static bool isTrackerTightMuon(const reco::PFBlockElement &elt)
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()