CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
PFTauDiscriminants::PFTauDiscriminantManager Class Reference

#include <PFTauDiscriminantManager.h>

Public Types

typedef std::vector< const
reco::Candidate * > 
candPtrVector
 
typedef std::map< std::string,
Discriminant *const > 
discriminantHolder
 

Public Member Functions

void addDiscriminant (Discriminant *const aDiscriminant)
 add a discriminant More...
 
bool branchTree (TTree *const treeToBranch, bool addTargetBranch=false, bool addWeightBranch=false)
 add a set of branches ot the TTree More...
 
void buildMVAComputerLink (std::vector< PhysicsTools::Variable::Value > &)
 connect to an MVA computer More...
 
candPtrVector filterByCharge (const candPtrVector &input, bool isCharged) const
 
const reco::PFTauDecayModegetDecayMode () const
 returns associated PFTauDecayMode More...
 
const edm::EventgetEvent () const
 returns associated edm::Event More...
 
const reco::CandidatemainTrack ()
 get the 'main' track (track computed for relevancy to tau decay resonances) (ie pi- in pi+pi+pi-) More...
 
const std::vector< const
reco::Candidate * > & 
outlierObjectsSortedByDR ()
 
const std::vector< const
reco::Candidate * > & 
outlierObjectsSortedByPt ()
 
 PFTauDiscriminantManager ()
 
void setEvent (const edm::Event &, double eventWeight)
 set the current event. Must be called (once per event) before setTau or setNullResult More...
 
bool setNullResult ()
 
void setSignalFlag (bool isSignal)
 
bool setTau (const reco::PFTauDecayMode &theTau, bool prePass=false, bool preFail=false)
 set objects for this discriminant More...
 
const std::vector< const
reco::Candidate * > & 
signalObjectsSortedByDR ()
 
const std::vector< const
reco::Candidate * > & 
signalObjectsSortedByPt ()
 accessed by Discriminant classes (caches to prevent multiple sorts) More...
 
 ~PFTauDiscriminantManager ()
 

Static Public Member Functions

static std::vector< const
reco::Candidate * > 
getLeafDaughters (const reco::Candidate *input)
 return the lowest level constituent candidates of a composite candidate More...
 

Private Member Functions

void clearCache ()
 
void computeMainTrack ()
 
void fillOutlierObjects (candPtrVector &input)
 
void fillSignalObjects (candPtrVector &input)
 

Private Attributes

const reco::PFTauDecayModecurrentTauDecayMode_
 
const edm::EventeventData_
 
Double_t eventWeight_
 
Bool_t iAmNull_
 
Bool_t iAmSignal_
 
const reco::CandidatemainTrack_
 
discriminantHolder myDiscriminants_
 
candPtrVector outlierObjectsSortedByDR_
 
candPtrVector outlierObjectsSortedByPt_
 
Bool_t preFail_
 
Bool_t prePass_
 
candPtrVector signalObjectsSortedByDR_
 
candPtrVector signalObjectsSortedByPt_
 

Detailed Description

Definition at line 16 of file PFTauDiscriminantManager.h.

Member Typedef Documentation

Definition at line 21 of file PFTauDiscriminantManager.h.

Definition at line 23 of file PFTauDiscriminantManager.h.

Constructor & Destructor Documentation

PFTauDiscriminants::PFTauDiscriminantManager::PFTauDiscriminantManager ( )
PFTauDiscriminants::PFTauDiscriminantManager::~PFTauDiscriminantManager ( )

Definition at line 367 of file PFTauDiscriminantManager.cc.

368 {
369 }

Member Function Documentation

void PFTauDiscriminants::PFTauDiscriminantManager::addDiscriminant ( Discriminant *const  aDiscriminant)

add a discriminant

Definition at line 21 of file PFTauDiscriminantManager.cc.

References PFTauDiscriminants::Discriminant::name().

Referenced by PFTauMVADiscriminator::PFTauMVADiscriminator(), and TauMVATrainer::TauMVATrainer().

22 {
23  if (!discriminant)
24  {
25  edm::LogError("PFTauDiscriminantManager") << "Error adding a discriminant, null pointer!";
26  return;
27  }
28  string discriminantName = discriminant->name();
29  myDiscriminants_.insert(make_pair(discriminantName, discriminant));
30 }
bool PFTauDiscriminants::PFTauDiscriminantManager::branchTree ( TTree *const  treeToBranch,
bool  addTargetBranch = false,
bool  addWeightBranch = false 
)

