ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/PFTau.h
Revision: 1.8.2.1
Committed: Wed May 23 03:24:06 2012 UTC (12 years, 11 months ago) by paus
Content type: text/plain
Branch: Mit_025c_branch
CVS Tags: Mit_025c_branch1, Mit_025c_branch0
Changes since 1.8: +65 -53 lines
Log Message:
Backport.

File Contents

# User Rev Content
1 bendavid 1.1 //--------------------------------------------------------------------------------------------------
2 paus 1.8.2.1 // $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 paus 1.8.2.1 // Authors: J.Bendavid, M.Chan, C.Paus
9 bendavid 1.1 //--------------------------------------------------------------------------------------------------
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 paus 1.8.2.1 fDiscriminationByMVAElectronRejection(0),
38 mhchan 1.7 fDiscriminationByLooseMuonRejection(0),
39 paus 1.8.2.1 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 paus 1.8.2.1 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 paus 1.8.2.1 fDiscriminationByMVAElectronRejection(0),
64 mhchan 1.7 fDiscriminationByLooseMuonRejection(0),
65 paus 1.8.2.1 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 paus 1.8.2.1 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 paus 1.8.2.1 Double_t DiscriminationByMVAElectronRejection() const {return fDiscriminationByMVAElectronRejection;}
114 mhchan 1.7 Double_t DiscriminationByLooseMuonRejection() const {return fDiscriminationByLooseMuonRejection;}
115 paus 1.8.2.1 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 paus 1.8.2.1 Double_t DiscriminationByLooseCombinedIsolationDBSumPtCorr() const {return fDiscriminationByLooseCombinedIsolationDBSumPtCorr;}
124 mhchan 1.8 Double_t DiscriminationByMediumCombinedIsolationDBSumPtCorr() const {return fDiscriminationByMediumCombinedIsolationDBSumPtCorr;}
125     Double_t DiscriminationByTightCombinedIsolationDBSumPtCorr() const {return fDiscriminationByTightCombinedIsolationDBSumPtCorr;}
126 paus 1.8.2.1 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 paus 1.8.2.1 void SetDiscriminationByMVAElectronRejection(Double_t x) {fDiscriminationByMVAElectronRejection = x;}
163 mhchan 1.7 void SetDiscriminationByLooseMuonRejection(Double_t x) {fDiscriminationByLooseMuonRejection = x;}
164 paus 1.8.2.1 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 paus 1.8.2.1 void SetDiscriminationByRawCombinedIsolationDBSumPtCorr(Double_t x) {fDiscriminationByRawCombinedIsolationDBSumPtCorr = x;}
176 mhchan 1.5
177 paus 1.8.2.1 protected:
178     Double_t GetCharge() const;
179     Char_t fCharge; //stored charge
180     Double32_t fLeadPFCandSignD0Sig; //[0,0,14]signed lead track D0 significance
181     Double32_t fHCalTotalEOverP; //[0,0,14]total hcal e / lead ch had pfcand mom
182     Double32_t fHCalMaxEOverP; //[0,0,14]max hcal e / lead ch had pfcand. mom
183     Double32_t fHCal3x3EOverP; //[0,0,14]3x3 hcal e / lead ch hadron pfcand. mom
184     Double32_t fIsoChargedHadronPtSum; //[0,0,14]sum pt of sel. ch had pfcands in iso cone
185     Double32_t fIsoGammaEtSum; //[0,0,14]sum et of sel. photon pfcands in iso cone
186     Double32_t fMaxHCalPFClusterEt; //[0,0,14]et of largest et hcal pfcluster
187     Double32_t fEMFraction; //[0,0,14]em energy fraction
188     Double32_t fECalStripSumEOverP; //[0,0,14]simple brem recovery e / lead ch had mom
189     Double32_t fBremRecoveryEOverP; //[0,0,14]brem recovery E / lead charged hadron P
190     Double32_t fElectronPreIDOutput; //[0,0,14]pfel pre id bdt output to be an el
191     Double32_t fCaloCompatibility; //[0,0,14]calo comp. for this tau to be a muon
192     Double32_t fSegmentCompatibility; //[0,0,14]segment comp. for this tau to be a muon
193     Bool_t fElectronPreIDDecision; //pf electron pre id decision
194     Bool_t fMuonDecision; //pf muon id decision
195     Double32_t fDiscriminationAgainstElectron;
196     Double32_t fDiscriminationAgainstMuon;
197     Double32_t fDiscriminationByLooseElectronRejection;
198     Double32_t fDiscriminationByMediumElectronRejection;
199     Double32_t fDiscriminationByTightElectronRejection;
200     Double32_t fDiscriminationByMVAElectronRejection;
201     Double32_t fDiscriminationByLooseMuonRejection;
202     Double32_t fDiscriminationByMediumMuonRejection;
203     Double32_t fDiscriminationByTightMuonRejection;
204     Double32_t fDiscriminationByDecayModeFinding;
205     Double32_t fDiscriminationByVLooseIsolation;
206     Double32_t fDiscriminationByLooseIsolation;
207     Double32_t fDiscriminationByMediumIsolation;
208     Double32_t fDiscriminationByTightIsolation;
209     Double32_t fDiscriminationByVLooseCombinedIsolationDBSumPtCorr;
210     Double32_t fDiscriminationByLooseCombinedIsolationDBSumPtCorr;
211     Double32_t fDiscriminationByMediumCombinedIsolationDBSumPtCorr;
212     Double32_t fDiscriminationByTightCombinedIsolationDBSumPtCorr;
213     Double32_t fDiscriminationByRawCombinedIsolationDBSumPtCorr;
214 mhchan 1.5
215 paus 1.8.2.1 Ref<PFCandidate> fLeadPFCand; //leading sig pf cand (charged or neutral)
216     Ref<PFCandidate> fLeadChargedHadPFCand; //leading charged hadron signal pf cand
217     Ref<PFCandidate> fLeadNeutralPFCand; //leading neutral signal pf cand
218     Ref<PFJet> fPFJet; //original reconstructed pf jet
219     Ref<Track> fElectronTrack; //track corresp. to pot. matching el cand
220     RefArray<PFCandidate> fSignalPFCands; //selected pf candidates in signal cone
221     RefArray<PFCandidate> fSignalPFChargedHadrCands; //signal pf charged hadron candidates
222     RefArray<PFCandidate> fSignalPFNeutrHadrCands; //signal pf neutral hadron candidates
223     RefArray<PFCandidate> fSignalPFGammaCands; //signal pf gamma candidates
224     RefArray<PFCandidate> fIsoPFCands; //selected pf candidates in isolation annulus
225 mhchan 1.5
226 paus 1.8.2.1 ClassDef(PFTau, 5) // PFTau class
227 bendavid 1.1 };
228     }
229 loizides 1.4
230     //--------------------------------------------------------------------------------------------------
231     inline Double_t mithep::PFTau::GetCharge() const
232     {
233 mhchan 1.8 return fCharge;
234 loizides 1.4 }
235 bendavid 1.1 #endif