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 
31  const static unsigned char maxNumberOfPiZeroCandidatesAllowed = 4; //to help with indexing. changing this value necissitates changing the enum below
32 
34  {
36  tauDecay1ChargedPion1PiZero, // rho (770 MeV) mediated)
37  tauDecay1ChargedPion2PiZero, // a1 (1.2 GeV) mediated
38  tauDecay1ChargedPion3PiZero, // contaminated or unmerged photo
39  tauDecay1ChargedPion4PiZero, // contaminated or unmerged photo
40  tauDecay2ChargedPion0PiZero, // extra track or un-recod track
41  tauDecay2ChargedPion1PiZero, // extra track or un-recod track
42  tauDecay2ChargedPion2PiZero, // extra track or un-recod track
43  tauDecay2ChargedPion3PiZero, // extra track or un-recod track
44  tauDecay2ChargedPion4PiZero, // extra track or un-recod track
45  tauDecay3ChargedPion0PiZero, // a1 (1.2 GeV) mediated
46  tauDecay3ChargedPion1PiZero, // a1 (1.2 GeV) mediated
47  tauDecay3ChargedPion2PiZero, // a1 (1.2 GeV) mediated
48  tauDecay3ChargedPion3PiZero, // a1 (1.2 GeV) mediated
49  tauDecay3ChargedPion4PiZero, // a1 (1.2 GeV) mediated
52  tauDecayOther // catch-all
53  };
54 
57  PFTauDecayMode( Charge q,const LorentzVector& p4,const Point & vtx = Point( 0, 0, 0 ),
58  int pdgId = 12, int status = 2, bool integerCharge = true):CompositeCandidate(q, p4, vtx, pdgId, status, integerCharge){}
59 
62  const CompositeCandidate& piZeroes,
64 
65  ~PFTauDecayMode() override{}
66  PFTauDecayMode* clone() const override;
67 
69  const PFTauRef& pfTauRef() const { return pfTauRef_; }
70  void setPFTauRef(const PFTauRef& theTau) { pfTauRef_ = theTau;}
71 
73  void setDecayMode(hadronicTauDecayModes theDecayMode) { theDecayMode_ = theDecayMode; }
74 
78  const CompositeCandidate& neutralPions() const;
80  const CompositeCandidate& filteredObjects() const;
81 
83  std::vector<const Candidate*> chargedPionCandidates() const;
85  std::vector<const Candidate*> neutralPionCandidates() const;
87  std::vector<const Candidate*> decayProductCandidates() const;
89  std::vector<const Candidate*> filteredObjectCandidates(int absCharge = -2) const;
91  std::vector<const Candidate*> neutralFilteredObjectCandidates() const;
93  std::vector<const Candidate*> chargedFilteredObjectCandidates() const;
94 
96  void pfMasterClones(const Candidate* input, PFCandidateRefVector& toFill) const;
97 
104 
105  protected:
109  CompositeCandidate filteredObjects_; // stores objects considered UE
111  };
112 }
113 
114 #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:45
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
Definition: LeafCandidate.h:99
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
int status() const final
status word
math::XYZPoint Point
point in the space
Definition: Candidate.h:41
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