ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/PFTau.h
Revision: 1.4
Committed: Wed Apr 8 10:01:50 2009 UTC (16 years ago) by loizides
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_017, Mit_017pre3, Mit_017pre2, Mit_017pre1, Mit_016, Mit_015b, Mit_015a, Mit_015, Mit_014e, Mit_014d, Mit_014c, Mit_014b, Mit_014a, Mit_014, Mit_014pre3, Mit_014pre2, Mit_014pre1, Mit_013d, Mit_013c, Mit_013b, Mit_013a, Mit_013, Mit_013pre1, Mit_012i, Mit_012h, Mit_012g, Mit_012f, Mit_012e, Mit_012d, Mit_012c, Mit_012b, Mit_012a, Mit_012, Mit_011a, Mit_011, Mit_010a, Mit_010, Mit_009c, Mit_009b, Mit_009a, Mit_009
Changes since 1.3: +19 -4 lines
Log Message:
Have GetCharge for Taus.

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id: PFTau.h,v 1.3 2009/03/22 19:55:45 loizides Exp $
3 //
4 // PFTau
5 //
6 // This class holds information about reconstructed tau based on PFCandidates.
7 //
8 // Authors: J.Bendavid
9 //--------------------------------------------------------------------------------------------------
10
11 #ifndef MITANA_DATATREE_PFTAU_H
12 #define MITANA_DATATREE_PFTAU_H
13
14 #include "MitAna/DataTree/interface/Tau.h"
15 #include "MitAna/DataCont/interface/RefArray.h"
16 #include "MitAna/DataCont/interface/Ref.h"
17 #include "MitAna/DataTree/interface/PFCandidate.h"
18 #include "MitAna/DataTree/interface/BasicCluster.h"
19 #include "MitAna/DataTree/interface/PFJet.h"
20
21 namespace mithep
22 {
23 class PFTau : public Tau
24 {
25 public:
26 PFTau() : fLeadPFCandSignD0Sig(0), fHCalTotalEOverP(0), fHCalMaxEOverP(0),
27 fHCal3x3EOverP(0), fIsoChargedHadronPtSum(0), fIsoGammaEtSum(0),
28 fMaxHCalPFClusterEt(0), fEMFraction(0), fECalStripSumEOverP(0),
29 fBremRecoveryEOverP(0), fElectronPreIDOutput(0), fCaloCompatibility(0),
30 fSegmentCompatibility(0), fElectronPreIDDecision(kFALSE),
31 fMuonDecision(kFALSE) {}
32
33 PFTau(Double_t px, Double_t py, Double_t pz, Double_t e) :
34 Tau(px,py,pz,e),
35 fLeadPFCandSignD0Sig(0), fHCalTotalEOverP(0), fHCalMaxEOverP(0),
36 fHCal3x3EOverP(0), fIsoChargedHadronPtSum(0), fIsoGammaEtSum(0),
37 fMaxHCalPFClusterEt(0), fEMFraction(0), fECalStripSumEOverP(0),
38 fBremRecoveryEOverP(0), fElectronPreIDOutput(0), fCaloCompatibility(0),
39 fSegmentCompatibility(0), fElectronPreIDDecision(kFALSE),
40 fMuonDecision(kFALSE) {}
41
42 void AddIsoPFCand(const PFCandidate *p) { fIsoPFCands.Add(p); }
43 void AddSignalPFCand(const PFCandidate *p)
44 { ClearCharge(); fSignalPFCands.Add(p); }
45 Double_t BremRecoveryEOverP() const { return fBremRecoveryEOverP; }
46 Double_t CaloCompatibility() const { return fCaloCompatibility; }
47 Double_t ECalStripSumEOverP() const { return fECalStripSumEOverP; }
48 Double_t EMFraction() const { return fEMFraction; }
49 const Track *ElectronTrack() const { return fElectronTrack.Obj(); }
50 Bool_t ElectronPreIDDecision() const { return fElectronPreIDDecision; }
51 Double_t ElectronPreIDOutput() const { return fElectronPreIDOutput; }
52 Double_t HCal3x3EOverP() const { return fHCal3x3EOverP; }
53 Double_t HCalMaxEOverP() const { return fHCalMaxEOverP; }
54 Double_t HCalTotalEOverP() const { return fHCalTotalEOverP; }
55 Double_t IsoChargedHadronPtSum() const { return fIsoChargedHadronPtSum; }
56 Double_t IsoGammaEtSum() const { return fIsoGammaEtSum; }
57 const PFCandidate *IsoPFCand(UInt_t i) const { return fIsoPFCands.At(i); }
58 const PFCandidate *LeadChargedHadronPFCand() const { return fLeadChargedHadPFCand.Obj(); }
59 const PFCandidate *LeadNeutralHadronPFCand() const { return fLeadNeutralPFCand.Obj(); }
60 const PFCandidate *LeadPFCand() const { return fLeadPFCand.Obj(); }
61 Double_t LeadPFCandSignD0Sig() const { return fLeadPFCandSignD0Sig; }
62 Double_t MaxHCalPFClusterEt() const { return fMaxHCalPFClusterEt; }
63 Bool_t MuonDecision() const { return fMuonDecision; }
64 UInt_t NIsoPFCandS() const { return fIsoPFCands.Entries(); }
65 UInt_t NSignalPFCands() const { return fSignalPFCands.Entries(); }
66 EObjType ObjType() const { return kPFTau; }
67 Double_t SegmentCompatibility() const { return fSegmentCompatibility; }
68 void SetBremRecoveryEOverP(Double_t x) { fBremRecoveryEOverP = x; }
69 void SetCaloCompatibility(Double_t x) { fCaloCompatibility = x; }
70 void SetECalStripSumEOverP(Double_t x) { fECalStripSumEOverP = x; }
71 void SetEMFraction(Double_t x) { fEMFraction = x; }
72 void SetElectronPreIDDecision(Bool_t b) { fElectronPreIDDecision = b; }
73 void SetElectronPreIDOutput(Double_t x) { fElectronPreIDOutput = x; }
74 void SetElectronTrack(const Track *t) { fElectronTrack = t; }
75 void SetHCal3x3EOverP(Double_t x) { fHCal3x3EOverP = x; }
76 void SetHCalMaxEOverP(Double_t x) { fHCalMaxEOverP = x; }
77 void SetHCalTotalEOverP(Double_t x) { fHCalTotalEOverP = x; }
78 void SetIsoChargedHadronPtSum(Double_t x){ fIsoChargedHadronPtSum = x; }
79 void SetIsoGammaEtSum(Double_t x) { fIsoGammaEtSum = x; }
80 void SetLeadChargedHadronPFCand(const PFCandidate *p)
81 { fLeadChargedHadPFCand = p; }
82 void SetLeadNeutralPFCand(const PFCandidate *p) { fLeadNeutralPFCand = p; }
83 void SetLeadPFCand(const PFCandidate *p) { fLeadPFCand = p; }
84 void SetLeadPFCandSignD0Sig(Double_t x) { fLeadPFCandSignD0Sig = x; }
85 void SetMaxHCalPFClusterEt(Double_t x) { fMaxHCalPFClusterEt = x; }
86 void SetMuonDecision(Bool_t b) { fMuonDecision = b; }
87 void SetPFJet(const PFJet *j) { fPFJet = j; }
88 void SetSegmentCompatibility(Double_t x) { fSegmentCompatibility = x; }
89 const PFCandidate *SignalPFCand(UInt_t i) const { return fSignalPFCands.At(i); }
90 const PFJet *SourcePFJet() const { return fPFJet.Obj(); }
91 const Jet *SourceJet() const { return SourcePFJet(); }
92
93 protected:
94 Double_t GetCharge() const;
95
96 Double32_t fLeadPFCandSignD0Sig; //[0,0,14]signed lead track D0 significance
97 Double32_t fHCalTotalEOverP; //[0,0,14]total hcal e / lead ch had pfcand mom
98 Double32_t fHCalMaxEOverP; //[0,0,14]max hcal e / lead ch had pfcand. mom
99 Double32_t fHCal3x3EOverP; //[0,0,14]3x3 hcal e / lead ch hadron pfcand. mom
100 Double32_t fIsoChargedHadronPtSum; //[0,0,14]sum pt of sel. ch had pfcands in iso cone
101 Double32_t fIsoGammaEtSum; //[0,0,14]sum et of sel. photon pfcands in iso cone
102 Double32_t fMaxHCalPFClusterEt; //[0,0,14]et of largest et hcal pfcluster
103 Double32_t fEMFraction; //[0,0,14]em energy fraction
104 Double32_t fECalStripSumEOverP; //[0,0,14]simple brem recovery e / lead ch had mom
105 Double32_t fBremRecoveryEOverP; //[0,0,14]brem recovery E / lead charged hadron P
106 Double32_t fElectronPreIDOutput; //[0,0,14]pfel pre id bdt output to be an el
107 Double32_t fCaloCompatibility; //[0,0,14]calo comp. for this tau to be a muon
108 Double32_t fSegmentCompatibility; //[0,0,14]segment comp. for this tau to be a muon
109 Bool_t fElectronPreIDDecision; //pf electron pre id decision
110 Bool_t fMuonDecision; //pf muon id decision
111 Ref<PFCandidate> fLeadPFCand; //leading signal pf candidate (charged or neutral)
112 Ref<PFCandidate> fLeadChargedHadPFCand; //leading charged hadron signal pf candidate
113 Ref<PFCandidate> fLeadNeutralPFCand; //leading neutral signal pf candidate
114 Ref<PFJet> fPFJet; //original reconstructed pf jet
115 Ref<Track> fElectronTrack; //track corresponding to possible matching el cand.
116 RefArray<PFCandidate> fSignalPFCands; //selected pf candidates in signal cone
117 RefArray<PFCandidate> fIsoPFCands; //selected pf candidates in isolation annulus
118
119 ClassDef(PFTau, 1) // PFTau class
120 };
121 }
122
123 //--------------------------------------------------------------------------------------------------
124 inline Double_t mithep::PFTau::GetCharge() const
125 {
126 // Get charge from signal candidates.
127
128 Double_t sumq = 0;
129 for (UInt_t i=0; i<fSignalPFCands.Entries(); ++i) {
130 sumq += fSignalPFCands.At(i)->Charge();
131 }
132 return sumq;
133 }
134 #endif