CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
reco::tau::RecoTauQualityCuts Class Reference

#include <RecoTauQualityCuts.h>

Public Types

typedef std::function< bool(const Candidate &)> CandQCutFunc
 
typedef std::vector< CandQCutFuncCandQCutFuncCollection
 
typedef std::map< int, CandQCutFuncCollectionCandQCutFuncMap
 
typedef std::function< bool(const TrackBaseRef &)> TrackQCutFunc
 
typedef std::vector< TrackQCutFuncTrackQCutFuncCollection
 

Public Member Functions

bool filterCand (const reco::Candidate &cand) const
 Filter a single Candidate. More...
 
template<typename CandRefType >
bool filterCandRef (const CandRefType &cand) const
 Filter a Candidate held by a smart pointer or Ref. More...
 
template<typename Coll >
Coll filterCandRefs (const Coll &refcoll, bool invert=false) const
 Filter a ref vector of Candidates. More...
 
bool filterChargedCand (const reco::Candidate &cand) const
 or a single charged candidate More...
 
bool filterTrack (const reco::TrackBaseRef &track) const
 Filter a single Track. More...
 
bool filterTrack (const reco::TrackRef &track) const
 
bool filterTrack (const reco::Track &track) const
 
template<typename Coll >
Coll filterTracks (const Coll &coll, bool invert=false) const
 Filter a collection of Tracks. More...
 
 RecoTauQualityCuts (const edm::ParameterSet &qcuts)
 
void setLeadTrack (const reco::Track &leadTrack)
 Update the leading track. More...
 
void setLeadTrack (const reco::Candidate &leadCand)
 
void setLeadTrack (const reco::CandidateRef &leadCand)
 
void setPV (const reco::VertexRef &vtx)
 Update the primary vertex. More...
 

Static Public Member Functions

static void fillDescriptions (edm::ParameterSetDescription &descriptions)
 Declare all parameters read from python config file. More...
 

Private Member Functions

bool filterCandByType (const reco::Candidate &cand) const
 
bool filterGammaCand (const reco::Candidate &cand) const
 
bool filterNeutralHadronCand (const reco::Candidate &cand) const
 
bool filterTrack_ (const reco::Track *track) const
 

Private Attributes

bool checkHitPattern_
 
bool checkPV_
 
const reco::TrackleadTrack_
 
double maxDeltaZ_
 
double maxDeltaZToLeadTrack_
 
double maxTrackChi2_
 
double maxTransverseImpactParameter_
 
double minGammaEt_
 
double minNeutralHadronEt_
 
int minTrackHits_
 
int minTrackPixelHits_
 
double minTrackPt_
 
double minTrackVertexWeight_
 
reco::VertexRef pv_
 

Detailed Description

Definition at line 35 of file RecoTauQualityCuts.h.

Member Typedef Documentation

◆ CandQCutFunc

typedef std::function<bool(const Candidate&)> reco::tau::RecoTauQualityCuts::CandQCutFunc

Definition at line 40 of file RecoTauQualityCuts.h.

◆ CandQCutFuncCollection

Definition at line 41 of file RecoTauQualityCuts.h.

◆ CandQCutFuncMap

Definition at line 42 of file RecoTauQualityCuts.h.

◆ TrackQCutFunc

typedef std::function<bool(const TrackBaseRef&)> reco::tau::RecoTauQualityCuts::TrackQCutFunc

Definition at line 38 of file RecoTauQualityCuts.h.

◆ TrackQCutFuncCollection

Definition at line 39 of file RecoTauQualityCuts.h.

Constructor & Destructor Documentation

◆ RecoTauQualityCuts()

reco::tau::RecoTauQualityCuts::RecoTauQualityCuts ( const edm::ParameterSet qcuts)
explicit

Definition at line 79 of file RecoTauQualityCuts.cc.

References checkHitPattern_, checkPV_, Exception, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterNames(), maxDeltaZ_, maxDeltaZToLeadTrack_, maxTrackChi2_, maxTransverseImpactParameter_, minGammaEt_, minNeutralHadronEt_, minTrackHits_, minTrackPixelHits_, minTrackPt_, minTrackVertexWeight_, Skims_PA_cff::name, fileinputsource_cfi::option, and AlCaHLTBitMon_QueryRunRegistry::string.