add a set of branches ot the TTree

Definition at line 301 of file PFTauDiscriminantManager.cc.

References PFTauDiscriminants::Discriminant::branchTree(), and PFTauDiscriminants::Discriminant::name().

Referenced by TauMVATrainer::TauMVATrainer().

302 {
303  if(!treeToBranch)
304  {
305  edm::LogError("PFTauDiscriminantManager") << "Error: trying to branch ttree - TTree pointer is null!";
306  return false;
307  }
308 
309  //add magic variables _TARGET_ (for sig/bkg) and _WEIGHT_, and ISNULL for non-existence
310  if (addTargetBranch)
311  treeToBranch->Branch("__TARGET__", &iAmSignal_, "__TARGET__/O"); //needs bugfix in MVA framework code..
312  if (addWeightBranch)
313  treeToBranch->Branch("__WEIGHT__", &eventWeight_,"__WEIGHT__/D");
314  // note: Target and Weight are normally added after the fact, in the training code.
315 
316  treeToBranch->Branch("__ISNULL__", &iAmNull_,"__ISNULL__/O");
317  treeToBranch->Branch("__PREPASS__", &prePass_,"__PREPASS__/O");
318  treeToBranch->Branch("__PREFAIL__", &preFail_,"__PREFAIL__/O");
319 
320  //loop over all the variables and make a branch for each one
321  for(discriminantHolder::iterator iVariable = myDiscriminants_.begin();
322  iVariable != myDiscriminants_.end();
323  ++iVariable)
324  {
325  Discriminant * theDiscriminant = iVariable->second;
326  edm::LogInfo("PFTauDiscriminantManager") << "Branching for discriminant w/ name: " << theDiscriminant->name();
327  theDiscriminant->branchTree(treeToBranch);
328  }
329  return true;
330 }
void PFTauDiscriminants::PFTauDiscriminantManager::buildMVAComputerLink ( std::vector< PhysicsTools::Variable::Value > &  toFill)

connect to an MVA computer

Definition at line 333 of file PFTauDiscriminantManager.cc.

References PFTauDiscriminants::Discriminant::fillMVA().

Referenced by PFTauMVADiscriminator::discriminate().

334 {
335  for(discriminantHolder::iterator iVariable = myDiscriminants_.begin();
336  iVariable != myDiscriminants_.end();
337  ++iVariable)
338  {
339  Discriminant * theDiscriminant = iVariable->second;
340  theDiscriminant->fillMVA(toFill);
341  }
342 }
void PFTauDiscriminants::PFTauDiscriminantManager::clearCache ( )
private
void PFTauDiscriminants::PFTauDiscriminantManager::computeMainTrack ( )
private
void PFTauDiscriminants::PFTauDiscriminantManager::fillOutlierObjects ( candPtrVector input)
private

Definition at line 117 of file PFTauDiscriminantManager.cc.

References edm::RefVector< C, T, F >::begin(), edm::RefVector< C, T, F >::end(), reco::LeafCandidate::get(), reco::PFTau::isolationPFCands(), and NULL.

