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 
26 
27 namespace reco {
29  public:
30  //to help with indexing. changing this value necissitates changing the enum below
31  const static unsigned char maxNumberOfPiZeroCandidatesAllowed = 4;
32 
35  tauDecay1ChargedPion1PiZero, // rho (770 MeV) mediated)
36  tauDecay1ChargedPion2PiZero, // a1 (1.2 GeV) mediated
37  tauDecay1ChargedPion3PiZero, // contaminated or unmerged photo
38  tauDecay1ChargedPion4PiZero, // contaminated or unmerged photo
39  tauDecay2ChargedPion0PiZero, // extra track or un-recod track
40  tauDecay2ChargedPion1PiZero, // extra track or un-recod track
41  tauDecay2ChargedPion2PiZero, // extra track or un-recod track
42  tauDecay2ChargedPion3PiZero, // extra track or un-recod track
43  tauDecay2ChargedPion4PiZero, // extra track or un-recod track
44  tauDecay3ChargedPion0PiZero, // a1 (1.2 GeV) mediated
45  tauDecay3ChargedPion1PiZero, // a1 (1.2 GeV) mediated
46  tauDecay3ChargedPion2PiZero, // a1 (1.2 GeV) mediated
47  tauDecay3ChargedPion3PiZero, // a1 (1.2 GeV) mediated
48  tauDecay3ChargedPion4PiZero, // a1 (1.2 GeV) mediated
51  tauDecayOther // catch-all
52  };
53 
57  const LorentzVector& p4,
58  const Point& vtx = Point(0, 0, 0),
59  int pdgId = 12,
60  int status = 2,
61  bool integerCharge = true)
62  : CompositeCandidate(q, p4, vtx, pdgId, status, integerCharge) {}
63 
66  const CompositeCandidate& piZeroes,
68 
69  ~PFTauDecayMode() override {}
70  PFTauDecayMode* clone() const override;
71 
73  const PFTauRef& pfTauRef() const { return pfTauRef_; }
74  void setPFTauRef(const PFTauRef& theTau) { pfTauRef_ = theTau; }
75 
77  void setDecayMode(hadronicTauDecayModes theDecayMode) { theDecayMode_ = theDecayMode; }
78 
82  const CompositeCandidate& neutralPions() const;
84  const CompositeCandidate& filteredObjects() const;
85 
87  std::vector<const Candidate*> chargedPionCandidates() const;
89  std::vector<const Candidate*> neutralPionCandidates() const;
91  std::vector<const Candidate*> decayProductCandidates() const;
93  std::vector<const Candidate*> filteredObjectCandidates(int absCharge = -2) const;
95  std::vector<const Candidate*> neutralFilteredObjectCandidates() const;
97  std::vector<const Candidate*> chargedFilteredObjectCandidates() const;
98 
100  void pfMasterClones(const Candidate* input, PFCandidateRefVector& toFill) const;
101 
108 
109  protected:
113  CompositeCandidate filteredObjects_; // stores objects considered UE
115  };
116 } // namespace reco
117 
118 #endif
std::vector< const Candidate * > chargedFilteredObjectCandidates() const
returns only charged filtered objects
int pdgId() const final
PDG identifier.
int Charge
electric charge type
Definition: Candidate.h:35
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)
PFTauDecayMode * clone() const override
returns a clone of the candidate
const VertexCompositeCandidate & chargedPions() const
returns collection of charged pions w/ vertex information (tracks are refit)
const PFTauRef & pfTauRef() const
return reference to associated PFTau object
static std::string const input
Definition: EdmProvDump.cc:48
std::vector< const Candidate * > filteredObjectCandidates(int absCharge=-2) const
returns pointers to filtered objects (i.e. those not included in signal objects)
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
const LorentzVector & p4() const final
four-momentum Lorentz vector
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_
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
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.
Definition: DMRtrends.cc:57
int status() const final
status word
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