ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/PFTau.h
Revision: 1.9
Committed: Sun Mar 25 17:09:56 2012 UTC (13 years, 1 month ago) by mhchan
Content type: text/plain
Branch: MAIN
Changes since 1.8: +14 -4 lines
Log Message:
Added MVA electron rejection discriminator and raw isolation variable.

File Contents

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