118 {
119  toFill.clear();
120  if (currentTauDecayMode_ == NULL)
121  {
122  edm::LogError("PFTauDiscriminantManager") << "Trying to get QCD objects from null PFTauDecayMode object! Returning empty vector...";
123  return;
124  }
125 
126  // add in filtered objects (created in PFRecoTauDecayModeDeterminator) i.e filtered 2-prongs
127  // note that this uses the underlying PFCandidates, to be consistent w/ the rest of the objects
129 
130  for(PFCandidateRefVector::const_iterator iFilteredCand = theFilteredObjects.begin();
131  iFilteredCand != theFilteredObjects.end();
132  ++iFilteredCand)
133  {
134  const PFCandidate* pfCand = iFilteredCand->get();
135  const Candidate* castedCand = static_cast<const Candidate*>(pfCand);
136  if (castedCand)
137  toFill.push_back(castedCand);
138  }
139 
140  // get associated PFTau from PFTauDecayMode
141  const PFTau* originalTau = currentTauDecayMode_->pfTauRef().get();
142  if(originalTau) //this may be null by design if there is no associated PFTau (e.g. if DecayMode is constructed from MC truth)
143  {
144  const PFCandidateRefVector& theOutliers = originalTau->isolationPFCands();
145  for(PFCandidateRefVector::const_iterator iIsoCand = theOutliers.begin();
146  iIsoCand != theOutliers.end();
147  ++iIsoCand)
148  {
149  const PFCandidate* pfCand = iIsoCand->get();
150  const Candidate* castedCand = static_cast<const Candidate*>(pfCand);
151  if (castedCand)
152  toFill.push_back(castedCand);
153  }
154  }
155 }
const PFCandidateRefVector & isolationPFCands() const
PFCandidates in isolation region.
Definition: PFTau.cc:82
#define NULL
Definition: scimark2.h:8
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:242
const PFTauRef & pfTauRef() const
return reference to associated PFTau object
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:237
T get() const
get a component
PFCandidateRefVector filteredPFCandidates() const
returns the PFCandidates that were filtered
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:34
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:239
void PFTauDiscriminants::PFTauDiscriminantManager::fillSignalObjects ( candPtrVector input)
private

Definition at line 103 of file PFTauDiscriminantManager.cc.

References NULL.

104 {
105  toFill.clear();
106  if (currentTauDecayMode_ == NULL)
107  {
108  edm::LogError("PFTauDiscriminantManager") << "Trying to get signal objects from null PFTauDecayMode object! Returning empty vector...";
109  return;
110  }
113  toFill.insert(toFill.end(), tempChargedVector.begin(), tempChargedVector.end());
114  toFill.insert(toFill.end(), tempNeutralVector.begin(), tempNeutralVector.end());
115 }
std::vector< const Candidate * > neutralPionCandidates() const
returns pointers to neutral pions
#define NULL
Definition: scimark2.h:8
std::vector< const reco::Candidate * > candPtrVector
std::vector< const Candidate * > chargedPionCandidates() const
returns pointers to charged pions
candPtrVector PFTauDiscriminants::PFTauDiscriminantManager::filterByCharge ( const candPtrVector input,
bool  isCharged 
) const

Definition at line 207 of file PFTauDiscriminantManager.cc.

References convertSQLitetoXML_cfg::output.

208 {
210  for(candPtrVector::const_iterator iCandidate = input.begin();
211  iCandidate != input.end();
212  ++iCandidate)
213  {
214  bool chargeType = (*iCandidate)->charge();
215  if( chargeType == isCharged )
216  output.push_back(*iCandidate);
217  }
218  return output;
219 }
tuple input
Definition: collect_tpl.py:10
std::vector< const reco::Candidate * > candPtrVector
const reco::PFTauDecayMode* PFTauDiscriminants::PFTauDiscriminantManager::getDecayMode ( ) const
inline
const edm::Event* PFTauDiscriminants::PFTauDiscriminantManager::getEvent ( ) const
inline

returns associated edm::Event

Definition at line 45 of file PFTauDiscriminantManager.h.

References eventData_.

vector< const reco::Candidate * > PFTauDiscriminants::PFTauDiscriminantManager::getLeafDaughters ( const reco::Candidate input)
static

return the lowest level constituent candidates of a composite candidate

Definition at line 345 of file PFTauDiscriminantManager.cc.

References reco::Candidate::daughter(), reco::Candidate::numberOfDaughters(), and convertSQLitetoXML_cfg::output.

Referenced by PFTauDiscriminants::GammaOccupancy::doComputation(), and PFTauDiscriminants::GammaPt::doComputation().

346 {
347  std::vector<const reco::Candidate*> output;
348 
349  //check for validity
350  if(!input)
351  return output;
352 
353  size_t nDaughters = input->numberOfDaughters();
354  if(!nDaughters) //this is a leaf
355  output.push_back(input);
356  else //recurse down this objects daughters
357  {
358  for(size_t iDaughter = 0; iDaughter < nDaughters; ++iDaughter)
359  {
360  std::vector<const reco::Candidate*> leafsOnThisBranch = getLeafDaughters(input->daughter(iDaughter));
361  output.insert(output.end(), leafsOnThisBranch.begin(), leafsOnThisBranch.end());
362  }
363  }
364  return output;
365 }
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
static std::vector< const reco::Candidate * > getLeafDaughters(const reco::Candidate *input)
return the lowest level constituent candidates of a composite candidate
virtual size_type numberOfDaughters() const =0
number of daughters
const reco::Candidate * PFTauDiscriminants::PFTauDiscriminantManager::mainTrack ( )