79  {
80  // Setup all of our predicates
81  CandQCutFuncCollection chargedHadronCuts;
82  CandQCutFuncCollection gammaCuts;
83  CandQCutFuncCollection neutralHadronCuts;
84 
85  // Make sure there are no extra passed options
86  std::set<std::string> passedOptionSet;
87  std::vector<std::string> passedOptions = qcuts.getParameterNames();
88 
89  for (auto const& option : passedOptions) {
90  passedOptionSet.insert(option);
91  }
92 
93  unsigned int nCuts = 0;
94  auto getDouble = [&qcuts, &passedOptionSet, &nCuts](const std::string& name) {
95  if (qcuts.exists(name)) {
96  ++nCuts;
97  passedOptionSet.erase(name);
98  return qcuts.getParameter<double>(name);
99  }
100  return -1.0;
101  };
102  auto getUint = [&qcuts, &passedOptionSet, &nCuts](const std::string& name) -> unsigned int {
103  if (qcuts.exists(name)) {
104  ++nCuts;
105  passedOptionSet.erase(name);
106  return qcuts.getParameter<unsigned int>(name);
107  }
108  return 0;
109  };
110 
111  // Build all the QCuts for tracks
112  minTrackPt_ = getDouble("minTrackPt");
113  maxTrackChi2_ = getDouble("maxTrackChi2");
114  minTrackPixelHits_ = getUint("minTrackPixelHits");
115  minTrackHits_ = getUint("minTrackHits");
116  maxTransverseImpactParameter_ = getDouble("maxTransverseImpactParameter");
117  maxDeltaZ_ = getDouble("maxDeltaZ");
118  maxDeltaZToLeadTrack_ = getDouble("maxDeltaZToLeadTrack");
119  // Require tracks to contribute a minimum weight to the associated vertex.
120  minTrackVertexWeight_ = getDouble("minTrackVertexWeight");
121 
122  // Use bit-wise & to avoid conditional code
125  (minTrackVertexWeight_ >= 0);
126 
127  // Build the QCuts for gammas
128  minGammaEt_ = getDouble("minGammaEt");
129 
130  // Build QCuts for netural hadrons
131  minNeutralHadronEt_ = getDouble("minNeutralHadronEt");
132 
133  // Check if there are any remaining unparsed QCuts
134  if (!passedOptionSet.empty()) {
135  std::string unParsedOptions;
136  bool thereIsABadParameter = false;
137  for (auto const& option : passedOptionSet) {
138  // Workaround for HLT - TODO FIXME
139  if (option == "useTracksInsteadOfPFHadrons") {
140  // Crash if true - no one should have this option enabled.
141  if (qcuts.getParameter<bool>("useTracksInsteadOfPFHadrons")) {
142  throw cms::Exception("DontUseTracksInQcuts") << "The obsolete exception useTracksInsteadOfPFHadrons "
143  << "is set to true in the quality cut config." << std::endl;
144  }
145  continue;
146  }
147 
148  // If we get to this point, there is a real unknown parameter
149  thereIsABadParameter = true;
150 
151  unParsedOptions += option;
152  unParsedOptions += "\n";
153  }
154  if (thereIsABadParameter) {
155  throw cms::Exception("BadQualityCutConfig") << " The PSet passed to the RecoTauQualityCuts class had"
156  << " the following unrecognized options: " << std::endl
157  << unParsedOptions;
158  }
159  }
160 
161  // Make sure there are at least some quality cuts
162  if (!nCuts) {
163  throw cms::Exception("BadQualityCutConfig") << " No options were passed to the quality cut class!" << std::endl;
164  }
165  }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
bool exists(std::string const &parameterName) const
checks if a parameter exists
std::vector< CandQCutFunc > CandQCutFuncCollection
std::vector< std::string > getParameterNames() const

Member Function Documentation

◆ fillDescriptions()

void reco::tau::RecoTauQualityCuts::fillDescriptions ( edm::ParameterSetDescription descriptions)
static

Declare all parameters read from python config file.

Definition at line 346 of file RecoTauQualityCuts.cc.

References edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addOptional(), HLT_2022v15_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by PFRecoTauDiscriminationByNProngs::fillDescriptions(), RecoTauPiZeroProducer::fillDescriptions(), RecoTauProducer::fillDescriptions(), PFRecoTauChargedHadronProducer::fillDescriptions(), PFRecoTauDiscriminationByIsolation::fillDescriptions(), PFRecoTauDiscriminationByIsolationContainer::fillDescriptions(), and PFTauPrimaryVertexProducerBase::getDescriptionsBase().

346  {
347  edm::ParameterSetDescription desc_signalQualityCuts;
348  desc_signalQualityCuts.add<double>("minTrackPt", 0.5);
349  desc_signalQualityCuts.add<double>("maxTrackChi2", 100.0);
350  desc_signalQualityCuts.add<double>("maxTransverseImpactParameter", 0.1);
351  desc_signalQualityCuts.add<double>("maxDeltaZ", 0.4);
352  desc_signalQualityCuts.add<double>("maxDeltaZToLeadTrack", -1.0); // by default disabled
353  desc_signalQualityCuts.add<double>("minTrackVertexWeight", -1.0); // by default disabled
354  desc_signalQualityCuts.add<unsigned int>("minTrackPixelHits", 0);
355  desc_signalQualityCuts.add<unsigned int>("minTrackHits", 3);
356  desc_signalQualityCuts.add<double>("minGammaEt", 1.0);
357  desc_signalQualityCuts.addOptional<bool>("useTracksInsteadOfPFHadrons");
358  desc_signalQualityCuts.add<double>("minNeutralHadronEt", 30.0);
359 
360  edm::ParameterSetDescription desc_isolationQualityCuts;
361  desc_isolationQualityCuts.add<double>("minTrackPt", 1.0);
362  desc_isolationQualityCuts.add<double>("maxTrackChi2", 100.0);
363  desc_isolationQualityCuts.add<double>("maxTransverseImpactParameter", 0.03);
364  desc_isolationQualityCuts.add<double>("maxDeltaZ", 0.2);
365  desc_isolationQualityCuts.add<double>("maxDeltaZToLeadTrack", -1.0); // by default disabled
366  desc_isolationQualityCuts.add<double>("minTrackVertexWeight", -1.0); // by default disabled
367  desc_isolationQualityCuts.add<unsigned int>("minTrackPixelHits", 0);
368  desc_isolationQualityCuts.add<unsigned int>("minTrackHits", 8);
369  desc_isolationQualityCuts.add<double>("minGammaEt", 1.5);
370  desc_isolationQualityCuts.addOptional<bool>("useTracksInsteadOfPFHadrons");
371 
372  edm::ParameterSetDescription desc_vxAssocQualityCuts;
373  desc_vxAssocQualityCuts.add<double>("minTrackPt", 0.5);
374  desc_vxAssocQualityCuts.add<double>("maxTrackChi2", 100.0);
375  desc_vxAssocQualityCuts.add<double>("maxTransverseImpactParameter", 0.1);
376  desc_vxAssocQualityCuts.add<double>("minTrackVertexWeight", -1.0);
377  desc_vxAssocQualityCuts.add<unsigned int>("minTrackPixelHits", 0);
378  desc_vxAssocQualityCuts.add<unsigned int>("minTrackHits", 3);
379  desc_vxAssocQualityCuts.add<double>("minGammaEt", 1.0);
380  desc_vxAssocQualityCuts.addOptional<bool>("useTracksInsteadOfPFHadrons");
381 
382  desc_qualityCuts.add<edm::ParameterSetDescription>("signalQualityCuts", desc_signalQualityCuts);
383  desc_qualityCuts.add<edm::ParameterSetDescription>("isolationQualityCuts", desc_isolationQualityCuts);
384  desc_qualityCuts.add<edm::ParameterSetDescription>("vxAssocQualityCuts", desc_vxAssocQualityCuts);
385  desc_qualityCuts.add<edm::InputTag>("primaryVertexSrc", edm::InputTag("offlinePrimaryVertices"));
386  desc_qualityCuts.add<std::string>("pvFindingAlgo", "closestInDeltaZ");
387  desc_qualityCuts.add<bool>("vertexTrackFiltering", false);
388  desc_qualityCuts.add<bool>("recoverLeadingTrk", false);
389  desc_qualityCuts.add<std::string>("leadingTrkOrPFCandOption", "leadPFCand");
390  }
ParameterDescriptionBase * addOptional(U const &iLabel, T const &value)
ParameterDescriptionBase * add(U const &iLabel, T const &value)

