CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
PFTauDecayMode.h
Go to the documentation of this file.
1 #ifndef DataFormats_TauReco_PFTauDecayMode_h
2 #define DataFormats_TauReco_PFTauDecayMode_h
3 
4 /* class PFTauDecayMode
5  *
6  * Stores information for determing the type of hadronic decay of a tau lepton
7  *
8  * Associated to a reco::PFTau object
9  * Provides functionality for:
10  * - merging gamma candidates into candidate PiZeroes
11  * - indexing reconstructed hadronic decay mode
12  * - computing vertex information for multi-prong
13  * - filtering suspected underlying event
14  *
15  * author: Evan K. Friis, UC Davis (evan.klose.friis@cern.ch)
16  * created: Mon Jun 30 13:53:59 PDT 2008
17  */
18 
25 
26 namespace reco {
28  public:
29  //to help with indexing. changing this value necissitates changing the enum below
30  const static unsigned char maxNumberOfPiZeroCandidatesAllowed = 4;
31 
34  tauDecay1ChargedPion1PiZero, // rho (770 MeV) mediated)
35  tauDecay1ChargedPion2PiZero, // a1 (1.2 GeV) mediated
36  tauDecay1ChargedPion3PiZero, // contaminated or unmerged photo
37  tauDecay1ChargedPion4PiZero, // contaminated or unmerged photo
38  tauDecay2ChargedPion0PiZero, // extra track or un-recod track
39  tauDecay2ChargedPion1PiZero, // extra track or un-recod track
40  tauDecay2ChargedPion2PiZero, // extra track or un-recod track
41  tauDecay2ChargedPion3PiZero, // extra track or un-recod track
42  tauDecay2ChargedPion4PiZero, // extra track or un-recod track
43  tauDecay3ChargedPion0PiZero, // a1 (1.2 GeV) mediated
44  tauDecay3ChargedPion1PiZero, // a1 (1.2 GeV) mediated
45  tauDecay3ChargedPion2PiZero, // a1 (1.2 GeV) mediated
46  tauDecay3ChargedPion3PiZero, // a1 (1.2 GeV) mediated
47  tauDecay3ChargedPion4PiZero, // a1 (1.2 GeV) mediated
50  tauDecayOther // catch-all
51  };
52 
56  const LorentzVector& p4,
57  const Point& vtx = Point(0, 0, 0),
58  int pdgId = 12,
59  int status = 2,
60  bool integerCharge = true)
61  : CompositeCandidate(q, p4, vtx, pdgId, status, integerCharge) {}
62 
65  const CompositeCandidate& piZeroes,
67 
68  ~PFTauDecayMode() override {}
69  PFTauDecayMode* clone() const override;
70 
72  const PFTauRef& pfTauRef() const { return pfTauRef_; }
73  void setPFTauRef(const PFTauRef& theTau) { pfTauRef_ = theTau; }
74 
76  void setDecayMode(hadronicTauDecayModes theDecayMode) { theDecayMode_ = theDecayMode; }
77 
81  const CompositeCandidate& neutralPions() const;
83  const CompositeCandidate& filteredObjects() const;
84 
86  std::vector<const Candidate*> chargedPionCandidates() const;
88  std::vector<const Candidate*> neutralPionCandidates() const;
90  std::vector<const Candidate*> decayProductCandidates() const;
92  std::vector<const Candidate*> filteredObjectCandidates(int absCharge = -2) const;
94  std::vector<const Candidate*> neutralFilteredObjectCandidates() const;
96  std::vector<const Candidate*> chargedFilteredObjectCandidates() const;
97 
99  void pfMasterClones(const Candidate* input, PFCandidateRefVector& toFill) const;
100 
107 
108  protected:
112  CompositeCandidate filteredObjects_; // stores objects considered UE
114  };
115 } // namespace reco
116 
117 #endif
std::vector< const Candidate * > chargedFilteredObjectCandidates() const
returns only charged filtered objects
int Charge
electric charge type
Definition: Candidate.h:34
const CompositeCandidate & filteredObjects() const
returns references to PF objects that were filtered
hadronicTauDecayModes theDecayMode_
~PFTauDecayMode() override
CompositeCandidate piZeroes_
void pfMasterClones(const Candidate *input, PFCandidateRefVector &toFill) const
fills master clones to PF objects (utility function)
std::vector< const Candidate * > neutralPionCandidates() const
returns pointers to neutral pions
void setPFTauRef(const PFTauRef &theTau)
int status() const final
status word
const VertexCompositeCandidate & chargedPions() const
returns collection of charged pions w/ vertex information (tracks are refit)
const LorentzVector & p4() const final
four-momentum Lorentz vector
const PFTauRef & pfTauRef() const
return reference to associated PFTau object
static std::string const input
Definition: EdmProvDump.cc:47
std::vector< const Candidate * > filteredObjectCandidates(int absCharge=-2) const
returns pointers to filtered objects (i.e. those not included in signal objects)
int pdgId() const final
PDG identifier.
PFCandidateRefVector associatedChargedPFCandidates() const
returns the PFCandidates associated to the charged signal objects
const CompositeCandidate & neutralPions() const
returns a collection of merged Pi0s
hadronicTauDecayModes getDecayMode() const
static const unsigned char maxNumberOfPiZeroCandidatesAllowed
PFCandidateRefVector filteredPFCandidates() const
returns the PFCandidates that were filtered
PFCandidateRefVector associatedNeutralPFCandidates() const
returns the PFCandidates associated to the PiZero signal objects (i.e., the unmerged photons) ...
std::vector< const Candidate * > chargedPionCandidates() const
returns pointers to charged pions
std::vector< const Candidate * > decayProductCandidates() const
returns pointers to non-filtered objects
CompositeCandidate filteredObjects_
PFTauDecayMode * clone() const override
returns a clone of the candidate
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:36
PFTauDecayMode(Charge q, const LorentzVector &p4, const Point &vtx=Point(0, 0, 0), int pdgId=12, int status=2, bool integerCharge=true)
constructor from values
Structure Point Contains parameters of Gaussian fits to DMRs.
Definition: DMRtrends.cc:57
VertexCompositeCandidate chargedPions_
void setDecayMode(hadronicTauDecayModes theDecayMode)
std::vector< const Candidate * > neutralFilteredObjectCandidates() const
returns only netural filtered objects
math::XYZPoint Point
point in the space
Definition: LeafCandidate.h:27