1 #ifndef RecoParticleFlow_PFProducer_PFMuonAlgo_h
2 #define RecoParticleFlow_PFProducer_PFMuonAlgo_h
211 return coll_->at(mu1).pt() >
coll_->at(mu2).pt();
228 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)
std::auto_ptr< reco::PFCandidateCollection > pfPunchThroughMuonCleanedCandidates_
the collection of punch-through cleaned muon candidates
static bool isTightMuonPOG(const reco::MuonRef &muonRef)
void removeDeadCandidates(reco::PFCandidateCollection *, const std::vector< unsigned int > &)
double minPunchThroughMomentum_
double minPunchThroughEnergy_
void addMissingMuons(edm::Handle< reco::MuonCollection >, reco::PFCandidateCollection *cands)
static bool hasValidTracks(const reco::MuonRef &)
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
std::auto_ptr< reco::PFCandidateCollection > & transferPunchThroughCleanedMuonCandidates()
std::auto_ptr< reco::PFCandidateCollection > & transferAddedMuonCandidates()
void setParameters(const edm::ParameterSet &)
double eventFractionCleaning_
static bool isGlobalLooseMuon(const reco::PFBlockElement &elt)
bool cleanPunchThroughAndFakes(reco::PFCandidate &, reco::PFCandidateCollection *, unsigned int)
double metSigForCleaning_
std::vector< Vertex > VertexCollection
collection of Vertex objects
reco::Muon::MuonTrackTypePair MuonTrackTypePair
bool operator()(MuonTrackTypePair mu1, MuonTrackTypePair mu2)
double eventFractionRejection_
static void printMuonProperties(const reco::MuonRef &muonRef)
bool operator()(MuonTrackTypePair mu1, MuonTrackTypePair mu2)
double metSigForRejection_
double minPostCleaningPt_
std::vector< MuonTrackTypePair > tracksPointingAtMET(const std::vector< MuonTrackTypePair > &)
std::auto_ptr< reco::PFCandidateCollection > pfFakeMuonCleanedCandidates_
the collection of fake cleaned muon candidates
static bool isGlobalTightMuon(const reco::PFBlockElement &elt)
std::auto_ptr< reco::PFCandidateCollection > pfAddedMuonCandidates_
the collection of added muon candidates
TrackMETComparator(double METX, double METY)
MuonTrackTypePair getTrackWithSmallestError(const std::vector< MuonTrackTypePair > &)
std::auto_ptr< reco::PFCandidateCollection > & transferPunchThroughCleanedHadronCandidates()
std::auto_ptr< reco::PFCandidateCollection > pfCosmicsMuonCleanedCandidates_
the collection of cosmics cleaned muon candidates
virtual ~PFMuonAlgo()
destructor
std::auto_ptr< reco::PFCandidateCollection > pfCleanedTrackerAndGlobalMuonCandidates_
the collection of tracker/global cleaned muon candidates
double cosmicRejDistance_
std::auto_ptr< reco::PFCandidateCollection > & transferCleanedTrackerAndGlobalCandidates()
std::vector< reco::Muon::MuonTrackTypePair > goodMuonTracks(const reco::MuonRef &muon, bool includeSA=false)
std::auto_ptr< reco::PFCandidateCollection > pfPunchThroughHadronCleanedCandidates_
the collection of punch-through cleaned neutral hadron candidates
void estimateEventQuantities(const reco::PFCandidateCollection *)
void changeTrack(reco::PFCandidate &, const MuonTrackTypePair &)
double punchThroughFactor_
std::auto_ptr< reco::PFCandidateCollection > & transferCleanedCosmicCandidates()
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_
std::auto_ptr< reco::PFCandidateCollection > & transferCleanedFakeCandidates()
static bool isLooseMuon(const reco::PFBlockElement &elt)
std::pair< double, double > getMinMaxMET2(const reco::PFCandidate &)
Particle reconstructed by the particle flow algorithm.
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::vector< MuonTrackTypePair > tracksWithBetterMET(const std::vector< MuonTrackTypePair > &, const reco::PFCandidate &)
void postClean(reco::PFCandidateCollection *)
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)
bool reconstructMuon(reco::PFCandidate &, const reco::MuonRef &, bool allowLoose=false)