◆ filterCand()

bool reco::tau::RecoTauQualityCuts::filterCand ( const reco::Candidate cand) const

Filter a single Candidate.

Definition at line 312 of file RecoTauQualityCuts.cc.

References filterCandByType(), filterChargedCand(), filterTrack(), and mps_fire::result.

Referenced by filterCandRef().

312  {
313  auto trackRef = getTrackRef(cand);
314  bool result = true;
315 
316  if (trackRef.isNonnull()) {
317  result = filterTrack(trackRef);
318  } else {
319  auto gsfTrackRef = getGsfTrackRef(cand);
320  if (gsfTrackRef.isNonnull())
321  result = filterTrack(gsfTrackRef);
322  else if (cand.charge() != 0) {
324  }
325  }
326 
327  if (result)
329 
330  return result;
331  }
bool filterCandByType(const reco::Candidate &cand) const
bool filterTrack(const reco::TrackBaseRef &track) const
Filter a single Track.
bool filterChargedCand(const reco::Candidate &cand) const
or a single charged candidate

◆ filterCandByType()

bool reco::tau::RecoTauQualityCuts::filterCandByType ( const reco::Candidate cand) const
private

Definition at line 293 of file RecoTauQualityCuts.cc.

References funct::abs(), filterGammaCand(), and filterNeutralHadronCand().

Referenced by filterCand().

293  {
294  switch (std::abs(cand.pdgId())) {
295  case 22:
296  return filterGammaCand(cand);
297  case 130:
299  // We use the same qcuts for muons/electrons and charged hadrons.
300  case 211:
301  case 11:
302  case 13:
303  // no cuts ATM (track cuts applied in filterCand)
304  return true;
305  // Return false if we dont' know how to deal with this particle type
306  default:
307  return false;
308  };
309  return false;
310  }
bool filterGammaCand(const reco::Candidate &cand) const
bool filterNeutralHadronCand(const reco::Candidate &cand) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

◆ filterCandRef()

template<typename CandRefType >
bool reco::tau::RecoTauQualityCuts::filterCandRef ( const CandRefType &  cand) const
inline

Filter a Candidate held by a smart pointer or Ref.

Definition at line 80 of file RecoTauQualityCuts.h.

References filterCand().

Referenced by filterCandRefs().

80  {
81  return filterCand(*cand);
82  }
bool filterCand(const reco::Candidate &cand) const
Filter a single Candidate.

◆ filterCandRefs()

template<typename Coll >
Coll reco::tau::RecoTauQualityCuts::filterCandRefs ( const Coll &  refcoll,
bool  invert = false 
) const
inline

◆ filterChargedCand()

bool reco::tau::RecoTauQualityCuts::filterChargedCand ( const reco::Candidate cand) const

or a single charged candidate

Definition at line 237 of file RecoTauQualityCuts.cc.

References checkPV_, pat::PackedCandidate::dxy(), reco::TrackBase::dz(), pat::PackedCandidate::dz(), filterTrack(), getTrack(), edm::Ref< C, T, F >::isNull(), leadTrack_, maxDeltaZ_, maxDeltaZToLeadTrack_, maxTransverseImpactParameter_, reco::tau::qcuts::minPackedCandVertexWeight(), minTrackPt_, minTrackVertexWeight_, pat::PackedCandidate::pt(), pv_, and HLT_2022v15_cff::track.

Referenced by filterCand().

