5 #include <boost/bind.hpp>
13 return cand.
pt() >
cut;
17 return cand.
et() >
cut;
23 if (!trk)
return false;
24 return trk->hitPattern().numberOfValidPixelHits() >=
cut;
29 if (!trk)
return false;
30 return trk->hitPattern().numberOfValidHits() >=
cut;
37 edm::LogError(
"QCutsNoPrimaryVertex") <<
"Primary vertex Ref in " <<
38 "RecoTauQualityCuts is invalid. - trkTransverseImpactParameter";
42 if (!trk)
return false;
43 return std::abs(trk->dxy((*pv)->position())) <=
cut;
50 edm::LogError(
"QCutsNoPrimaryVertex") <<
"Primary vertex Ref in " <<
51 "RecoTauQualityCuts is invalid. - trkLongitudinalImpactParameter";
55 if (!trk)
return false;
61 if (!trk)
return false;
62 return trk->normalizedChi2() <=
cut;
79 RecoTauQualityCuts::QCutFuncMap::const_iterator cuts =
82 if (cuts == funcMap.end())
86 return AND(cand, cuts->second);
98 if (qcuts.
exists(
"minTrackPt"))
99 chargedHadronCuts.push_back(
103 if (qcuts.
exists(
"maxTrackChi2"))
104 chargedHadronCuts.push_back(
108 if (qcuts.
exists(
"minTrackPixelHits"))
109 chargedHadronCuts.push_back(boost::bind(
113 if (qcuts.
exists(
"minTrackHits"))
114 chargedHadronCuts.push_back(boost::bind(
120 if (qcuts.
exists(
"maxTransverseImpactParameter"))
121 chargedHadronCuts.push_back(boost::bind(
123 qcuts.
getParameter<
double>(
"maxTransverseImpactParameter")));
125 if (qcuts.
exists(
"maxDeltaZ"))
126 chargedHadronCuts.push_back(boost::bind(
131 if (qcuts.
exists(
"minGammaEt"))
132 gammaCuts.push_back(boost::bind(
136 if (qcuts.
exists(
"minNeutralHadronEt"))
137 neutralHadronCuts.push_back(boost::bind(
bool ptMin(const PFCandidate &cand, double cut)
T getParameter(std::string const &) const
bool AND(const PFCandidate &cand, const RecoTauQualityCuts::QCutFuncCollection &cuts)
bool trkChi2(const PFCandidate &cand, double cut)
RecoTauQualityCuts(const edm::ParameterSet &qcuts)
virtual double et() const
transverse energy
boost::function< bool(const PFCandidate &)> QCutFunc
bool exists(std::string const ¶meterName) const
checks if a parameter exists
bool isNull() const
Checks for null.
bool trkPixelHits(const PFCandidate &cand, int cut)
std::map< PFCandidate::ParticleType, QCutFuncCollection > QCutFuncMap
bool mapAndCutByType(const PFCandidate &cand, const RecoTauQualityCuts::QCutFuncMap &funcMap)
bool trkLongitudinalImpactParameter(const PFCandidate &cand, const reco::VertexRef *pv, double cut)
bool etMin(const PFCandidate &cand, double cut)
bool trkTransverseImpactParameter(const PFCandidate &cand, const reco::VertexRef *pv, double cut)
virtual double pt() const
transverse momentum
Particle reconstructed by the particle flow algorithm.
bool trkTrackerHits(const PFCandidate &cand, int cut)
virtual ParticleType particleId() const
std::vector< QCutFunc > QCutFuncCollection
reco::TrackRef trackRef() const