CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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 
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  virtual ~PFTauDecayMode(){}
66  PFTauDecayMode* clone() const;
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 Charge
electric charge type
Definition: Candidate.h:36
const CompositeCandidate & filteredObjects() const
returns references to PF objects that were filtered
virtual int pdgId() const
PDG identifier.
hadronicTauDecayModes theDecayMode_
CompositeCandidate piZeroes_
PFTauDecayMode * clone() const
returns a clone of the candidate
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)
virtual int status() const
status word
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
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
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:38
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
math::XYZPoint Point
point in the space
Definition: Candidate.h:42
VertexCompositeCandidate chargedPions_
void setDecayMode(hadronicTauDecayModes theDecayMode)
virtual const LorentzVector & p4() const
four-momentum Lorentz vector
std::vector< const Candidate * > neutralFilteredObjectCandidates() const
returns only netural filtered objects
math::XYZPoint Point
point in the space
Definition: LeafCandidate.h:29