ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/PFTau.h
Revision: 1.7
Committed: Tue Apr 26 12:12:20 2011 UTC (14 years ago) by mhchan
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_024b, Mit_025pre1, Mit_024a, Mit_024, Mit_023, Mit_022a, Mit_022, Mit_021, Mit_021pre2
Changes since 1.6: +42 -10 lines
Log Message:
Added new HPS tau discriminators

File Contents

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