ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/IsolationTools.h
Revision: 1.23
Committed: Sat Apr 28 11:34:09 2012 UTC (13 years ago) by ceballos
Content type: text/plain
Branch: MAIN
Changes since 1.22: +10 -2 lines
Log Message:
new 2012 isolation

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id: IsolationTools.h,v 1.22 2011/12/31 23:16:04 sixie Exp $
3 //
4 // IsolationTools
5 //
6 // Isolation functions to compute various kinds of isolation.
7 //
8 // Authors: S.Xie
9 //--------------------------------------------------------------------------------------------------
10
11 #ifndef MITPHYSICS_UTILS_ISOLATIONTOOLS_H
12 #define MITPHYSICS_UTILS_ISOLATIONTOOLS_H
13
14 #include <TMath.h>
15 #include "MitAna/DataTree/interface/Track.h"
16 #include "MitAna/DataTree/interface/Photon.h"
17 #include "MitAna/DataTree/interface/BasicCluster.h"
18 #include "MitAna/DataTree/interface/SuperCluster.h"
19 #include "MitAna/DataTree/interface/CaloTower.h"
20 #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 #include "MitAna/DataTree/interface/TrackCol.h"
25 #include "MitAna/DataTree/interface/DecayParticleCol.h"
26 #include "MitAna/DataTree/interface/PileupEnergyDensityCol.h"
27 #include "MitPhysics/Utils/interface/ElectronTools.h"
28
29 namespace mithep
30 {
31 class IsolationTools {
32 public:
33 static Double_t TrackIsolation(const mithep::Track *p, Double_t extRadius,
34 Double_t intRadius, Double_t ptLow, Double_t maxVtxZDist,
35 const mithep::Collection<mithep::Track> *tracks);
36 static Double_t EcalIsolation(const SuperCluster *sc, Double_t coneSize, Double_t etLow,
37 const mithep::Collection<mithep::BasicCluster> *basicClusters);
38 static Double_t CaloTowerHadIsolation(const ThreeVector *p, Double_t extRadius,
39 Double_t intRadius, Double_t etLow,
40 const mithep::Collection<mithep::CaloTower>
41 *caloTowers);
42 static Double_t CaloTowerEmIsolation(const ThreeVector *p, Double_t extRadius,
43 Double_t intRadius, Double_t etLow,
44 const mithep::Collection<mithep::CaloTower> *caloTowers);
45 static Double_t PFMuonIsolation(const Muon *p, const PFCandidateCol *PFCands, const Vertex *vertex,
46 Double_t delta_z = 0.1, Double_t ptMin = 1.0,
47 Double_t extRadius = 0.4, Double_t intRadiusGamma = 0.07, Double_t intRadius = 0.0);
48 static Double_t PFMuonIsolation(const Muon *p, const PFCandidateCol *PFCands,
49 const MuonCol *goodMuons, const ElectronCol *goodElectrons,
50 const Vertex *vertex, Double_t delta_z, Double_t ptMin,
51 Double_t extRadius, Double_t intRadiusGamma, Double_t intRadius);
52 static Double_t PFElectronIsolation(const Electron *p, const PFCandidateCol *PFCands,
53 const Vertex *vertex, Double_t delta_z, Double_t ptMin,
54 Double_t extRadius, Double_t intRadius, Int_t PFCandidateType = -1);
55 static Double_t PFElectronIsolation(const Electron *p, const PFCandidateCol *PFCands,
56 const MuonCol *goodMuons, const ElectronCol *goodElectrons,
57 const Vertex *vertex, Double_t delta_z, Double_t ptMin,
58 Double_t extRadius, Double_t intRadius, Int_t PFCandidateType = -1);
59 static Double_t PFElectronIsolation2012(const Electron *ele, const Vertex *vertex,
60 const PFCandidateCol *PFCands,
61 const PileupEnergyDensityCol *PileupEnergyDensity,
62 ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaTarget,
63 const ElectronCol *goodElectrons,
64 const MuonCol *goodMuons, Double_t dRMax = 0.4);
65 static Double_t BetaM(const TrackCol *tracks, const Muon *p, const Vertex *vertex,
66 Double_t ptMin, Double_t delta_z, Double_t extRadius,
67 Double_t intRadius);
68 static Double_t BetaE(const TrackCol *tracks, const Electron *p, const Vertex *vertex,
69 Double_t ptMin, Double_t delta_z, Double_t extRadius,
70 Double_t intRadius);
71
72 // method added by F.Stoeckli: computes the track isolation with NO constrint on the OV-track compatibility
73 static Double_t TrackIsolationNoPV(const mithep::Particle*, const BaseVertex*,
74 Double_t extRadius,
75 Double_t intRadius,
76 Double_t ptLow,
77 Double_t etaStrip,
78 Double_t maxD0,
79 mithep::TrackQuality::EQuality,
80 const mithep::Collection<mithep::Track> *tracks,
81 UInt_t maxNExpectedHitsInner = 999,
82 const mithep::DecayParticleCol *conversions = 0);
83
84 // methods for Hgg BaseLien Selection. These isolation are stupid, but what can we do.... ;(
85 static Double_t CiCTrackIsolation(const mithep::Photon*,
86 const BaseVertex*,
87 Double_t extRadius,
88 Double_t intRadius,
89 Double_t ptLow,
90 Double_t etaStrip,
91 Double_t maxD0,
92 Double_t maxDZ,
93 const mithep::Collection<mithep::Track> *tracks,
94 unsigned int* worstVtxIdx = NULL,
95 const mithep::Collection<mithep::Vertex> *vtxs = NULL,
96 const mithep::Collection<mithep::Electron> *eles = NULL,
97 bool print=false,
98 double* ptmax=NULL,
99 double* dRmax=NULL);
100
101
102 ClassDef(IsolationTools, 0) // Isolation tools
103 };
104 }
105 #endif