ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/PFTau.h
Revision: 1.6
Committed: Thu Jan 27 14:30:03 2011 UTC (14 years, 3 months ago) by mhchan
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_020d, TMit_020d, Mit_020c, Mit_021pre1, Mit_020b, Mit_020a, Mit_020, Mit_020pre1, Mit_018
Changes since 1.5: +7 -7 lines
Log Message:
Added rounding specification to discriminator variables

File Contents

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