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