CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Tau.cc
Go to the documentation of this file.
1 //
2 // $Id: Tau.cc,v 1.17 2010/09/27 15:24:08 mbluj Exp $
3 //
4 
7 
8 
9 using namespace pat;
10 
11 
14  Lepton<reco::BaseTau>(),
15  embeddedIsolationTracks_(false),
16  embeddedLeadTrack_(false),
17  embeddedSignalTracks_(false)
18  ,embeddedLeadPFCand_(false)
19  ,embeddedLeadPFChargedHadrCand_(false)
20  ,embeddedLeadPFNeutralCand_(false)
21  ,embeddedSignalPFCands_(false)
22  ,embeddedSignalPFChargedHadrCands_(false)
23  ,embeddedSignalPFNeutralHadrCands_(false)
24  ,embeddedSignalPFGammaCands_(false)
25  ,embeddedIsolationPFCands_(false)
26  ,embeddedIsolationPFChargedHadrCands_(false)
27  ,embeddedIsolationPFNeutralHadrCands_(false)
28  ,embeddedIsolationPFGammaCands_(false)
29 {
30 }
31 
33 Tau::Tau(const reco::BaseTau & aTau) :
34  Lepton<reco::BaseTau>(aTau),
35  embeddedIsolationTracks_(false),
36  embeddedLeadTrack_(false),
37  embeddedSignalTracks_(false)
38  ,embeddedLeadPFCand_(false)
39  ,embeddedLeadPFChargedHadrCand_(false)
40  ,embeddedLeadPFNeutralCand_(false)
41  ,embeddedSignalPFCands_(false)
42  ,embeddedSignalPFChargedHadrCands_(false)
43  ,embeddedSignalPFNeutralHadrCands_(false)
44  ,embeddedSignalPFGammaCands_(false)
45  ,embeddedIsolationPFCands_(false)
46  ,embeddedIsolationPFChargedHadrCands_(false)
47  ,embeddedIsolationPFNeutralHadrCands_(false)
48  ,embeddedIsolationPFGammaCands_(false)
49 {
50  const reco::PFTau * pfTau = dynamic_cast<const reco::PFTau *>(&aTau);
51  if (pfTau != 0) pfSpecific_.push_back(pat::tau::TauPFSpecific(*pfTau));
52  const reco::CaloTau * caloTau = dynamic_cast<const reco::CaloTau *>(&aTau);
53  if (caloTau != 0) caloSpecific_.push_back(pat::tau::TauCaloSpecific(*caloTau));
54 }
55 
58  Lepton<reco::BaseTau>(aTauRef),
59  embeddedIsolationTracks_(false),
60  embeddedLeadTrack_(false),
61  embeddedSignalTracks_(false)
62  ,embeddedLeadPFCand_(false)
63  ,embeddedLeadPFChargedHadrCand_(false)
64  ,embeddedLeadPFNeutralCand_(false)
65  ,embeddedSignalPFCands_(false)
66  ,embeddedSignalPFChargedHadrCands_(false)
67  ,embeddedSignalPFNeutralHadrCands_(false)
68  ,embeddedSignalPFGammaCands_(false)
69  ,embeddedIsolationPFCands_(false)
70  ,embeddedIsolationPFChargedHadrCands_(false)
71  ,embeddedIsolationPFNeutralHadrCands_(false)
72  ,embeddedIsolationPFGammaCands_(false)
73 {
74  const reco::PFTau * pfTau = dynamic_cast<const reco::PFTau *>(aTauRef.get());
75  if (pfTau != 0) pfSpecific_.push_back(pat::tau::TauPFSpecific(*pfTau));
76  const reco::CaloTau * caloTau = dynamic_cast<const reco::CaloTau *>(aTauRef.get());
77  if (caloTau != 0) caloSpecific_.push_back(pat::tau::TauCaloSpecific(*caloTau));
78 }
79 
82  Lepton<reco::BaseTau>(aTauRef),
83  embeddedIsolationTracks_(false),
84  embeddedLeadTrack_(false),
85  embeddedSignalTracks_(false)
86  ,embeddedLeadPFCand_(false)
87  ,embeddedLeadPFChargedHadrCand_(false)
88  ,embeddedLeadPFNeutralCand_(false)
89  ,embeddedSignalPFCands_(false)
90  ,embeddedSignalPFChargedHadrCands_(false)
91  ,embeddedSignalPFNeutralHadrCands_(false)
92  ,embeddedSignalPFGammaCands_(false)
93  ,embeddedIsolationPFCands_(false)
94  ,embeddedIsolationPFChargedHadrCands_(false)
95  ,embeddedIsolationPFNeutralHadrCands_(false)
96  ,embeddedIsolationPFGammaCands_(false)
97 {
98  const reco::PFTau * pfTau = dynamic_cast<const reco::PFTau *>(aTauRef.get());
99  if (pfTau != 0) pfSpecific_.push_back(pat::tau::TauPFSpecific(*pfTau));
100  const reco::CaloTau * caloTau = dynamic_cast<const reco::CaloTau *>(aTauRef.get());
101  if (caloTau != 0) caloSpecific_.push_back(pat::tau::TauCaloSpecific(*caloTau));
102 }
103 
106 }
107 
108 std::ostream&
109 reco::operator<<(std::ostream& out, const pat::Tau& obj)
110 {
111  if(!out) return out;
112 
113  out << "\tpat::Tau: ";
114  out << std::setiosflags(std::ios::right);
115  out << std::setiosflags(std::ios::fixed);
116  out << std::setprecision(3);
117  out << " E/pT/eta/phi "
118  << obj.energy()<<"/"
119  << obj.pt()<<"/"
120  << obj.eta()<<"/"
121  << obj.phi();
122  return out;
123 }
124 
129  reco::TrackRefVector trackRefVec;
130  for (unsigned int i = 0; i < isolationTracks_.size(); i++) {
131  trackRefVec.push_back(reco::TrackRef(&isolationTracks_, i));
132  }
135  }
137  } else {
139  }
140 }
141 
142 
145  if (embeddedLeadTrack_) {
146  return reco::TrackRef(&leadTrack_, 0);
147  } else {
148  return reco::BaseTau::leadTrack();
149  }
150 }
151 
152 
155  if (embeddedSignalTracks_) {
156  reco::TrackRefVector trackRefVec;
158  for (unsigned int i = 0; i < signalTracks_.size(); i++) {
159  trackRefVec.push_back(reco::TrackRef(&signalTracks_, i));
160  }
163  }
165  } else {
167  }
168 }
169 
170 
173  isolationTracks_.clear();
175  for (unsigned int i = 0; i < trackRefVec.size(); i++) {
176  isolationTracks_.push_back(*trackRefVec.at(i));
177  }
179 }
180 
181 
184  leadTrack_.clear();
185  if (reco::BaseTau::leadTrack().isNonnull()) {
186  leadTrack_.push_back(*reco::BaseTau::leadTrack());
187  embeddedLeadTrack_ = true;
188  }
189 }
190 
191 
194  signalTracks_.clear();
196  for (unsigned int i = 0; i < trackRefVec.size(); i++) {
197  signalTracks_.push_back(*trackRefVec.at(i));
198  }
199  embeddedSignalTracks_ = true;
200 }
201 
202 
205  genJet_.clear();
206  genJet_.push_back(*gj);
207 }
208 
210 const reco::GenJet * Tau::genJet() const {
211  return (genJet_.size() > 0 ? &genJet_.front() : 0);
212 }
213 
214 
215 // method to retrieve a tau ID (or throw)
216 float Tau::tauID(const std::string & name) const {
217  for (std::vector<IdPair>::const_iterator it = tauIDs_.begin(), ed = tauIDs_.end(); it != ed; ++it) {
218  if (it->first == name) return it->second;
219  }
220  cms::Exception ex("Key not found");
221  ex << "pat::Tau: the ID " << name << " can't be found in this pat::Tau.\n";
222  ex << "The available IDs are: ";
223  for (std::vector<IdPair>::const_iterator it = tauIDs_.begin(), ed = tauIDs_.end(); it != ed; ++it) {
224  ex << "'" << it->first << "' ";
225  }
226  ex << ".\n";
227  throw ex;
228 }
229 // check if an ID is there
230 bool Tau::isTauIDAvailable(const std::string & name) const {
231  for (std::vector<IdPair>::const_iterator it = tauIDs_.begin(), ed = tauIDs_.end(); it != ed; ++it) {
232  if (it->first == name) return true;
233  }
234  return false;
235 }
236 
237 
239  if (!isPFTau()) throw cms::Exception("Type Error") << "Requesting a PFTau-specific information from a pat::Tau which wasn't made from a PFTau.\n";
240  return pfSpecific_[0];
241 }
242 
244  if (!isCaloTau()) throw cms::Exception("Type Error") << "Requesting a CaloTau-specific information from a pat::Tau which wasn't made from a CaloTau.\n";
245  return caloSpecific_[0];
246 }
247 
248 float Tau::etaetaMoment() const
249 {
250  if ( isCaloTau() ) return caloSpecific().etaetaMoment_;
251  if ( isPFTau() ) return pfSpecific().etaetaMoment_;
252  throw cms::Exception("Type Error") << "Requesting a CaloTau/PFTau-specific information from a pat::Tau which wasn't made from either a CaloTau or a PFTau.\n";
253 }
254 
255 float Tau::phiphiMoment() const
256 {
257  if ( isCaloTau() ) return caloSpecific().phiphiMoment_;
258  if ( isPFTau() ) return pfSpecific().phiphiMoment_;
259  throw cms::Exception("Type Error") << "Requesting a CaloTau/PFTau-specific information from a pat::Tau which wasn't made from either a CaloTau or a PFTau.\n";
260 }
261 
262 float Tau::etaphiMoment() const
263 {
264  if ( isCaloTau() ) return caloSpecific().etaphiMoment_;
265  if ( isPFTau() ) return pfSpecific().etaphiMoment_;
266  throw cms::Exception("Type Error") << "Requesting a CaloTau/PFTau-specific information from a pat::Tau which wasn't made from either a CaloTau or a PFTau.\n";
267 }
268 
269 void Tau::setDecayMode(int decayMode)
270 {
271  if (!isPFTau()) throw cms::Exception("Type Error") << "Requesting a PFTau-specific information from a pat::Tau which wasn't made from a PFTau.\n";
272  pfSpecific_[0].decayMode_ = decayMode;
273 }
274 
277  if (!isPFTau() ) {//additional check with warning in pat::tau producer
278  return;
279  }
280  leadPFCand_.clear();
281  if (pfSpecific_[0].leadPFCand_.isNonnull() ) {
282  leadPFCand_.push_back(*pfSpecific_[0].leadPFCand_); //already set in C-tor
283  embeddedLeadPFCand_ = true;
284  }
285 }
288  if (!isPFTau() ) {//additional check with warning in pat::tau producer
289  return;
290  }
291  leadPFChargedHadrCand_.clear();
292  if (pfSpecific_[0].leadPFChargedHadrCand_.isNonnull() ) {
293  leadPFChargedHadrCand_.push_back(*pfSpecific_[0].leadPFChargedHadrCand_); //already set in C-tor
295  }
296 }
299  if (!isPFTau() ) {//additional check with warning in pat::tau producer
300  return;
301  }
302  leadPFNeutralCand_.clear();
303  if (pfSpecific_[0].leadPFNeutralCand_.isNonnull() ) {
304  leadPFNeutralCand_.push_back(*pfSpecific_[0].leadPFNeutralCand_); //already set in C-tor
306  }
307 }
308 
310  if (!isPFTau() ) {//additional check with warning in pat::tau producer
311  return;
312  }
313  reco::PFCandidateRefVector candRefVec = pfSpecific_[0].selectedSignalPFCands_;
314  for (unsigned int i = 0; i < candRefVec.size(); i++) {
315  signalPFCands_.push_back(*candRefVec.at(i));
316  }
317  embeddedSignalPFCands_ = true;
318 }
320  if (!isPFTau() ) {//additional check with warning in pat::tau producer
321  return;
322  }
323  reco::PFCandidateRefVector candRefVec = pfSpecific_[0].selectedSignalPFChargedHadrCands_;
324  for (unsigned int i = 0; i < candRefVec.size(); i++) {
325  signalPFChargedHadrCands_.push_back(*candRefVec.at(i));
326  }
328 }
330  if (!isPFTau() ) {//additional check with warning in pat::tau producer
331  return;
332  }
333  reco::PFCandidateRefVector candRefVec = pfSpecific_[0].selectedSignalPFNeutrHadrCands_;
334  for (unsigned int i = 0; i < candRefVec.size(); i++) {
335  signalPFNeutralHadrCands_.push_back(*candRefVec.at(i));
336  }
338 }
340  if (!isPFTau() ) {//additional check with warning in pat::tau producer
341  return;
342  }
343  reco::PFCandidateRefVector candRefVec = pfSpecific_[0].selectedSignalPFGammaCands_;
344  for (unsigned int i = 0; i < candRefVec.size(); i++) {
345  signalPFGammaCands_.push_back(*candRefVec.at(i));
346  }
348 }
349 
351  if (!isPFTau() ) {//additional check with warning in pat::tau producer
352  return;
353  }
354  reco::PFCandidateRefVector candRefVec = pfSpecific_[0].selectedIsolationPFCands_;
355  for (unsigned int i = 0; i < candRefVec.size(); i++) {
356  isolationPFCands_.push_back(*candRefVec.at(i));
357  }
359 }
360 
362  if (!isPFTau() ) {//additional check with warning in pat::tau producer
363  return;
364  }
365  reco::PFCandidateRefVector candRefVec = pfSpecific_[0].selectedIsolationPFChargedHadrCands_;
366  for (unsigned int i = 0; i < candRefVec.size(); i++) {
367  isolationPFChargedHadrCands_.push_back(*candRefVec.at(i));
368  }
370 }
372  if (!isPFTau() ) {//additional check with warning in pat::tau producer
373  return;
374  }
375  reco::PFCandidateRefVector candRefVec = pfSpecific_[0].selectedIsolationPFNeutrHadrCands_;
376  for (unsigned int i = 0; i < candRefVec.size(); i++) {
377  isolationPFNeutralHadrCands_.push_back(*candRefVec.at(i));
378  }
380 }
382  if (!isPFTau() ) {//additional check with warning in pat::tau producer
383  return;
384  }
385  reco::PFCandidateRefVector candRefVec = pfSpecific_[0].selectedIsolationPFGammaCands_;
386  for (unsigned int i = 0; i < candRefVec.size(); i++) {
387  isolationPFGammaCands_.push_back(*candRefVec.at(i));
388  }
390 }
391 
395  else
397 }
398 
402  else
404 }
405 
408  return pfSpecific().leadPFCand_;
409  else
411 }
412 
417  for (unsigned int i = 0; i < signalPFCands_.size(); i++) {
419  }
422  }
424  } else
426 }
427 
432  for (unsigned int i = 0; i < signalPFChargedHadrCands_.size(); i++) {
434  }
437  }
439  } else
441 }
442 
447  for (unsigned int i = 0; i < signalPFNeutralHadrCands_.size(); i++) {
449  }
452  }
454  } else
456 }
457 
462  for (unsigned int i = 0; i < signalPFGammaCands_.size(); i++) {
464  }
467  }
469  } else
471 }
472 
477  for (unsigned int i = 0; i < isolationPFCands_.size(); i++) {
479  }
482  }
484  } else
486 }
487 
492  for (unsigned int i = 0; i < isolationPFChargedHadrCands_.size(); i++) {
494  }
497  }
499  } else
501 }
502 
507  for (unsigned int i = 0; i < isolationPFNeutralHadrCands_.size(); i++) {
509  }
512  }
514  } else
516 }
517 
522  for (unsigned int i = 0; i < isolationPFGammaCands_.size(); i++) {
524  }
527  }
529  } else
531 }
bool embeddedLeadPFNeutralCand_
Definition: Tau.h:286
virtual reco::TrackRef leadTrack() const
Definition: BaseTau.cc:26
const reco::PFCandidateRef leadPFChargedHadrCand() const
Definition: Tau.cc:392
int i
Definition: DBlmapReader.cc:9
reco::PFCandidateRefVector signalPFCandsTransientRefVector_
Definition: Tau.h:290
reco::PFCandidateRefVector selectedIsolationPFChargedHadrCands_
Definition: TauPFSpecific.h:32
bool embeddedSignalPFChargedHadrCands_
Definition: Tau.h:293
std::vector< reco::PFCandidate > leadPFNeutralCand_
Definition: Tau.h:285
edm::BoolCache isolationPFNeutralHadrCandsRefVectorFixed_
Definition: Tau.h:315
reco::PFCandidateRefVector selectedIsolationPFGammaCands_
Definition: TauPFSpecific.h:32
edm::BoolCache isolationPFCandsRefVectorFixed_
Definition: Tau.h:307
const reco::PFCandidateRefVector & isolationPFCands() const
Definition: Tau.cc:473
reco::PFCandidateRefVector signalPFGammaCandsTransientRefVector_
Definition: Tau.h:302
edm::BoolCache signalTracksTransientRefVectorFixed_
Definition: Tau.h:279
virtual const reco::TrackRefVector & isolationTracks() const
Definition: BaseTau.cc:30
std::vector< reco::PFCandidate > signalPFNeutralHadrCands_
Definition: Tau.h:296
const pat::tau::TauCaloSpecific & caloSpecific() const
return CaloTau info or throw exception &#39;not CaloTau&#39;
Definition: Tau.cc:243
std::vector< reco::PFCandidate > signalPFCands_
Definition: Tau.h:288
bool embeddedIsolationPFChargedHadrCands_
Definition: Tau.h:309
reco::TrackRefVector signalTracksTransientRefVector_
Definition: Tau.h:278
bool embeddedIsolationPFCands_
Definition: Tau.h:305
reco::PFCandidateRefVector selectedSignalPFCands_
Definition: TauPFSpecific.h:31
reco::PFCandidateRefVector signalPFChargedHadrCandsTransientRefVector_
Definition: Tau.h:294
reco::PFCandidateRefVector isolationPFCandsTransientRefVector_
Definition: Tau.h:306
const reco::PFCandidateRefVector & signalPFChargedHadrCands() const
Definition: Tau.cc:428
void embedLeadPFChargedHadrCand()
method to store the leading charged hadron candidate internally
Definition: Tau.cc:287
const reco::PFCandidateRefVector & signalPFNeutrHadrCands() const
Definition: Tau.cc:443
edm::BoolCache isolationTracksTransientRefVectorFixed_
Definition: Tau.h:273
std::vector< reco::PFCandidate > isolationPFGammaCands_
Definition: Tau.h:316
reco::PFCandidateRef leadPFChargedHadrCand_
Definition: TauPFSpecific.h:27
std::vector< reco::PFCandidate > isolationPFNeutralHadrCands_
Definition: Tau.h:312
void embedSignalPFGammaCands()
method to store the signal gamma candidates internally
Definition: Tau.cc:339
std::vector< reco::GenJet > genJet_
Definition: Tau.h:322
void embedIsolationPFCands()
method to store the isolation candidates internally
Definition: Tau.cc:350
void embedIsolationPFGammaCands()
method to store the isolation gamma candidates internally
Definition: Tau.cc:381
const reco::GenJet * genJet() const
return matched GenJet, built from the visible particles of a generated tau
Definition: Tau.cc:210
reco::TrackRef leadTrack() const
override the reco::BaseTau::leadTrack method, to access the internal storage of the leading track ...
Definition: Tau.cc:144
bool embeddedIsolationPFNeutralHadrCands_
Definition: Tau.h:313
void embedSignalTracks()
method to store the signal tracks internally
Definition: Tau.cc:193
bool embeddedLeadTrack_
Definition: Tau.h:274
const pat::tau::TauPFSpecific & pfSpecific() const
return PFTau info or throw exception &#39;not PFTau&#39;
Definition: Tau.cc:238
float phiphiMoment() const
Definition: Tau.cc:255
std::vector< reco::PFCandidate > leadPFCand_
Definition: Tau.h:281
virtual double eta() const
momentum pseudorapidity
bool embeddedSignalPFGammaCands_
Definition: Tau.h:301
float etaetaMoment() const
Definition: Tau.cc:248
const reco::PFCandidateRefVector & signalPFCands() const
Definition: Tau.cc:413
reco::PFCandidateRefVector isolationPFNeutralHadrCandsTransientRefVector_
Definition: Tau.h:314
void embedSignalPFChargedHadrCands()
method to store the signal charged hadrons candidates internally
Definition: Tau.cc:319
reco::PFCandidateRefVector selectedSignalPFNeutrHadrCands_
Definition: TauPFSpecific.h:31
virtual double energy() const
energy
void embedSignalPFCands()
method to store the signal candidates internally
Definition: Tau.cc:309
tuple obj
Example code starts here #.
Definition: VarParsing.py:655
std::ostream & operator<<(std::ostream &, BeamSpot beam)
Definition: BeamSpot.cc:72
std::vector< reco::Track > signalTracks_
Definition: Tau.h:277
std::vector< IdPair > tauIDs_
Definition: Tau.h:324
reco::PFCandidateRefVector selectedIsolationPFNeutrHadrCands_
Definition: TauPFSpecific.h:32
T const * get() const
Returns C++ pointer to the item.
Definition: Ptr.h:148
edm::BoolCache signalPFNeutralHadrCandsRefVectorFixed_
Definition: Tau.h:299
reco::PFCandidateRefVector isolationPFGammaCandsTransientRefVector_
Definition: Tau.h:318
bool embeddedIsolationPFGammaCands_
Definition: Tau.h:317
std::vector< reco::PFCandidate > signalPFChargedHadrCands_
Definition: Tau.h:292
Tau()
default constructor
Definition: Tau.cc:13
const reco::PFCandidateRefVector & isolationPFNeutrHadrCands() const
Definition: Tau.cc:503
edm::BoolCache isolationPFGammaCandsRefVectorFixed_
Definition: Tau.h:319
void embedLeadTrack()
method to store the leading track internally
Definition: Tau.cc:183
Analysis-level lepton class.
Definition: Lepton.h:32
Jets made from MC generator particles.
Definition: GenJet.h:25
bool embeddedSignalTracks_
Definition: Tau.h:276
reco::PFCandidateRefVector isolationPFChargedHadrCandsTransientRefVector_
Definition: Tau.h:310
void swap(RefVector< C, T, F > &other)
Swap two vectors.
Definition: RefVector.h:152
const reco::PFCandidateRefVector & isolationPFChargedHadrCands() const
Definition: Tau.cc:488
bool embeddedLeadPFCand_
Definition: Tau.h:282
virtual const reco::TrackRefVector & signalTracks() const
Definition: BaseTau.cc:28
edm::Ref< PFCandidateCollection > PFCandidateRef
persistent reference to a PFCandidate
Analysis-level tau class.
Definition: Tau.h:51
edm::BoolCache signalPFCandsRefVectorFixed_
Definition: Tau.h:291
edm::BoolCache signalPFGammaCandsRefVectorFixed_
Definition: Tau.h:303
bool embeddedLeadPFChargedHadrCand_
Definition: Tau.h:284
void embedIsolationPFNeutralHadrCands()
method to store the isolation neutral hadrons candidates internally
Definition: Tau.cc:371
bool embeddedSignalPFNeutralHadrCands_
Definition: Tau.h:297
std::vector< reco::PFCandidate > isolationPFCands_
Definition: Tau.h:304
std::vector< reco::Track > isolationTracks_
Definition: Tau.h:271
bool isTauIDAvailable(const std::string &name) const
Returns true if a specific ID is available in this pat::Tau.
Definition: Tau.cc:230
tuple out
Definition: dbtoconf.py:99
void embedLeadPFNeutralCand()
method to store the leading neutral candidate internally
Definition: Tau.cc:298
std::vector< pat::tau::TauCaloSpecific > caloSpecific_
holder for CaloTau info, or empty vector if PFTau
Definition: Tau.h:327
reco::PFCandidateRefVector signalPFNeutralHadrCandsTransientRefVector_
Definition: Tau.h:298
bool isCaloTau() const
Returns true if this pat::Tau was made from a reco::CaloTau.
Definition: Tau.h:116
int decayMode() const
reconstructed tau decay mode (specific to PFTau)
Definition: Tau.h:244
virtual double pt() const
transverse momentum
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:14
std::vector< reco::PFCandidate > signalPFGammaCands_
Definition: Tau.h:300
const reco::PFCandidateRefVector & signalPFGammaCands() const
Definition: Tau.cc:458
void embedSignalPFNeutralHadrCands()
method to store the signal neutral hadrons candidates internally
Definition: Tau.cc:329
std::vector< reco::Track > leadTrack_
Definition: Tau.h:275
std::vector< reco::PFCandidate > isolationPFChargedHadrCands_
Definition: Tau.h:308
edm::BoolCache signalPFChargedHadrCandsRefVectorFixed_
Definition: Tau.h:295
const reco::PFCandidateRef leadPFNeutralCand() const
Definition: Tau.cc:399
void setDecayMode(int)
set decay mode
Definition: Tau.cc:269
float etaphiMoment() const
Definition: Tau.cc:262
const reco::PFCandidateRef leadPFCand() const
Definition: Tau.cc:406
reco::PFCandidateRefVector selectedSignalPFChargedHadrCands_
Definition: TauPFSpecific.h:31
void embedIsolationPFChargedHadrCands()
method to store the isolation charged hadrons candidates internally
Definition: Tau.cc:361
value_type const at(size_type idx) const
Retrieve an element of the RefVector.
Definition: RefVector.h:71
bool embeddedSignalPFCands_
Definition: Tau.h:289
const reco::PFCandidateRefVector & isolationPFGammaCands() const
Definition: Tau.cc:518
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:60
size_type size() const
Size of the RefVector.
Definition: RefVector.h:84
bool isPFTau() const
Returns true if this pat::Tau was made from a reco::PFTau.
Definition: Tau.h:149
float tauID(const std::string &name) const
Definition: Tau.cc:216
void setGenJet(const reco::GenJetRef &ref)
set the matched GenJet
Definition: Tau.cc:204
bool embeddedIsolationTracks_
Definition: Tau.h:270
void embedIsolationTracks()
method to store the isolation tracks internally
Definition: Tau.cc:172
reco::PFCandidateRef leadPFNeutralCand_
Definition: TauPFSpecific.h:29
reco::TrackRefVector isolationTracksTransientRefVector_
Definition: Tau.h:272
const reco::TrackRefVector & signalTracks() const
override the reco::BaseTau::signalTracks method, to access the internal storage of the signal tracks ...
Definition: Tau.cc:154
std::vector< reco::PFCandidate > leadPFChargedHadrCand_
Definition: Tau.h:283
reco::PFCandidateRefVector selectedSignalPFGammaCands_
Definition: TauPFSpecific.h:31
virtual ~Tau()
destructor
Definition: Tau.cc:105
virtual double phi() const
momentum azimuthal angle
void embedLeadPFCand()
method to store the leading candidate internally
Definition: Tau.cc:276
edm::BoolCache isolationPFChargedHadrCandsRefVectorFixed_
Definition: Tau.h:311
value_type const * get() const
Definition: RefToBase.h:212
reco::PFCandidateRefVector selectedIsolationPFCands_
Definition: TauPFSpecific.h:32
std::vector< pat::tau::TauPFSpecific > pfSpecific_
holder for PFTau info, or empty vector if CaloTau
Definition: Tau.h:330
const reco::TrackRefVector & isolationTracks() const
override the reco::BaseTau::isolationTracks method, to access the internal storage of the isolation t...
Definition: Tau.cc:126
reco::PFCandidateRef leadPFCand_
Definition: TauPFSpecific.h:30