237  {
238  if (cand.charge() == 0)
239  return true;
240  const pat::PackedCandidate* pCand = dynamic_cast<const pat::PackedCandidate*>(&cand);
241  if (pCand == nullptr)
242  return true;
243 
244  //Get track, it should be present for cands with pT(charged)>0.5GeV
245  //and check track quality critera other than vertex weight
246  auto track = getTrack(cand);
247  if (track != nullptr) {
248  if (!filterTrack(*track))
249  return false;
250  } else { //Candidates without track (pT(charged)<0.5GeV): Can still check pT and calculate dxy and dz
251  if (minTrackPt_ >= 0 && !(pCand->pt() > minTrackPt_))
252  return false;
253  if (checkPV_ && pv_.isNull()) {
254  edm::LogError("QCutsNoPrimaryVertex") << "Primary vertex Ref in "
255  << "RecoTauQualityCuts is invalid. - filterChargedCand";
256  return false;
257  }
258 
260  !(std::fabs(pCand->dxy(pv_->position())) <= maxTransverseImpactParameter_))
261  return false;
262  if (maxDeltaZ_ >= 0 && !(std::fabs(pCand->dz(pv_->position())) <= maxDeltaZ_))
263  return false;
264  if (maxDeltaZToLeadTrack_ >= 0) {
265  if (leadTrack_ == nullptr) {
266  edm::LogError("QCutsNoValidLeadTrack") << "Lead track Ref in "
267  << "RecoTauQualityCuts is invalid. - filterChargedCand";
268  return false;
269  }
270 
271  if (!(std::fabs(pCand->dz(pv_->position()) - leadTrack_->dz(pv_->position())) <= maxDeltaZToLeadTrack_))
272  return false;
273  }
274  }
276  return false;
277 
278  return true;
279  }
Log< level::Error, false > LogError
bool filterTrack(const reco::TrackBaseRef &track) const
Filter a single Track.
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:622
bool isNull() const
Checks for null.
Definition: Ref.h:235
static const TrackGhostTrackState * getTrack(const BasicGhostTrackState *basic)
double pt() const override
transverse momentum
virtual float dxy() const
dxy with respect to the PV ref
virtual float dz(size_t ipv=0) const
dz with respect to the PV[ipv]
bool minPackedCandVertexWeight(const pat::PackedCandidate &pCand, const reco::VertexRef *pv, double cut)

◆ filterGammaCand()

bool reco::tau::RecoTauQualityCuts::filterGammaCand ( const reco::Candidate cand) const
private

Definition at line 281 of file RecoTauQualityCuts.cc.

References minGammaEt_.

Referenced by filterCandByType().

281  {
282  if (minGammaEt_ >= 0 && !(cand.et() > minGammaEt_))
283  return false;
284  return true;
285  }

◆ filterNeutralHadronCand()

bool reco::tau::RecoTauQualityCuts::filterNeutralHadronCand ( const reco::Candidate cand) const
private

Definition at line 287 of file RecoTauQualityCuts.cc.

References minNeutralHadronEt_.

Referenced by filterCandByType().

287  {
288  if (minNeutralHadronEt_ >= 0 && !(cand.et() > minNeutralHadronEt_))
289  return false;
290  return true;
291  }

◆ filterTrack() [1/3]

bool reco::tau::RecoTauQualityCuts::filterTrack ( const reco::TrackBaseRef track) const

Filter a single Track.

Definition at line 182 of file RecoTauQualityCuts.cc.

References filterTrack_(), minTrackVertexWeight_, pv_, and HLT_2022v15_cff::track.

Referenced by filterCand(), filterChargedCand(), and filterTracks().

182  {
183  if (!filterTrack_(track.get()))
184  return false;
185  if (minTrackVertexWeight_ >= 0. && !(pv_->trackWeight(convertRef(track)) >= minTrackVertexWeight_))
186  return false;
187  return true;
188  }
bool filterTrack_(const reco::Track *track) const

◆ filterTrack() [2/3]

bool reco::tau::RecoTauQualityCuts::filterTrack ( const reco::TrackRef track) const

Definition at line 190 of file RecoTauQualityCuts.cc.

References filterTrack_(), minTrackVertexWeight_, pv_, and HLT_2022v15_cff::track.

190  {
191  if (!filterTrack_(track.get()))
192  return false;
193  if (minTrackVertexWeight_ >= 0. && !(pv_->trackWeight(convertRef(track)) >= minTrackVertexWeight_))
194  return false;
195  return true;
196  }
bool filterTrack_(const reco::Track *track) const

◆ filterTrack() [3/3]

bool reco::tau::RecoTauQualityCuts::filterTrack ( const reco::Track track) const

