ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/PFTau.h
Revision: 1.8
Committed: Fri Sep 23 15:34:45 2011 UTC (13 years, 7 months ago) by mhchan
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_025d, Mit_025c, Mit_025b, Mit_025a, Mit_025, Mit_025pre2
Branch point for: Mit_025c_branch
Changes since 1.7: +39 -11 lines
Log Message:
Added new CombinedIsolationDBSumPtCorr discriminators, charge variable, and separate collections for signal PF candidates of different types

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id: PFTau.h,v 1.7 2011/04/26 12:12:20 mhchan 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 fDiscriminationAgainstElectron(0),
33 fDiscriminationAgainstMuon(0),
34 fDiscriminationByLooseElectronRejection(0),
35 fDiscriminationByMediumElectronRejection(0),
36 fDiscriminationByTightElectronRejection(0),
37 fDiscriminationByLooseMuonRejection(0),
38 fDiscriminationByTightMuonRejection(0),
39 fDiscriminationByDecayModeFinding(0),
40 fDiscriminationByVLooseIsolation(0), fDiscriminationByLooseIsolation(0),
41 fDiscriminationByMediumIsolation(0), fDiscriminationByTightIsolation(0),
42 fDiscriminationByVLooseCombinedIsolationDBSumPtCorr(0),
43 fDiscriminationByLooseCombinedIsolationDBSumPtCorr(0),
44 fDiscriminationByMediumCombinedIsolationDBSumPtCorr(0),
45 fDiscriminationByTightCombinedIsolationDBSumPtCorr(0) {}
46
47 PFTau(Double_t px, Double_t py, Double_t pz, Double_t e) :
48 Tau(px,py,pz,e),
49 fLeadPFCandSignD0Sig(0), fHCalTotalEOverP(0), fHCalMaxEOverP(0),
50 fHCal3x3EOverP(0), fIsoChargedHadronPtSum(0), fIsoGammaEtSum(0),
51 fMaxHCalPFClusterEt(0), fEMFraction(0), fECalStripSumEOverP(0),
52 fBremRecoveryEOverP(0), fElectronPreIDOutput(0), fCaloCompatibility(0),
53 fSegmentCompatibility(0), fElectronPreIDDecision(kFALSE),
54 fMuonDecision(kFALSE),
55 fDiscriminationAgainstElectron(0),
56 fDiscriminationAgainstMuon(0),
57 fDiscriminationByLooseElectronRejection(0),
58 fDiscriminationByMediumElectronRejection(0),
59 fDiscriminationByTightElectronRejection(0),
60 fDiscriminationByLooseMuonRejection(0),
61 fDiscriminationByTightMuonRejection(0),
62 fDiscriminationByDecayModeFinding(0),
63 fDiscriminationByVLooseIsolation(0), fDiscriminationByLooseIsolation(0),
64 fDiscriminationByMediumIsolation(0), fDiscriminationByTightIsolation(0),
65 fDiscriminationByVLooseCombinedIsolationDBSumPtCorr(0),
66 fDiscriminationByLooseCombinedIsolationDBSumPtCorr(0),
67 fDiscriminationByMediumCombinedIsolationDBSumPtCorr(0),
68 fDiscriminationByTightCombinedIsolationDBSumPtCorr(0) {}
69
70 void AddIsoPFCand(const PFCandidate *p) { fIsoPFCands.Add(p); }
71 void AddSignalPFCand(const PFCandidate *p)
72 { ClearCharge(); fSignalPFCands.Add(p); }
73 void AddSignalPFChargedHadrCand(const PFCandidate *p) { fSignalPFChargedHadrCands.Add(p); }
74 void AddSignalPFNeutrHadrCand(const PFCandidate *p) { fSignalPFNeutrHadrCands.Add(p); }
75 void AddSignalPFGammaCand(const PFCandidate *p) { fSignalPFGammaCands.Add(p); }
76 Double_t BremRecoveryEOverP() const { return fBremRecoveryEOverP; }
77 Double_t CaloCompatibility() const { return fCaloCompatibility; }
78 Double_t ECalStripSumEOverP() const { return fECalStripSumEOverP; }
79 Double_t EMFraction() const { return fEMFraction; }
80 const Track *ElectronTrack() const { return fElectronTrack.Obj(); }
81 Bool_t ElectronPreIDDecision() const { return fElectronPreIDDecision; }
82 Double_t ElectronPreIDOutput() const { return fElectronPreIDOutput; }
83 Double_t HCal3x3EOverP() const { return fHCal3x3EOverP; }
84 Double_t HCalMaxEOverP() const { return fHCalMaxEOverP; }
85 Double_t HCalTotalEOverP() const { return fHCalTotalEOverP; }
86 Double_t IsoChargedHadronPtSum() const { return fIsoChargedHadronPtSum; }
87 Double_t IsoGammaEtSum() const { return fIsoGammaEtSum; }
88 const PFCandidate *IsoPFCand(UInt_t i) const { return fIsoPFCands.At(i); }
89 const PFCandidate *LeadChargedHadronPFCand() const { return fLeadChargedHadPFCand.Obj(); }
90 const PFCandidate *LeadNeutralHadronPFCand() const { return fLeadNeutralPFCand.Obj(); }
91 const PFCandidate *LeadPFCand() const { return fLeadPFCand.Obj(); }
92 Double_t LeadPFCandSignD0Sig() const { return fLeadPFCandSignD0Sig; }
93 Double_t MaxHCalPFClusterEt() const { return fMaxHCalPFClusterEt; }
94 Bool_t MuonDecision() const { return fMuonDecision; }
95 UInt_t NIsoPFCandS() const { return fIsoPFCands.Entries(); }
96 UInt_t NSignalPFCands() const { return fSignalPFCands.Entries(); }
97 UInt_t NSignalPFChargedHadrCands() const { return fSignalPFChargedHadrCands.Entries(); }
98 UInt_t NSignalPFNeutrHadrCands() const { return fSignalPFNeutrHadrCands.Entries(); }
99 UInt_t NSignalPFGammaCands() const { return fSignalPFGammaCands.Entries(); }
100 EObjType ObjType() const { return kPFTau; }
101 Double_t SegmentCompatibility() const { return fSegmentCompatibility; }
102 Double_t DiscriminationAgainstElectron() const {return fDiscriminationAgainstElectron;}
103 Double_t DiscriminationAgainstMuon() const {return fDiscriminationAgainstMuon;}
104 Double_t DiscriminationByLooseElectronRejection() const {return fDiscriminationByLooseElectronRejection;}
105 Double_t DiscriminationByMediumElectronRejection() const {return fDiscriminationByMediumElectronRejection;}
106 Double_t DiscriminationByTightElectronRejection() const {return fDiscriminationByTightElectronRejection;}
107 Double_t DiscriminationByLooseMuonRejection() const {return fDiscriminationByLooseMuonRejection;}
108 Double_t DiscriminationByTightMuonRejection() const {return fDiscriminationByTightMuonRejection;}
109 Double_t DiscriminationByDecayModeFinding() const {return fDiscriminationByDecayModeFinding;}
110 Double_t DiscriminationByVLooseIsolation() const {return fDiscriminationByVLooseIsolation;}
111 Double_t DiscriminationByLooseIsolation() const {return fDiscriminationByLooseIsolation;}
112 Double_t DiscriminationByMediumIsolation() const {return fDiscriminationByMediumIsolation;}
113 Double_t DiscriminationByTightIsolation() const {return fDiscriminationByTightIsolation;}
114 Double_t DiscriminationByVLooseCombinedIsolationDBSumPtCorr() const {return fDiscriminationByVLooseCombinedIsolationDBSumPtCorr;}
115 Double_t DiscriminationByLooseCombinedIsolationDBSumPtCorr() const {return fDiscriminationByLooseCombinedIsolationDBSumPtCorr;}
116 Double_t DiscriminationByMediumCombinedIsolationDBSumPtCorr() const {return fDiscriminationByMediumCombinedIsolationDBSumPtCorr;}
117 Double_t DiscriminationByTightCombinedIsolationDBSumPtCorr() const {return fDiscriminationByTightCombinedIsolationDBSumPtCorr;}
118
119 void SetCharge(Char_t x) { fCharge = x; ClearCharge(); }
120 void SetBremRecoveryEOverP(Double_t x) { fBremRecoveryEOverP = x; }
121 void SetCaloCompatibility(Double_t x) { fCaloCompatibility = x; }
122 void SetECalStripSumEOverP(Double_t x) { fECalStripSumEOverP = x; }
123 void SetEMFraction(Double_t x) { fEMFraction = x; }
124 void SetElectronPreIDDecision(Bool_t b) { fElectronPreIDDecision = b; }
125 void SetElectronPreIDOutput(Double_t x) { fElectronPreIDOutput = x; }
126 void SetElectronTrack(const Track *t) { fElectronTrack = t; }
127 void SetHCal3x3EOverP(Double_t x) { fHCal3x3EOverP = x; }
128 void SetHCalMaxEOverP(Double_t x) { fHCalMaxEOverP = x; }
129 void SetHCalTotalEOverP(Double_t x) { fHCalTotalEOverP = x; }
130 void SetIsoChargedHadronPtSum(Double_t x){ fIsoChargedHadronPtSum = x; }
131 void SetIsoGammaEtSum(Double_t x) { fIsoGammaEtSum = x; }
132 void SetLeadChargedHadronPFCand(const PFCandidate *p)
133 { fLeadChargedHadPFCand = p; }
134 void SetLeadNeutralPFCand(const PFCandidate *p) { fLeadNeutralPFCand = p; }
135 void SetLeadPFCand(const PFCandidate *p) { fLeadPFCand = p; }
136 void SetLeadPFCandSignD0Sig(Double_t x) { fLeadPFCandSignD0Sig = x; }
137 void SetMaxHCalPFClusterEt(Double_t x) { fMaxHCalPFClusterEt = x; }
138 void SetMuonDecision(Bool_t b) { fMuonDecision = b; }
139 void SetPFJet(const PFJet *j) { fPFJet = j; }
140 void SetSegmentCompatibility(Double_t x) { fSegmentCompatibility = x; }
141 const PFCandidate *SignalPFCand(UInt_t i) const { return fSignalPFCands.At(i); }
142 const PFCandidate *SignalPFChargedHadrCand(UInt_t i) const { return fSignalPFChargedHadrCands.At(i); }
143 const PFCandidate *SignalPFNeutrHadrCand(UInt_t i) const { return fSignalPFNeutrHadrCands.At(i); }
144 const PFCandidate *SignalPFGammaCand(UInt_t i) const { return fSignalPFGammaCands.At(i); }
145 const PFJet *SourcePFJet() const { return fPFJet.Obj(); }
146 const Jet *SourceJet() const { return SourcePFJet(); }
147
148 void SetDiscriminationAgainstElectron(Double_t x) {fDiscriminationAgainstElectron = x;}
149 void SetDiscriminationAgainstMuon(Double_t x) {fDiscriminationAgainstMuon = x;}
150 void SetDiscriminationByLooseElectronRejection(Double_t x) {fDiscriminationByLooseElectronRejection = x;}
151 void SetDiscriminationByMediumElectronRejection(Double_t x) {fDiscriminationByMediumElectronRejection = x;}
152 void SetDiscriminationByTightElectronRejection(Double_t x) {fDiscriminationByTightElectronRejection = x;}
153 void SetDiscriminationByLooseMuonRejection(Double_t x) {fDiscriminationByLooseMuonRejection = x;}
154 void SetDiscriminationByTightMuonRejection(Double_t x) {fDiscriminationByTightMuonRejection = x;}
155 void SetDiscriminationByDecayModeFinding(Double_t x) {fDiscriminationByDecayModeFinding = x;}
156 void SetDiscriminationByVLooseIsolation(Double_t x) {fDiscriminationByVLooseIsolation = x;}
157 void SetDiscriminationByLooseIsolation(Double_t x) {fDiscriminationByLooseIsolation = x;}
158 void SetDiscriminationByMediumIsolation(Double_t x) {fDiscriminationByMediumIsolation = x;}
159 void SetDiscriminationByTightIsolation(Double_t x) {fDiscriminationByTightIsolation = x;}
160 void SetDiscriminationByVLooseCombinedIsolationDBSumPtCorr(Double_t x) {fDiscriminationByVLooseCombinedIsolationDBSumPtCorr = x;}
161 void SetDiscriminationByLooseCombinedIsolationDBSumPtCorr(Double_t x) {fDiscriminationByLooseCombinedIsolationDBSumPtCorr = x; }
162 void SetDiscriminationByMediumCombinedIsolationDBSumPtCorr(Double_t x) {fDiscriminationByMediumCombinedIsolationDBSumPtCorr = x;}
163 void SetDiscriminationByTightCombinedIsolationDBSumPtCorr(Double_t x) {fDiscriminationByTightCombinedIsolationDBSumPtCorr = x; }
164
165 protected:
166 Double_t GetCharge() const;
167
168 Char_t fCharge; //stored charge
169 Double32_t fLeadPFCandSignD0Sig; //[0,0,14]signed lead track D0 significance
170 Double32_t fHCalTotalEOverP; //[0,0,14]total hcal e / lead ch had pfcand mom
171 Double32_t fHCalMaxEOverP; //[0,0,14]max hcal e / lead ch had pfcand. mom
172 Double32_t fHCal3x3EOverP; //[0,0,14]3x3 hcal e / lead ch hadron pfcand. mom
173 Double32_t fIsoChargedHadronPtSum; //[0,0,14]sum pt of sel. ch had pfcands in iso cone
174 Double32_t fIsoGammaEtSum; //[0,0,14]sum et of sel. photon pfcands in iso cone
175 Double32_t fMaxHCalPFClusterEt; //[0,0,14]et of largest et hcal pfcluster
176 Double32_t fEMFraction; //[0,0,14]em energy fraction
177 Double32_t fECalStripSumEOverP; //[0,0,14]simple brem recovery e / lead ch had mom
178 Double32_t fBremRecoveryEOverP; //[0,0,14]brem recovery E / lead charged hadron P
179 Double32_t fElectronPreIDOutput; //[0,0,14]pfel pre id bdt output to be an el
180 Double32_t fCaloCompatibility; //[0,0,14]calo comp. for this tau to be a muon
181 Double32_t fSegmentCompatibility; //[0,0,14]segment comp. for this tau to be a muon
182 Bool_t fElectronPreIDDecision; //pf electron pre id decision
183 Bool_t fMuonDecision; //pf muon id decision
184 Double32_t fDiscriminationAgainstElectron; //[0,0,14]HPS discriminant
185 Double32_t fDiscriminationAgainstMuon; //[0,0,14]HPS discriminant
186 Double32_t fDiscriminationByLooseElectronRejection; //[0,0,14]HPS discriminant
187 Double32_t fDiscriminationByMediumElectronRejection; //[0,0,14]HPS discriminant
188 Double32_t fDiscriminationByTightElectronRejection; //[0,0,14]HPS discriminant
189 Double32_t fDiscriminationByLooseMuonRejection; //[0,0,14]HPS discriminant
190 Double32_t fDiscriminationByTightMuonRejection; //[0,0,14]HPS discriminant
191 Double32_t fDiscriminationByDecayModeFinding; //[0,0,14]HPS discriminant
192 Double32_t fDiscriminationByVLooseIsolation; //[0,0,14]HPS discriminant
193 Double32_t fDiscriminationByLooseIsolation; //[0,0,14]HPS discriminant
194 Double32_t fDiscriminationByMediumIsolation; //[0,0,14]HPS discriminant
195 Double32_t fDiscriminationByTightIsolation; //[0,0,14]HPS discriminant
196 Double32_t fDiscriminationByVLooseCombinedIsolationDBSumPtCorr; //[0,0,14]HPS discriminant
197 Double32_t fDiscriminationByLooseCombinedIsolationDBSumPtCorr; //[0,0,14]HPS discriminant
198 Double32_t fDiscriminationByMediumCombinedIsolationDBSumPtCorr; //[0,0,14]HPS discriminant
199 Double32_t fDiscriminationByTightCombinedIsolationDBSumPtCorr; //[0,0,14]HPS discriminant
200
201 Ref<PFCandidate> fLeadPFCand; //leading signal pf candidate (charged or neutral)
202 Ref<PFCandidate> fLeadChargedHadPFCand; //leading charged hadron signal pf candidate
203 Ref<PFCandidate> fLeadNeutralPFCand; //leading neutral signal pf candidate
204 Ref<PFJet> fPFJet; //original reconstructed pf jet
205 Ref<Track> fElectronTrack; //track corresponding to possible matching el cand.
206 RefArray<PFCandidate> fSignalPFCands; //selected pf candidates in signal cone
207 RefArray<PFCandidate> fSignalPFChargedHadrCands; // signal pf charged hadron candidates
208 RefArray<PFCandidate> fSignalPFNeutrHadrCands; // signal pf neutral hadron candidates
209 RefArray<PFCandidate> fSignalPFGammaCands; // signal pf gamma candidates
210 RefArray<PFCandidate> fIsoPFCands; //selected pf candidates in isolation annulus
211
212
213
214 ClassDef(PFTau, 4) // PFTau class
215 };
216 }
217
218 //--------------------------------------------------------------------------------------------------
219 inline Double_t mithep::PFTau::GetCharge() const
220 {
221 return fCharge;
222 }
223 #endif