ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/IsolationTools.h
Revision: 1.28
Committed: Thu Jul 12 17:05:50 2012 UTC (12 years, 9 months ago) by fabstoec
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_029c, Mit_029b, Mit_029a, HEAD
Changes since 1.27: +13 -6 lines
Log Message:
added 2012 Hgg LeptonTag

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 fabstoec 1.28 // $Id: IsolationTools.h,v 1.27 2012/05/25 19:41:11 bendavid Exp $
3 loizides 1.1 //
4     // IsolationTools
5     //
6     // Isolation functions to compute various kinds of isolation.
7     //
8     // Authors: S.Xie
9     //--------------------------------------------------------------------------------------------------
10    
11 loizides 1.4 #ifndef MITPHYSICS_UTILS_ISOLATIONTOOLS_H
12     #define MITPHYSICS_UTILS_ISOLATIONTOOLS_H
13 loizides 1.1
14     #include <TMath.h>
15     #include "MitAna/DataTree/interface/Track.h"
16 fabstoec 1.18 #include "MitAna/DataTree/interface/Photon.h"
17 loizides 1.1 #include "MitAna/DataTree/interface/BasicCluster.h"
18     #include "MitAna/DataTree/interface/SuperCluster.h"
19     #include "MitAna/DataTree/interface/CaloTower.h"
20 ceballos 1.6 #include "MitAna/DataTree/interface/VertexCol.h"
21     #include "MitAna/DataTree/interface/MuonCol.h"
22     #include "MitAna/DataTree/interface/ElectronCol.h"
23     #include "MitAna/DataTree/interface/PFCandidateCol.h"
24 ceballos 1.8 #include "MitAna/DataTree/interface/TrackCol.h"
25 bendavid 1.11 #include "MitAna/DataTree/interface/DecayParticleCol.h"
26 ceballos 1.23 #include "MitAna/DataTree/interface/PileupEnergyDensityCol.h"
27     #include "MitPhysics/Utils/interface/ElectronTools.h"
28 loizides 1.1
29     namespace mithep
30     {
31     class IsolationTools {
32     public:
33     static Double_t TrackIsolation(const mithep::Track *p, Double_t extRadius,
34 loizides 1.2 Double_t intRadius, Double_t ptLow, Double_t maxVtxZDist,
35 phedex 1.3 const mithep::Collection<mithep::Track> *tracks);
36 loizides 1.1 static Double_t EcalIsolation(const SuperCluster *sc, Double_t coneSize, Double_t etLow,
37 phedex 1.3 const mithep::Collection<mithep::BasicCluster> *basicClusters);
38 loizides 1.1 static Double_t CaloTowerHadIsolation(const ThreeVector *p, Double_t extRadius,
39     Double_t intRadius, Double_t etLow,
40 phedex 1.3 const mithep::Collection<mithep::CaloTower>
41     *caloTowers);
42 loizides 1.1 static Double_t CaloTowerEmIsolation(const ThreeVector *p, Double_t extRadius,
43     Double_t intRadius, Double_t etLow,
44 phedex 1.3 const mithep::Collection<mithep::CaloTower> *caloTowers);
45 ceballos 1.24 static Double_t PFRadialMuonIsolation(const Muon *p, const PFCandidateCol *PFCands,
46     Double_t ptMin = 1.0, Double_t extRadius = 0.3);
47 mzanetti 1.16 static Double_t PFMuonIsolation(const Muon *p, const PFCandidateCol *PFCands, const Vertex *vertex,
48     Double_t delta_z = 0.1, Double_t ptMin = 1.0,
49 ceballos 1.19 Double_t extRadius = 0.4, Double_t intRadiusGamma = 0.07, Double_t intRadius = 0.0);
50 ceballos 1.21 static Double_t PFMuonIsolation(const Muon *p, const PFCandidateCol *PFCands,
51     const MuonCol *goodMuons, const ElectronCol *goodElectrons,
52     const Vertex *vertex, Double_t delta_z, Double_t ptMin,
53     Double_t extRadius, Double_t intRadiusGamma, Double_t intRadius);
54 ceballos 1.6 static Double_t PFElectronIsolation(const Electron *p, const PFCandidateCol *PFCands,
55 ceballos 1.9 const Vertex *vertex, Double_t delta_z, Double_t ptMin,
56 sixie 1.22 Double_t extRadius, Double_t intRadius, Int_t PFCandidateType = -1);
57 ceballos 1.21 static Double_t PFElectronIsolation(const Electron *p, const PFCandidateCol *PFCands,
58     const MuonCol *goodMuons, const ElectronCol *goodElectrons,
59     const Vertex *vertex, Double_t delta_z, Double_t ptMin,
60 sixie 1.22 Double_t extRadius, Double_t intRadius, Int_t PFCandidateType = -1);
61 ceballos 1.23 static Double_t PFElectronIsolation2012(const Electron *ele, const Vertex *vertex,
62     const PFCandidateCol *PFCands,
63     const PileupEnergyDensityCol *PileupEnergyDensity,
64     ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaTarget,
65     const ElectronCol *goodElectrons,
66 ceballos 1.25 const MuonCol *goodMuons, Double_t dRMax = 0.4, Bool_t isDebug = kFALSE);
67 fabstoec 1.28 static Double_t PFElectronIsolation2012LepTag(const Electron *ele, const Vertex *vertex,
68     const PFCandidateCol *PFCands,
69     const PileupEnergyDensityCol *PileupEnergyDensity,
70     ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaTarget,
71     const ElectronCol *goodElectrons,
72     const MuonCol *goodMuons, Double_t dRMax = 0.3, Bool_t isDebug=kFALSE);
73 ceballos 1.21 static Double_t BetaM(const TrackCol *tracks, const Muon *p, const Vertex *vertex,
74 fabstoec 1.28 Double_t ptMin, Double_t delta_z, Double_t extRadius,
75     Double_t intRadius);
76     static Double_t BetaMwithPUCorrection(const PFCandidateCol *PFNoPileUP, const PFCandidateCol *PFPileUP, const Muon *p, Double_t extRadius);
77     static Double_t BetaE(const TrackCol *tracks, const Electron *p, const Vertex *vertex,
78     Double_t ptMin, Double_t delta_z, Double_t extRadius,
79     Double_t intRadius);
80 fabstoec 1.10
81     // method added by F.Stoeckli: computes the track isolation with NO constrint on the OV-track compatibility
82     static Double_t TrackIsolationNoPV(const mithep::Particle*, const BaseVertex*,
83     Double_t extRadius,
84     Double_t intRadius,
85     Double_t ptLow,
86     Double_t etaStrip,
87     Double_t maxD0,
88     mithep::TrackQuality::EQuality,
89 bendavid 1.11 const mithep::Collection<mithep::Track> *tracks,
90     UInt_t maxNExpectedHitsInner = 999,
91     const mithep::DecayParticleCol *conversions = 0);
92 fabstoec 1.10
93 ceballos 1.23 // methods for Hgg BaseLien Selection. These isolation are stupid, but what can we do.... ;(
94 fabstoec 1.18 static Double_t CiCTrackIsolation(const mithep::Photon*,
95 fabstoec 1.17 const BaseVertex*,
96     Double_t extRadius,
97     Double_t intRadius,
98     Double_t ptLow,
99     Double_t etaStrip,
100     Double_t maxD0,
101     Double_t maxDZ,
102     const mithep::Collection<mithep::Track> *tracks,
103 fabstoec 1.18 unsigned int* worstVtxIdx = NULL,
104     const mithep::Collection<mithep::Vertex> *vtxs = NULL,
105 fabstoec 1.20 const mithep::Collection<mithep::Electron> *eles = NULL,
106     bool print=false,
107     double* ptmax=NULL,
108     double* dRmax=NULL);
109 mingyang 1.26
110 bendavid 1.27 static Double_t PFChargedIsolation(const mithep::Photon *p,
111     const BaseVertex *theVtx,
112     Double_t extRadius,
113     Double_t intRadius,
114 mingyang 1.26 const PFCandidateCol *PFCands,
115     unsigned int* worstVtxIndex = NULL,
116     const mithep::Collection<mithep::Vertex> *vtxs = NULL,
117 bendavid 1.27 bool print = NULL);
118 mingyang 1.26
119 bendavid 1.27 static Double_t PFGammaIsolation(const mithep::Photon *p,
120     Double_t extRadius,
121     Double_t intRadius,
122     const PFCandidateCol *PFCands);
123    
124     static Double_t PFNeutralHadronIsolation(const mithep::Photon *p,
125     Double_t extRadius,
126     Double_t intRadius,
127     const PFCandidateCol *PFCands);
128    
129 mingyang 1.26 static Float_t PFChargedCount(const mithep::Photon*,
130     const BaseVertex*,
131     Double_t extRadius,
132     Double_t intRadius,
133     Double_t ptLow,
134     Double_t etaStrip,
135     Double_t maxD0,
136     Double_t maxDZ,
137     const PFCandidateCol *PFCands,
138     unsigned int* worstVtxIndex = NULL,
139     const mithep::Collection<mithep::Vertex> *vtxs = NULL,
140     const mithep::Collection<mithep::Electron> *eles = NULL,
141     bool print = NULL,
142     double* ptmax = NULL,
143     double* dRmax = NULL);
144    
145     ClassDef(IsolationTools, 0) // Isolation tools
146     };
147 loizides 1.1 }
148     #endif