Definition at line 198 of file RecoTauQualityCuts.cc.

References filterTrack_(), and HLT_2022v15_cff::track.

198 { return filterTrack_(&track); }
bool filterTrack_(const reco::Track *track) const

◆ filterTrack_()

bool reco::tau::RecoTauQualityCuts::filterTrack_ ( const reco::Track track) const
private

Definition at line 200 of file RecoTauQualityCuts.cc.

References checkHitPattern_, checkPV_, reco::TrackBase::dz(), edm::Ref< C, T, F >::isNull(), leadTrack_, maxDeltaZ_, maxDeltaZToLeadTrack_, maxTrackChi2_, maxTransverseImpactParameter_, minTrackHits_, minTrackPixelHits_, minTrackPt_, pv_, and HLT_2022v15_cff::track.

Referenced by filterTrack().

200  {
201  if (minTrackPt_ >= 0 && !(track->pt() > minTrackPt_))
202  return false;
203  if (maxTrackChi2_ >= 0 && !(track->normalizedChi2() <= maxTrackChi2_))
204  return false;
205  if (checkHitPattern_) {
206  const reco::HitPattern& hitPattern = track->hitPattern();
207  if (minTrackPixelHits_ > 0 && !(hitPattern.numberOfValidPixelHits() >= minTrackPixelHits_))
208  return false;
209  if (minTrackHits_ > 0 && !(hitPattern.numberOfValidHits() >= minTrackHits_))
210  return false;
211  }
212  if (checkPV_ && pv_.isNull()) {
213  edm::LogError("QCutsNoPrimaryVertex") << "Primary vertex Ref in "
214  << "RecoTauQualityCuts is invalid. - filterTrack";
215  return false;
216  }
217 
219  !(std::fabs(track->dxy(pv_->position())) <= maxTransverseImpactParameter_))
220  return false;
221  if (maxDeltaZ_ >= 0 && !(std::fabs(track->dz(pv_->position())) <= maxDeltaZ_))
222  return false;
223  if (maxDeltaZToLeadTrack_ >= 0) {
224  if (!leadTrack_) {
225  edm::LogError("QCutsNoValidLeadTrack") << "Lead track Ref in "
226  << "RecoTauQualityCuts is invalid. - filterTrack";
227  return false;
228  }
229 
230  if (!(std::fabs(track->dz(pv_->position()) - leadTrack_->dz(pv_->position())) <= maxDeltaZToLeadTrack_))
231  return false;
232  }
233 
234  return true;
235  }
Log< level::Error, false > LogError
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:622
bool isNull() const
Checks for null.
Definition: Ref.h:235

◆ filterTracks()

template<typename Coll >
Coll reco::tau::RecoTauQualityCuts::filterTracks ( const Coll &  coll,
bool  invert = false 
) const
inline

Filter a collection of Tracks.

Definition at line 66 of file RecoTauQualityCuts.h.

References filterTrack(), l1tstage2_dqm_sourceclient-live_cfg::invert, convertSQLitetoXML_cfg::output, and HLT_2022v15_cff::track.

66  {
67  Coll output;
68  for (auto const& track : coll) {
69  if (filterTrack(track) ^ invert)
70  output.push_back(track);
71  }
72  return output;
73  }
bool filterTrack(const reco::TrackBaseRef &track) const
Filter a single Track.

◆ setLeadTrack() [1/3]

void reco::tau::RecoTauQualityCuts::setLeadTrack ( const reco::Track leadTrack)

Update the leading track.

Definition at line 333 of file RecoTauQualityCuts.cc.

References singlePfTauSkim_cff::leadTrack, and leadTrack_.

◆ setLeadTrack() [2/3]

void reco::tau::RecoTauQualityCuts::setLeadTrack ( const reco::Candidate leadCand)

Definition at line 335 of file RecoTauQualityCuts.cc.

References getTrack(), reco::tau::leadCand(), and leadTrack_.

InputIterator leadCand(InputIterator begin, InputIterator end)
static const TrackGhostTrackState * getTrack(const BasicGhostTrackState *basic)

◆ setLeadTrack() [3/3]

void reco::tau::RecoTauQualityCuts::setLeadTrack ( const reco::CandidateRef leadCand)

