1 #ifndef RecoTauTag_RecoTau_RecoTauQualityCuts_h
2 #define RecoTauTag_RecoTau_RecoTauQualityCuts_h
22 #include <boost/function.hpp>
23 #include <boost/foreach.hpp>
31 namespace reco {
namespace tau {
36 typedef boost::function<bool (const PFCandidate&)>
QCutFunc;
38 typedef std::map<PFCandidate::ParticleType, QCutFuncCollection>
QCutFuncMap;
61 template<
typename PFCandRefType>
66 const Coll& refcoll,
bool invert=
false)
const {
70 output.push_back(cand);
Coll filterRefs(const Coll &refcoll, bool invert=false) const
Filter a ref vector of PFCandidates.
RecoTauQualityCuts(const edm::ParameterSet &qcuts)
boost::function< bool(const PFCandidate &)> QCutFunc
reco::TrackBaseRef leadTrack_
bool filterRef(const PFCandRefType &cand) const
Filter a PFCandidate held by a smart pointer or Ref.
bool filter(const reco::PFCandidate &cand) const
Filter a single PFCandidate.
void setLeadTrack(const reco::PFCandidate &leadCand) const
Update the leading track.
void setPV(const reco::VertexRef &vtx) const
Update the primary vertex.
const QCutFunc & predicate() const
Get the predicate used to filter.
std::map< PFCandidate::ParticleType, QCutFuncCollection > QCutFuncMap
std::pair< edm::ParameterSet, edm::ParameterSet > factorizePUQCuts(const edm::ParameterSet &inputSet)
Container::value_type value_type
Particle reconstructed by the particle flow algorithm.
std::vector< QCutFunc > QCutFuncCollection