ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/PFTau.h
Revision: 1.10
Committed: Mon Mar 26 15:26:35 2012 UTC (13 years, 1 month ago) by mhchan
Content type: text/plain
Branch: MAIN
Changes since 1.9: +6 -1 lines
Log Message:
Added medium muon rejection discriminator to PFTau

File Contents

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