Update the leading track (using reference) If null, this will set the lead track ref null.

Definition at line 337 of file RecoTauQualityCuts.cc.

References getTrack(), reco::tau::leadCand(), and leadTrack_.

337  {
338  if (leadCand.isNonnull()) {
340  } else {
341  // Set null
342  leadTrack_ = nullptr;
343  }
344  }
InputIterator leadCand(InputIterator begin, InputIterator end)
static const TrackGhostTrackState * getTrack(const BasicGhostTrackState *basic)

◆ setPV()

void reco::tau::RecoTauQualityCuts::setPV ( const reco::VertexRef vtx)
inline

Member Data Documentation

◆ checkHitPattern_

bool reco::tau::RecoTauQualityCuts::checkHitPattern_
private

Definition at line 119 of file RecoTauQualityCuts.h.

Referenced by filterTrack_(), and RecoTauQualityCuts().

◆ checkPV_

bool reco::tau::RecoTauQualityCuts::checkPV_
private

Definition at line 120 of file RecoTauQualityCuts.h.

Referenced by filterChargedCand(), filterTrack_(), and RecoTauQualityCuts().

◆ leadTrack_

const reco::Track* reco::tau::RecoTauQualityCuts::leadTrack_
private

Definition at line 107 of file RecoTauQualityCuts.h.

Referenced by filterChargedCand(), filterTrack_(), and setLeadTrack().

◆ maxDeltaZ_

double reco::tau::RecoTauQualityCuts::maxDeltaZ_
private

Definition at line 114 of file RecoTauQualityCuts.h.

Referenced by filterChargedCand(), filterTrack_(), and RecoTauQualityCuts().

◆ maxDeltaZToLeadTrack_

double reco::tau::RecoTauQualityCuts::maxDeltaZToLeadTrack_
private

Definition at line 115 of file RecoTauQualityCuts.h.

Referenced by filterChargedCand(), filterTrack_(), and RecoTauQualityCuts().

◆ maxTrackChi2_

double reco::tau::RecoTauQualityCuts::maxTrackChi2_
private

Definition at line 110 of file RecoTauQualityCuts.h.

Referenced by filterTrack_(), and RecoTauQualityCuts().

◆ maxTransverseImpactParameter_

double reco::tau::RecoTauQualityCuts::maxTransverseImpactParameter_
private

Definition at line 113 of file RecoTauQualityCuts.h.

Referenced by filterChargedCand(), filterTrack_(), and RecoTauQualityCuts().

◆ minGammaEt_

double reco::tau::RecoTauQualityCuts::minGammaEt_
private

Definition at line 117 of file RecoTauQualityCuts.h.

Referenced by filterGammaCand(), and RecoTauQualityCuts().

◆ minNeutralHadronEt_

double reco::tau::RecoTauQualityCuts::minNeutralHadronEt_
private

Definition at line 118 of file RecoTauQualityCuts.h.

Referenced by filterNeutralHadronCand(), and RecoTauQualityCuts().

◆ minTrackHits_

int reco::tau::RecoTauQualityCuts::minTrackHits_
private

Definition at line 112 of file RecoTauQualityCuts.h.

Referenced by filterTrack_(), and RecoTauQualityCuts().

◆ minTrackPixelHits_

int reco::tau::RecoTauQualityCuts::minTrackPixelHits_
private

Definition at line 111 of file RecoTauQualityCuts.h.

Referenced by filterTrack_(), and RecoTauQualityCuts().

◆ minTrackPt_

double reco::tau::RecoTauQualityCuts::minTrackPt_
private

Definition at line 109 of file RecoTauQualityCuts.h.

Referenced by filterChargedCand(), filterTrack_(), and RecoTauQualityCuts().

◆ minTrackVertexWeight_

double reco::tau::RecoTauQualityCuts::minTrackVertexWeight_
private

Definition at line 116 of file RecoTauQualityCuts.h.

Referenced by filterChargedCand(), filterTrack(), and RecoTauQualityCuts().

◆ pv_

reco::VertexRef reco::tau::RecoTauQualityCuts::pv_
private

Definition at line 105 of file RecoTauQualityCuts.h.

Referenced by filterChargedCand(), filterTrack(), filterTrack_(), and setPV().