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