ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/IsolationTools.h
Revision: 1.22
Committed: Sat Dec 31 23:16:04 2011 UTC (13 years, 4 months ago) by sixie
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_025e, Mit_025d
Changes since 1.21: +3 -3 lines
Log Message:
add option to select particular pf candidate typesdiff

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 sixie 1.22 // $Id: IsolationTools.h,v 1.21 2011/11/02 20:12:03 ceballos 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 loizides 1.1
27     namespace mithep
28     {
29     class IsolationTools {
30     public:
31     static Double_t TrackIsolation(const mithep::Track *p, Double_t extRadius,
32 loizides 1.2 Double_t intRadius, Double_t ptLow, Double_t maxVtxZDist,
33 phedex 1.3 const mithep::Collection<mithep::Track> *tracks);
34 loizides 1.1 static Double_t EcalIsolation(const SuperCluster *sc, Double_t coneSize, Double_t etLow,
35 phedex 1.3 const mithep::Collection<mithep::BasicCluster> *basicClusters);
36 loizides 1.1 static Double_t CaloTowerHadIsolation(const ThreeVector *p, Double_t extRadius,
37     Double_t intRadius, Double_t etLow,
38 phedex 1.3 const mithep::Collection<mithep::CaloTower>
39     *caloTowers);
40 loizides 1.1 static Double_t CaloTowerEmIsolation(const ThreeVector *p, Double_t extRadius,
41     Double_t intRadius, Double_t etLow,
42 phedex 1.3 const mithep::Collection<mithep::CaloTower> *caloTowers);
43 mzanetti 1.16 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 ceballos 1.19 Double_t extRadius = 0.4, Double_t intRadiusGamma = 0.07, Double_t intRadius = 0.0);
46 ceballos 1.21 static Double_t PFMuonIsolation(const Muon *p, const PFCandidateCol *PFCands,
47     const MuonCol *goodMuons, const ElectronCol *goodElectrons,
48     const Vertex *vertex, Double_t delta_z, Double_t ptMin,
49     Double_t extRadius, Double_t intRadiusGamma, Double_t intRadius);
50 ceballos 1.6 static Double_t PFElectronIsolation(const Electron *p, const PFCandidateCol *PFCands,
51 ceballos 1.9 const Vertex *vertex, Double_t delta_z, Double_t ptMin,
52 sixie 1.22 Double_t extRadius, Double_t intRadius, Int_t PFCandidateType = -1);
53 ceballos 1.21 static Double_t PFElectronIsolation(const Electron *p, const PFCandidateCol *PFCands,
54     const MuonCol *goodMuons, const ElectronCol *goodElectrons,
55     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 BetaM(const TrackCol *tracks, const Muon *p, const Vertex *vertex,
58 ceballos 1.8 Double_t ptMin, Double_t delta_z, Double_t extRadius,
59     Double_t intRadius);
60 ceballos 1.9 static Double_t BetaE(const TrackCol *tracks, const Electron *p, const Vertex *vertex,
61 ceballos 1.8 Double_t ptMin, Double_t delta_z, Double_t extRadius,
62     Double_t intRadius);
63 fabstoec 1.10
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 bendavid 1.11 const mithep::Collection<mithep::Track> *tracks,
73     UInt_t maxNExpectedHitsInner = 999,
74     const mithep::DecayParticleCol *conversions = 0);
75 fabstoec 1.10
76 fabstoec 1.17 // methods for Hgg BaseLien Selection. These isoaltion are stupid, but what can we do.... ;(
77 fabstoec 1.18 static Double_t CiCTrackIsolation(const mithep::Photon*,
78 fabstoec 1.17 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 fabstoec 1.18 unsigned int* worstVtxIdx = NULL,
87     const mithep::Collection<mithep::Vertex> *vtxs = NULL,
88 fabstoec 1.20 const mithep::Collection<mithep::Electron> *eles = NULL,
89     bool print=false,
90     double* ptmax=NULL,
91     double* dRmax=NULL);
92 fabstoec 1.17
93    
94 loizides 1.5 ClassDef(IsolationTools, 0) // Isolation tools
95 loizides 1.1 };
96     }
97     #endif