get the 'main' track (track computed for relevancy to tau decay resonances) (ie pi- in pi+pi+pi-)

Definition at line 158 of file PFTauDiscriminantManager.cc.

References DeDxDiscriminatorTools::charge(), NULL, and python.multivaluedict::sort().

Referenced by PFTauDiscriminants::MainTrackPt::doComputation(), PFTauDiscriminants::MainTrackAngle::doComputation(), PFTauDiscriminants::TrackPt::doComputation(), PFTauDiscriminants::TrackAngle::doComputation(), PFTauDiscriminants::Dalitz::doComputation(), and PFTauDiscriminants::InvariantMass::doComputation().

159 {
160  if (mainTrack_ == NULL) //otherwise already cached or d.n.e
161  {
162  if (!this->getDecayMode())
163  {
164  edm::LogError("PFTauDiscriminantManager") << "In ::mainTrack(), trying to access a null PFTauDecayMode - returning null pointer for main track";
165  return NULL;
166  }
167 
168  std::vector<const reco::Candidate*> myChargedCandidates = getDecayMode()->chargedPionCandidates();
169  size_t nTracks = myChargedCandidates.size();
170  if (!nTracks)
171  {
172  // ...removing this warning for now, not sure what to do about this case (as it shoudl be permissible to pass a jet->pftau->pfTauDecayMode of all gammas??)
173  //edm::LogError("PFTauDiscriminantManager") << "In ::mainTrack(), associated PFTauDecayMode has no associated tracks, returning null pointer.";
174  return NULL;
175  }
176 
177  //if there are more than three tracks, only take the top three, by Pt
179  sort(myChargedCandidates.begin(), myChargedCandidates.end(), ptSorter);
180  size_t maxTracks = (nTracks > 3) ? 3 : nTracks;
181  int charge = 0;
182 
183  if (maxTracks < 3) //two or one track, returning higher Pt track
184  mainTrack_ = myChargedCandidates[0];
185  else
186  {
187  for(size_t iTrack = 0; iTrack < maxTracks; ++iTrack)
188  charge += myChargedCandidates[iTrack]->charge();
189 
190  for(size_t iTrack = 0; iTrack < maxTracks; ++iTrack)
191  {
192  int currentCharge = myChargedCandidates[iTrack]->charge();
193  if (currentCharge != charge)
194  {
195  mainTrack_ = myChargedCandidates[iTrack];
196  break;
197  }
198  }
199  }
200  }
201  return mainTrack_;
202 }
#define NULL
Definition: scimark2.h:8
double charge(const std::vector< uint8_t > &Ampls)
const reco::PFTauDecayMode * getDecayMode() const
returns associated PFTauDecayMode
std::vector< const Candidate * > chargedPionCandidates() const
returns pointers to charged pions
const std::vector< const reco::Candidate * > & PFTauDiscriminants::PFTauDiscriminantManager::outlierObjectsSortedByDR ( )

Definition at line 278 of file PFTauDiscriminantManager.cc.

References TauTagTools::computeDeltaR(), NULL, and python.multivaluedict::sort().

279 {
280  if(!outlierObjectsSortedByDR_.empty() || iAmNull_)
281  {
283  }
284  else
285  {
286  if (currentTauDecayMode_ == NULL)
287  {
288  edm::LogError("PFTauDiscriminantManager") << "Trying to get outlier objects from null PFTauDecayMode object! Returning empty vector...";
290  }
291  math::XYZVector signalAxisVector = currentTauDecayMode_->momentum();
294  sort(outlierObjectsSortedByDR_.begin(), outlierObjectsSortedByDR_.end(), mySorter);
295  }
297 }
virtual Vector momentum() const
spatial momentum vector
#define NULL
Definition: scimark2.h:8
double computeDeltaR(const math::XYZVector &vec1, const math::XYZVector &vec2)
Definition: TauTagTools.cc:8
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
const std::vector< const reco::Candidate * > & PFTauDiscriminants::PFTauDiscriminantManager::outlierObjectsSortedByPt ( )

Definition at line 262 of file PFTauDiscriminantManager.cc.

