1 #ifndef RecoParticleFlow_PFProducer_PFMuonAlgo_h 2 #define RecoParticleFlow_PFProducer_PFMuonAlgo_h 82 bool includeSA =
false);
192 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)
static int muAssocToTrack(const reco::TrackRef &trackref, const reco::MuonCollection &muons)
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()
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_
void setVetoes(const reco::PFCandidateCollection &vetoes)
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 > &)
static bool isGlobalTightMuon(const reco::PFBlockElement &elt)
std::vector< Muon > MuonCollection
collection of Muon objects
TrackMETComparator(double METX, double METY)
MuonTrackTypePair getTrackWithSmallestError(const std::vector< MuonTrackTypePair > &)
const double metFactorHighEta_
const double cosmicRejDistance_
const double minPostCleaningPt_
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
PFMuonAlgo(edm::ParameterSet const &, bool postMuonCleaning)
constructor
static void fillPSetDescription(edm::ParameterSetDescription &iDesc)
static bool isLooseMuon(const reco::PFBlockElement &elt)
const reco::PFCandidateCollection * vetoes_
static std::vector< reco::Muon::MuonTrackTypePair > muonTracks(const reco::MuonRef &muon, double maxDPtOPt=1e+9, bool includeSA=false)
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
std::vector< unsigned int > maskedIndices_
const reco::PFCandidateCollection * coll_
static bool hasValidTrack(const reco::MuonRef &muonRef, bool loose, double maxDPtOPt)
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)
const double eventFractionRejection_
const double errorCompScale_
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()