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

# User Rev Content
1 bendavid 1.1 //--------------------------------------------------------------------------------------------------
2 mhchan 1.8 // $Id: PFTau.h,v 1.7 2011/04/26 12:12:20 mhchan Exp $
3 bendavid 1.1 //
4     // PFTau
5     //
6 loizides 1.2 // This class holds information about reconstructed tau based on PFCandidates.
7 bendavid 1.1 //
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 loizides 1.2 PFTau() : fLeadPFCandSignD0Sig(0), fHCalTotalEOverP(0), fHCalMaxEOverP(0),
27 bendavid 1.1 fHCal3x3EOverP(0), fIsoChargedHadronPtSum(0), fIsoGammaEtSum(0),
28     fMaxHCalPFClusterEt(0), fEMFraction(0), fECalStripSumEOverP(0),
29 loizides 1.2 fBremRecoveryEOverP(0), fElectronPreIDOutput(0), fCaloCompatibility(0),
30     fSegmentCompatibility(0), fElectronPreIDDecision(kFALSE),
31 mhchan 1.7 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 mhchan 1.8 fDiscriminationByMediumIsolation(0), fDiscriminationByTightIsolation(0),
42     fDiscriminationByVLooseCombinedIsolationDBSumPtCorr(0),
43     fDiscriminationByLooseCombinedIsolationDBSumPtCorr(0),
44     fDiscriminationByMediumCombinedIsolationDBSumPtCorr(0),
45     fDiscriminationByTightCombinedIsolationDBSumPtCorr(0) {}
46 bendavid 1.1
47     PFTau(Double_t px, Double_t py, Double_t pz, Double_t e) :
48     Tau(px,py,pz,e),
49 loizides 1.2 fLeadPFCandSignD0Sig(0), fHCalTotalEOverP(0), fHCalMaxEOverP(0),
50 bendavid 1.1 fHCal3x3EOverP(0), fIsoChargedHadronPtSum(0), fIsoGammaEtSum(0),
51     fMaxHCalPFClusterEt(0), fEMFraction(0), fECalStripSumEOverP(0),
52 loizides 1.2 fBremRecoveryEOverP(0), fElectronPreIDOutput(0), fCaloCompatibility(0),
53     fSegmentCompatibility(0), fElectronPreIDDecision(kFALSE),
54 mhchan 1.7 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 mhchan 1.8 fDiscriminationByMediumIsolation(0), fDiscriminationByTightIsolation(0),
65     fDiscriminationByVLooseCombinedIsolationDBSumPtCorr(0),
66     fDiscriminationByLooseCombinedIsolationDBSumPtCorr(0),
67     fDiscriminationByMediumCombinedIsolationDBSumPtCorr(0),
68     fDiscriminationByTightCombinedIsolationDBSumPtCorr(0) {}
69 loizides 1.2
70 loizides 1.4 void AddIsoPFCand(const PFCandidate *p) { fIsoPFCands.Add(p); }
71     void AddSignalPFCand(const PFCandidate *p)
72     { ClearCharge(); fSignalPFCands.Add(p); }
73 mhchan 1.8 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 loizides 1.3 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 loizides 1.4 UInt_t NSignalPFCands() const { return fSignalPFCands.Entries(); }
97 mhchan 1.8 UInt_t NSignalPFChargedHadrCands() const { return fSignalPFChargedHadrCands.Entries(); }
98     UInt_t NSignalPFNeutrHadrCands() const { return fSignalPFNeutrHadrCands.Entries(); }
99     UInt_t NSignalPFGammaCands() const { return fSignalPFGammaCands.Entries(); }
100 loizides 1.3 EObjType ObjType() const { return kPFTau; }
101     Double_t SegmentCompatibility() const { return fSegmentCompatibility; }
102 mhchan 1.5 Double_t DiscriminationAgainstElectron() const {return fDiscriminationAgainstElectron;}
103     Double_t DiscriminationAgainstMuon() const {return fDiscriminationAgainstMuon;}
104 mhchan 1.7 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 mhchan 1.5 Double_t DiscriminationByDecayModeFinding() const {return fDiscriminationByDecayModeFinding;}
110 mhchan 1.7 Double_t DiscriminationByVLooseIsolation() const {return fDiscriminationByVLooseIsolation;}
111 mhchan 1.5 Double_t DiscriminationByLooseIsolation() const {return fDiscriminationByLooseIsolation;}
112     Double_t DiscriminationByMediumIsolation() const {return fDiscriminationByMediumIsolation;}
113     Double_t DiscriminationByTightIsolation() const {return fDiscriminationByTightIsolation;}
114 mhchan 1.8 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 mhchan 1.5
119 mhchan 1.8 void SetCharge(Char_t x) { fCharge = x; ClearCharge(); }
120 loizides 1.3 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 loizides 1.2 void SetLeadChargedHadronPFCand(const PFCandidate *p)
133 loizides 1.3 { 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 mhchan 1.8 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 loizides 1.3 const PFJet *SourcePFJet() const { return fPFJet.Obj(); }
146     const Jet *SourceJet() const { return SourcePFJet(); }
147 bendavid 1.1
148 mhchan 1.5 void SetDiscriminationAgainstElectron(Double_t x) {fDiscriminationAgainstElectron = x;}
149     void SetDiscriminationAgainstMuon(Double_t x) {fDiscriminationAgainstMuon = x;}
150 mhchan 1.7 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 mhchan 1.5 void SetDiscriminationByDecayModeFinding(Double_t x) {fDiscriminationByDecayModeFinding = x;}
156 mhchan 1.7 void SetDiscriminationByVLooseIsolation(Double_t x) {fDiscriminationByVLooseIsolation = x;}
157 mhchan 1.5 void SetDiscriminationByLooseIsolation(Double_t x) {fDiscriminationByLooseIsolation = x;}
158     void SetDiscriminationByMediumIsolation(Double_t x) {fDiscriminationByMediumIsolation = x;}
159     void SetDiscriminationByTightIsolation(Double_t x) {fDiscriminationByTightIsolation = x;}
160 mhchan 1.8 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 mhchan 1.5
165 bendavid 1.1 protected:
166 loizides 1.4 Double_t GetCharge() const;
167    
168 mhchan 1.8 Char_t fCharge; //stored charge
169 loizides 1.2 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 mhchan 1.6 Double32_t fDiscriminationAgainstElectron; //[0,0,14]HPS discriminant
185     Double32_t fDiscriminationAgainstMuon; //[0,0,14]HPS discriminant
186 mhchan 1.7 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 mhchan 1.6 Double32_t fDiscriminationByDecayModeFinding; //[0,0,14]HPS discriminant
192 mhchan 1.7 Double32_t fDiscriminationByVLooseIsolation; //[0,0,14]HPS discriminant
193 mhchan 1.6 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 mhchan 1.8 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 mhchan 1.5
201 loizides 1.2 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 mhchan 1.8 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 loizides 1.2 RefArray<PFCandidate> fIsoPFCands; //selected pf candidates in isolation annulus
211 mhchan 1.5
212    
213 bendavid 1.1
214 mhchan 1.8 ClassDef(PFTau, 4) // PFTau class
215 bendavid 1.1 };
216     }
217 loizides 1.4
218     //--------------------------------------------------------------------------------------------------
219     inline Double_t mithep::PFTau::GetCharge() const
220     {
221 mhchan 1.8 return fCharge;
222 loizides 1.4 }
223 bendavid 1.1 #endif