References python.multivaluedict::sort().

Referenced by PFTauDiscriminants::OutlierNCharged::doComputation(), PFTauDiscriminants::OutlierN::doComputation(), PFTauDiscriminants::OutlierPt::doComputation(), PFTauDiscriminants::OutlierSumPt::doComputation(), PFTauDiscriminants::OutlierMass::doComputation(), PFTauDiscriminants::OutlierAngle::doComputation(), PFTauDiscriminants::ChargedOutlierPt::doComputation(), PFTauDiscriminants::ChargedOutlierSumPt::doComputation(), PFTauDiscriminants::ChargedOutlierAngle::doComputation(), PFTauDiscriminants::NeutralOutlierPt::doComputation(), PFTauDiscriminants::NeutralOutlierSumPt::doComputation(), and PFTauDiscriminants::NeutralOutlierAngle::doComputation().

void PFTauDiscriminants::PFTauDiscriminantManager::setEvent ( const edm::Event iEvent,
double  eventWeight 
)

set the current event. Must be called (once per event) before setTau or setNullResult

Definition at line 69 of file PFTauDiscriminantManager.cc.

References ExpressReco_HICollisions_FallBack::eventWeight, and iEvent.

Referenced by TauMVATrainer::analyze(), and PFTauMVADiscriminator::beginEvent().

bool PFTauDiscriminants::PFTauDiscriminantManager::setNullResult ( )

