CMS 3D CMS Logo

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
int Charge
electric charge type
Definition: Candidate.h:34
hadronicTauDecayModes theDecayMode_
~PFTauDecayMode() override
std::vector< const Candidate * > filteredObjectCandidates(int absCharge=-2) const
returns pointers to filtered objects (i.e. those not included in signal objects)
CompositeCandidate piZeroes_
std::vector< const Candidate * > neutralPionCandidates() const
returns pointers to neutral pions
void setPFTauRef(const PFTauRef &theTau)
const VertexCompositeCandidate & chargedPions() const
returns collection of charged pions w/ vertex information (tracks are refit)
const CompositeCandidate & neutralPions() const
returns a collection of merged Pi0s
int status() const final
status word
std::vector< const Candidate * > chargedFilteredObjectCandidates() const
returns only charged filtered objects
const LorentzVector & p4() const final
four-momentum Lorentz vector
hadronicTauDecayModes getDecayMode() const
static std::string const input
Definition: EdmProvDump.cc:50
int pdgId() const final
PDG identifier.
static const unsigned char maxNumberOfPiZeroCandidatesAllowed
void pfMasterClones(const Candidate *input, PFCandidateRefVector &toFill) const
fills master clones to PF objects (utility function)
PFCandidateRefVector associatedNeutralPFCandidates() const
returns the PFCandidates associated to the PiZero signal objects (i.e., the unmerged photons) ...
std::vector< const Candidate * > decayProductCandidates() const
returns pointers to non-filtered objects
const PFTauRef & pfTauRef() const
return reference to associated PFTau object
CompositeCandidate filteredObjects_
PFCandidateRefVector associatedChargedPFCandidates() const
returns the PFCandidates associated to the charged signal objects
PFTauDecayMode * clone() const override
returns a clone of the candidate
const CompositeCandidate & filteredObjects() const
returns references to PF objects that were filtered
std::vector< const Candidate * > neutralFilteredObjectCandidates() const
returns only netural filtered objects
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
fixed size matrix
Structure Point Contains parameters of Gaussian fits to DMRs.
VertexCompositeCandidate chargedPions_
void setDecayMode(hadronicTauDecayModes theDecayMode)
PFCandidateRefVector filteredPFCandidates() const
returns the PFCandidates that were filtered
math::XYZPoint Point
point in the space
Definition: LeafCandidate.h:27
std::vector< const Candidate * > chargedPionCandidates() const
returns pointers to charged pions