ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/IsolationTools.h
Revision: 1.19
Committed: Fri Sep 16 14:09:34 2011 UTC (13 years, 7 months ago) by ceballos
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_025, Mit_025pre2
Changes since 1.18: +2 -2 lines
Log Message:
fixing iso

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id: IsolationTools.h,v 1.18 2011/06/27 12:32:21 fabstoec 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
27 namespace mithep
28 {
29 class IsolationTools {
30 public:
31 static Double_t TrackIsolation(const mithep::Track *p, Double_t extRadius,
32 Double_t intRadius, Double_t ptLow, Double_t maxVtxZDist,
33 const mithep::Collection<mithep::Track> *tracks);
34 static Double_t EcalIsolation(const SuperCluster *sc, Double_t coneSize, Double_t etLow,
35 const mithep::Collection<mithep::BasicCluster> *basicClusters);
36 static Double_t CaloTowerHadIsolation(const ThreeVector *p, Double_t extRadius,
37 Double_t intRadius, Double_t etLow,
38 const mithep::Collection<mithep::CaloTower>
39 *caloTowers);
40 static Double_t CaloTowerEmIsolation(const ThreeVector *p, Double_t extRadius,
41 Double_t intRadius, Double_t etLow,
42 const mithep::Collection<mithep::CaloTower> *caloTowers);
43 static Double_t PFMuonIsolation(const Muon *p, const PFCandidateCol *PFCands, const Vertex *vertex,
44 Double_t delta_z = 0.1, Double_t ptMin = 1.0,
45 Double_t extRadius = 0.4, Double_t intRadiusGamma = 0.07, Double_t intRadius = 0.0);
46 static Double_t PFMuonIsolation(const Muon *p, const PFCandidateCol *PFCands, const Vertex *vertex,
47 const MuonCol *goodMuons, const ElectronCol *goodElectrons,
48 Double_t delta_z = 0.1, Double_t ptMin = 1.0, Double_t extRadius = 0.4,
49 Double_t intRadius = 0.07, int isoType = 0, Double_t beta = 1.0);
50 static Double_t PFElectronIsolation(const Electron *p, const PFCandidateCol *PFCands,
51 const Vertex *vertex, Double_t delta_z, Double_t ptMin,
52 Double_t extRadius, Double_t intRadius);
53 static Double_t PFElectronIsolation(const Electron *p, const PFCandidateCol *PFCands, const Vertex *vertex,
54 const MuonCol *goodMuons, const ElectronCol *goodElectrons,
55 Double_t delta_z = 0.1 , Double_t ptMin = 1.0,Double_t extRadius = 0.4,
56 Double_t intRadius = 0.0, int isoType = 0, Double_t beta = 1.0);
57 static Double_t BetaM(const TrackCol *tracks, const Muon *p, const Vertex *vertex,
58 Double_t ptMin, Double_t delta_z, Double_t extRadius,
59 Double_t intRadius);
60 static Double_t BetaE(const TrackCol *tracks, const Electron *p, const Vertex *vertex,
61 Double_t ptMin, Double_t delta_z, Double_t extRadius,
62 Double_t intRadius);
63
64 // method added by F.Stoeckli: computes the track isolation with NO constrint on the OV-track compatibility
65 static Double_t TrackIsolationNoPV(const mithep::Particle*, const BaseVertex*,
66 Double_t extRadius,
67 Double_t intRadius,
68 Double_t ptLow,
69 Double_t etaStrip,
70 Double_t maxD0,
71 mithep::TrackQuality::EQuality,
72 const mithep::Collection<mithep::Track> *tracks,
73 UInt_t maxNExpectedHitsInner = 999,
74 const mithep::DecayParticleCol *conversions = 0);
75
76 // methods for Hgg BaseLien Selection. These isoaltion are stupid, but what can we do.... ;(
77 static Double_t CiCTrackIsolation(const mithep::Photon*,
78 const BaseVertex*,
79 Double_t extRadius,
80 Double_t intRadius,
81 Double_t ptLow,
82 Double_t etaStrip,
83 Double_t maxD0,
84 Double_t maxDZ,
85 const mithep::Collection<mithep::Track> *tracks,
86 unsigned int* worstVtxIdx = NULL,
87 const mithep::Collection<mithep::Vertex> *vtxs = NULL,
88 bool print=false);
89
90
91 ClassDef(IsolationTools, 0) // Isolation tools
92 };
93 }
94 #endif