CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Tau.h
Go to the documentation of this file.
1 //
2 // $Id: Tau.h,v 1.27 2010/02/22 14:10:03 mbluj Exp $
3 //
4 
5 #ifndef DataFormats_PatCandidates_Tau_h
6 #define DataFormats_PatCandidates_Tau_h
7 
28 
30 
33 
34 
35 // Define typedefs for convenience
36 namespace pat {
37  class Tau;
38  typedef std::vector<Tau> TauCollection;
41 }
42 
43 
44 // Class definition
45 namespace pat {
46 
47  class Tau : public Lepton<reco::BaseTau> {
48 
49  public:
50 
51  typedef std::pair<std::string,float> IdPair;
52 
54  Tau();
56  Tau(const reco::BaseTau & aTau);
58  Tau(const edm::RefToBase<reco::BaseTau> & aTauRef);
60  Tau(const edm::Ptr<reco::BaseTau> & aTauRef);
62  virtual ~Tau();
63 
65  virtual Tau * clone() const { return new Tau(*this); }
66 
67  // ---- methods for content embedding ----
69  const reco::TrackRefVector & isolationTracks() const;
71  reco::TrackRef leadTrack() const;
73  const reco::TrackRefVector & signalTracks() const;
75  void embedIsolationTracks();
77  void embedLeadTrack();
79  void embedSignalTracks();
82  void embedLeadPFCand();
88  void embedSignalPFCands();
96  void embedIsolationPFCands();
103 
104  // ---- matched GenJet methods ----
106  const reco::GenJet * genJet() const;
108  void setGenJet(const reco::GenJetRef & ref);
109 
110  // ---- CaloTau accessors (getters only) ----
112  bool isCaloTau() const { return !caloSpecific_.empty(); }
114  const pat::tau::TauCaloSpecific & caloSpecific() const ;
141  float maximumHCALhitEt() const { return caloSpecific().maximumHCALhitEt_; }
142 
143  // ---- PFTau accessors (getters only) ----
145  bool isPFTau() const { return !pfSpecific_.empty(); }
147  const pat::tau::TauPFSpecific & pfSpecific() const ;
162  const reco::PFCandidateRef leadPFCand() const;
198  float emFraction() const { return pfSpecific().emFraction_; }
201  float hcalTotOverPLead() const { return pfSpecific().hcalTotOverPLead_; }
204  float hcalMaxOverPLead() const { return pfSpecific().hcalMaxOverPLead_; }
207  float hcal3x3OverPLead() const { return pfSpecific().hcal3x3OverPLead_; }
225  float caloComp() const { return pfSpecific().caloComp_; }
228  float segComp() const { return pfSpecific().segComp_; }
231  bool muonDecision() const { return pfSpecific().muonDecision_; }
232 
235  float etaetaMoment() const;
236  float phiphiMoment() const;
237  float etaphiMoment() const;
238 
240  int decayMode() const { return pfSpecific().decayMode_; }
242  void setDecayMode(int);
243 
244  // ---- methods for tau ID ----
250  float tauID(const std::string & name) const;
252  bool isTauIDAvailable(const std::string & name) const;
255  const std::vector<IdPair> & tauIDs() const { return tauIDs_; }
258  void setTauIDs(const std::vector<IdPair> & ids) { tauIDs_ = ids; }
259 
260  protected:
261 
262  // ---- for content embedding ----
264  std::vector<reco::Track> isolationTracks_;
268  std::vector<reco::Track> leadTrack_;
270  std::vector<reco::Track> signalTracks_;
273  // specific for PFTau
274  std::vector<reco::PFCandidate> leadPFCand_;
276  std::vector<reco::PFCandidate> leadPFChargedHadrCand_;
278  std::vector<reco::PFCandidate> leadPFNeutralCand_;
280 
281  std::vector<reco::PFCandidate> signalPFCands_;
285  std::vector<reco::PFCandidate> signalPFChargedHadrCands_;
289  std::vector<reco::PFCandidate> signalPFNeutralHadrCands_;
293  std::vector<reco::PFCandidate> signalPFGammaCands_;
297  std::vector<reco::PFCandidate> isolationPFCands_;
301  std::vector<reco::PFCandidate> isolationPFChargedHadrCands_;
305  std::vector<reco::PFCandidate> isolationPFNeutralHadrCands_;
309  std::vector<reco::PFCandidate> isolationPFGammaCands_;
313 
314  // ---- matched GenJet holder ----
315  std::vector<reco::GenJet> genJet_;
316  // ---- tau ID's holder ----
317  std::vector<IdPair> tauIDs_;
318  // ---- CaloTau specific variables ----
320  std::vector<pat::tau::TauCaloSpecific> caloSpecific_;
321  // ---- PFTau specific variables ----
323  std::vector<pat::tau::TauPFSpecific> pfSpecific_;
324  };
325 }
326 
327 #endif
bool embeddedLeadPFNeutralCand_
Definition: Tau.h:279
virtual Tau * clone() const
required reimplementation of the Candidate&#39;s clone method
Definition: Tau.h:65
const reco::PFCandidateRef leadPFChargedHadrCand() const
Definition: Tau.cc:380
const std::vector< IdPair > & tauIDs() const
Definition: Tau.h:255
float hcalTotOverPLead() const
Definition: Tau.h:201
reco::PFCandidateRefVector signalPFCandsTransientRefVector_
Definition: Tau.h:283
reco::CaloTauTagInfoRef CaloTauTagInfoRef_
std::pair< std::string, float > IdPair
Definition: Tau.h:51
float caloComp() const
Definition: Tau.h:225
bool embeddedSignalPFChargedHadrCands_
Definition: Tau.h:286
float isolationTracksPtSum() const
Definition: Tau.h:135
std::vector< reco::PFCandidate > leadPFNeutralCand_
Definition: Tau.h:278
edm::BoolCache isolationPFNeutralHadrCandsRefVectorFixed_
Definition: Tau.h:308
edm::BoolCache isolationPFCandsRefVectorFixed_
Definition: Tau.h:300
reco::TrackRef electronPreIDTrack_
Definition: TauPFSpecific.h:43
const reco::PFCandidateRefVector & isolationPFCands() const
Definition: Tau.cc:461
reco::PFCandidateRefVector signalPFGammaCandsTransientRefVector_
Definition: Tau.h:295
edm::BoolCache signalTracksTransientRefVectorFixed_
Definition: Tau.h:272
std::vector< reco::PFCandidate > signalPFNeutralHadrCands_
Definition: Tau.h:289
const pat::tau::TauCaloSpecific & caloSpecific() const
return CaloTau info or throw exception &#39;not CaloTau&#39;
Definition: Tau.cc:231
std::vector< reco::PFCandidate > signalPFCands_
Definition: Tau.h:281
bool embeddedIsolationPFChargedHadrCands_
Definition: Tau.h:302
reco::TrackRefVector signalTracksTransientRefVector_
Definition: Tau.h:271
bool embeddedIsolationPFCands_
Definition: Tau.h:298
float hcal3x3OverPLead() const
Definition: Tau.h:207
reco::PFCandidateRefVector signalPFChargedHadrCandsTransientRefVector_
Definition: Tau.h:287
reco::PFCandidateRefVector isolationPFCandsTransientRefVector_
Definition: Tau.h:299
const reco::PFCandidateRefVector & signalPFChargedHadrCands() const
Definition: Tau.cc:416
void embedLeadPFChargedHadrCand()
method to store the leading charged hadron candidate internally
Definition: Tau.cc:275
const reco::PFCandidateRefVector & signalPFNeutrHadrCands() const
Definition: Tau.cc:431
reco::CaloTauTagInfoRef caloTauTagInfoRef() const
Definition: Tau.h:117
edm::BoolCache isolationTracksTransientRefVectorFixed_
Definition: Tau.h:266
std::vector< reco::PFCandidate > isolationPFGammaCands_
Definition: Tau.h:309
std::vector< reco::PFCandidate > isolationPFNeutralHadrCands_
Definition: Tau.h:305
float TracksInvariantMass() const
Definition: Tau.h:132
void embedSignalPFGammaCands()
method to store the signal gamma candidates internally
Definition: Tau.cc:327
std::vector< Tau > TauCollection
Definition: Tau.h:37
std::vector< reco::GenJet > genJet_
Definition: Tau.h:315
void embedIsolationPFCands()
method to store the isolation candidates internally
Definition: Tau.cc:338
void embedIsolationPFGammaCands()
method to store the isolation gamma candidates internally
Definition: Tau.cc:369
const reco::GenJet * genJet() const
return matched GenJet, built from the visible particles of a generated tau
Definition: Tau.cc:198
const reco::TrackRef & electronPreIDTrack() const
Definition: Tau.h:216
float leadTrackHCAL3x3hottesthitDEta() const
Definition: Tau.h:126
edm::Ref< TauCollection > TauRef
Definition: Tau.h:39
void setTauIDs(const std::vector< IdPair > &ids)
Definition: Tau.h:258
reco::TrackRef leadTrack() const
override the reco::BaseTau::leadTrack method, to access the internal storage of the leading track ...
Definition: Tau.cc:132
bool embeddedIsolationPFNeutralHadrCands_
Definition: Tau.h:306
void embedSignalTracks()
method to store the signal tracks internally
Definition: Tau.cc:181
float leadPFChargedHadrCandsignedSipt_
Definition: TauPFSpecific.h:28
bool embeddedLeadTrack_
Definition: Tau.h:267
float isolationPFGammaCandsEtSum() const
Definition: Tau.h:192
const pat::tau::TauPFSpecific & pfSpecific() const
return PFTau info or throw exception &#39;not PFTau&#39;
Definition: Tau.cc:226
edm::RefVector< TauCollection > TauRefVector
Definition: Tau.h:40
float maximumHCALPFClusterEt() const
Definition: Tau.h:195
float phiphiMoment() const
Definition: Tau.cc:243
std::vector< reco::PFCandidate > leadPFCand_
Definition: Tau.h:274
bool embeddedSignalPFGammaCands_
Definition: Tau.h:294
float etaetaMoment() const
Definition: Tau.cc:236
float maximumHCALhitEt() const
Definition: Tau.h:141
const reco::PFCandidateRefVector & signalPFCands() const
Definition: Tau.cc:401
reco::PFCandidateRefVector isolationPFNeutralHadrCandsTransientRefVector_
Definition: Tau.h:307
void embedSignalPFChargedHadrCands()
method to store the signal charged hadrons candidates internally
Definition: Tau.cc:307
float hcalMaxOverPLead() const
Definition: Tau.h:204
float isolationPFChargedHadrCandsPtSum() const
Definition: Tau.h:189
void embedSignalPFCands()
method to store the signal candidates internally
Definition: Tau.cc:297
std::vector< reco::Track > signalTracks_
Definition: Tau.h:270
std::vector< IdPair > tauIDs_
Definition: Tau.h:317
float signalTracksInvariantMass() const
Definition: Tau.h:129
edm::BoolCache signalPFNeutralHadrCandsRefVectorFixed_
Definition: Tau.h:292
reco::PFCandidateRefVector isolationPFGammaCandsTransientRefVector_
Definition: Tau.h:311
bool embeddedIsolationPFGammaCands_
Definition: Tau.h:310
std::vector< reco::PFCandidate > signalPFChargedHadrCands_
Definition: Tau.h:285
Tau()
default constructor
Definition: Tau.cc:13
const reco::PFCandidateRefVector & isolationPFNeutrHadrCands() const
Definition: Tau.cc:491
edm::BoolCache isolationPFGammaCandsRefVectorFixed_
Definition: Tau.h:312
void embedLeadTrack()
method to store the leading track internally
Definition: Tau.cc:171
Analysis-level lepton class.
Definition: Lepton.h:32
float isolationECALhitsEtSum() const
Definition: Tau.h:138
Jets made from MC generator particles.
Definition: GenJet.h:25
bool embeddedSignalTracks_
Definition: Tau.h:269
reco::PFCandidateRefVector isolationPFChargedHadrCandsTransientRefVector_
Definition: Tau.h:303
const reco::PFCandidateRefVector & isolationPFChargedHadrCands() const
Definition: Tau.cc:476
bool embeddedLeadPFCand_
Definition: Tau.h:275
Analysis-level tau class.
Definition: Tau.h:47
edm::BoolCache signalPFCandsRefVectorFixed_
Definition: Tau.h:284
edm::BoolCache signalPFGammaCandsRefVectorFixed_
Definition: Tau.h:296
bool embeddedLeadPFChargedHadrCand_
Definition: Tau.h:277
void embedIsolationPFNeutralHadrCands()
method to store the isolation neutral hadrons candidates internally
Definition: Tau.cc:359
bool embeddedSignalPFNeutralHadrCands_
Definition: Tau.h:290
std::vector< reco::PFCandidate > isolationPFCands_
Definition: Tau.h:297
std::vector< reco::Track > isolationTracks_
Definition: Tau.h:264
bool isTauIDAvailable(const std::string &name) const
Returns true if a specific ID is available in this pat::Tau.
Definition: Tau.cc:218
float isolationPFChargedHadrCandsPtSum_
Definition: TauPFSpecific.h:33
void embedLeadPFNeutralCand()
method to store the leading neutral candidate internally
Definition: Tau.cc:286
float emFraction() const
Definition: Tau.h:198
std::vector< pat::tau::TauCaloSpecific > caloSpecific_
holder for CaloTau info, or empty vector if PFTau
Definition: Tau.h:320
reco::PFCandidateRefVector signalPFNeutralHadrCandsTransientRefVector_
Definition: Tau.h:291
float ecalStripSumEOverPLead() const
Definition: Tau.h:210
bool isCaloTau() const
Returns true if this pat::Tau was made from a reco::CaloTau.
Definition: Tau.h:112
float leadTrackHCAL3x3hitsEtSum() const
Definition: Tau.h:123
int decayMode() const
reconstructed tau decay mode (specific to PFTau)
Definition: Tau.h:240
float bremsRecoveryEOverPLead() const
Definition: Tau.h:213
std::vector< reco::PFCandidate > signalPFGammaCands_
Definition: Tau.h:293
const reco::PFCandidateRefVector & signalPFGammaCands() const
Definition: Tau.cc:446
float leadPFChargedHadrCandsignedSipt() const
Definition: Tau.h:156
std::vector< reco::Track > leadTrack_
Definition: Tau.h:268
void embedSignalPFNeutralHadrCands()
method to store the signal neutral hadrons candidates internally
Definition: Tau.cc:317
std::vector< reco::PFCandidate > isolationPFChargedHadrCands_
Definition: Tau.h:301
edm::BoolCache signalPFChargedHadrCandsRefVectorFixed_
Definition: Tau.h:288
const reco::PFCandidateRef leadPFNeutralCand() const
Definition: Tau.cc:387
void setDecayMode(int)
set decay mode
Definition: Tau.cc:257
float etaphiMoment() const
Definition: Tau.cc:250
const reco::PFCandidateRef leadPFCand() const
Definition: Tau.cc:394
void embedIsolationPFChargedHadrCands()
method to store the isolation charged hadrons candidates internally
Definition: Tau.cc:349
bool embeddedSignalPFCands_
Definition: Tau.h:282
const reco::PFCandidateRefVector & isolationPFGammaCands() const
Definition: Tau.cc:506
float segComp() const
Definition: Tau.h:228
bool isPFTau() const
Returns true if this pat::Tau was made from a reco::PFTau.
Definition: Tau.h:145
float tauID(const std::string &name) const
Definition: Tau.cc:204
void setGenJet(const reco::GenJetRef &ref)
set the matched GenJet
Definition: Tau.cc:192
bool embeddedIsolationTracks_
Definition: Tau.h:263
float leadTracksignedSipt() const
Definition: Tau.h:120
void embedIsolationTracks()
method to store the isolation tracks internally
Definition: Tau.cc:160
reco::TrackRefVector isolationTracksTransientRefVector_
Definition: Tau.h:265
const reco::TrackRefVector & signalTracks() const
override the reco::BaseTau::signalTracks method, to access the internal storage of the signal tracks ...
Definition: Tau.cc:142
std::vector< reco::PFCandidate > leadPFChargedHadrCand_
Definition: Tau.h:276
virtual ~Tau()
destructor
Definition: Tau.cc:109
void embedLeadPFCand()
method to store the leading candidate internally
Definition: Tau.cc:264
edm::BoolCache isolationPFChargedHadrCandsRefVectorFixed_
Definition: Tau.h:304
std::vector< pat::tau::TauPFSpecific > pfSpecific_
holder for PFTau info, or empty vector if CaloTau
Definition: Tau.h:323
float electronPreIDOutput() const
Definition: Tau.h:219
const reco::TrackRefVector & isolationTracks() const
override the reco::BaseTau::isolationTracks method, to access the internal storage of the isolation t...
Definition: Tau.cc:114
bool electronPreIDDecision() const
Definition: Tau.h:222
bool muonDecision() const
Definition: Tau.h:231