in case there is no tau but you wish to fill anyway (for example, to see situations where one cone algorithm fails to find a tau but another does not

Definition at line 76 of file PFTauDiscriminantManager.cc.

References NULL, and PFTauDiscriminants::Discriminant::setNullResult().

Referenced by TauMVATrainer::analyze().

77 {
79  iAmNull_ = true;
80  prePass_ = false;
81  preFail_ = false;
82  //reset cached collections
83  clearCache();
84 
85  for(discriminantHolder::iterator aDiscriminant = myDiscriminants_.begin();
86  aDiscriminant != myDiscriminants_.end();
87  ++aDiscriminant)
88  {
89  Discriminant* const theAlgo = aDiscriminant->second;
90  if (!theAlgo)
91  {
92  string theName = aDiscriminant->first;
93  edm::LogError("PFTauDiscriminantManager") << "Error filling discriminant " << theName <<", null pointer!";
94  return false;
95  }
96  theAlgo->setNullResult(this);
97  }
98  return true;
99 }
#define NULL
Definition: scimark2.h:8
void PFTauDiscriminants::PFTauDiscriminantManager::setSignalFlag ( bool  isSignal)
inline

Definition at line 38 of file PFTauDiscriminantManager.h.

References iAmSignal_.

Referenced by TauMVATrainer::TauMVATrainer().

bool PFTauDiscriminants::PFTauDiscriminantManager::setTau ( const reco::PFTauDecayMode theTau,
bool  prePass = false,
bool  preFail = false 
)

set objects for this discriminant

Definition at line 43 of file PFTauDiscriminantManager.cc.

References PFTauDiscriminants::Discriminant::compute().

Referenced by TauMVATrainer::analyze(), and PFTauMVADiscriminator::discriminate().

44 {
45  currentTauDecayMode_ = &theTau;
46  iAmNull_ = false;
47  prePass_ = prePass;
48  preFail_ = preFail;
49  //reset cached collections
50  clearCache();
51 
52  for(discriminantHolder::iterator aDiscriminant = myDiscriminants_.begin();
53  aDiscriminant != myDiscriminants_.end();
54  ++aDiscriminant)
55  {
56  Discriminant* const theAlgo = aDiscriminant->second;
57  if (!theAlgo)
58  {
59  string theName = aDiscriminant->first;
60  edm::LogError("PFTauDiscriminantManager") << "Error filling discriminant " << theName <<", null pointer!";
61  return false;
62  }
63  theAlgo->compute(this);
64  }
65  return true;
66 }
const std::vector< const reco::Candidate * > & PFTauDiscriminants::PFTauDiscriminantManager::signalObjectsSortedByDR ( )

Definition at line 239 of file PFTauDiscriminantManager.cc.

References TauTagTools::computeDeltaR(), NULL, and python.multivaluedict::sort().

240 {
241  // return already computed vector if has already been computed or is empty (due to null tau)
242  if(!signalObjectsSortedByDR_.empty() || iAmNull_)
243  {
245  }
246  else
247  {
248  if (currentTauDecayMode_ == NULL)
249  {
250  edm::LogError("PFTauDiscriminantManager") << "Trying to get signal objects from null PFTauDecayMode object! Returning empty vector...";
252  }
253  math::XYZVector signalAxisVector = currentTauDecayMode_->momentum();
256  sort(signalObjectsSortedByDR_.begin(), signalObjectsSortedByDR_.end(), mySorter);
257  }
259 }
virtual Vector momentum() const
spatial momentum vector
#define NULL
Definition: scimark2.h:8
double computeDeltaR(const math::XYZVector &vec1, const math::XYZVector &vec2)
Definition: TauTagTools.cc:8
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
const std::vector< const reco::Candidate * > & PFTauDiscriminants::PFTauDiscriminantManager::signalObjectsSortedByPt ( )

accessed by Discriminant classes (caches to prevent multiple sorts)

Definition at line 222 of file PFTauDiscriminantManager.cc.

References python.multivaluedict::sort().

Referenced by PFTauDiscriminants::TrackPt::doComputation(), PFTauDiscriminants::PiZeroPt::doComputation(), PFTauDiscriminants::GammaOccupancy::doComputation(), PFTauDiscriminants::GammaPt::doComputation(), PFTauDiscriminants::TrackAngle::doComputation(), PFTauDiscriminants::PiZeroAngle::doComputation(), PFTauDiscriminants::Dalitz::doComputation(), and PFTauDiscriminants::InvariantMass::doComputation().

223 {
224  // return already computed vector if has already been computed or is empty (due to null tau)
225  if(!signalObjectsSortedByPt_.empty() || iAmNull_)
226  {
228  }
229  else
230  {
233  sort(signalObjectsSortedByPt_.begin(), signalObjectsSortedByPt_.end(), mySorter);
234  }
236 }

Member Data Documentation

const reco::PFTauDecayMode* PFTauDiscriminants::PFTauDiscriminantManager::currentTauDecayMode_
private

Definition at line 72 of file PFTauDiscriminantManager.h.

Referenced by getDecayMode().

const edm::Event* PFTauDiscriminants::PFTauDiscriminantManager::eventData_
private

Definition at line 73 of file PFTauDiscriminantManager.h.

Referenced by getEvent().

Double_t PFTauDiscriminants::PFTauDiscriminantManager::eventWeight_
private

Definition at line 70 of file PFTauDiscriminantManager.h.

Bool_t PFTauDiscriminants::PFTauDiscriminantManager::iAmNull_
private

Definition at line 66 of file PFTauDiscriminantManager.h.

Bool_t PFTauDiscriminants::PFTauDiscriminantManager::iAmSignal_
private

Definition at line 65 of file PFTauDiscriminantManager.h.

Referenced by setSignalFlag().

const reco::Candidate* PFTauDiscriminants::PFTauDiscriminantManager::mainTrack_
private

Definition at line 77 of file PFTauDiscriminantManager.h.

discriminantHolder PFTauDiscriminants::PFTauDiscriminantManager::myDiscriminants_
private

Definition at line 71 of file PFTauDiscriminantManager.h.

candPtrVector PFTauDiscriminants::PFTauDiscriminantManager::outlierObjectsSortedByDR_
private

Definition at line 81 of file PFTauDiscriminantManager.h.

candPtrVector PFTauDiscriminants::PFTauDiscriminantManager::outlierObjectsSortedByPt_
private

Definition at line 80 of file PFTauDiscriminantManager.h.

Bool_t PFTauDiscriminants::PFTauDiscriminantManager::preFail_
private

Definition at line 68 of file PFTauDiscriminantManager.h.

Bool_t PFTauDiscriminants::PFTauDiscriminantManager::prePass_
private

Definition at line 67 of file PFTauDiscriminantManager.h.

candPtrVector PFTauDiscriminants::PFTauDiscriminantManager::signalObjectsSortedByDR_
private

Definition at line 79 of file PFTauDiscriminantManager.h.

candPtrVector PFTauDiscriminants::PFTauDiscriminantManager::signalObjectsSortedByPt_
private

Definition at line 78 of file PFTauDiscriminantManager.h.