ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/ElectronTools.h
Revision: 1.36
Committed: Wed Jan 9 18:22:07 2013 UTC (12 years, 3 months ago) by pharris
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_029c, Mit_029b, Mit_029a, HEAD
Changes since 1.35: +3 -0 lines
Log Message:
Updated to use PFAOD

File Contents

# User Rev Content
1 sixie 1.1 //--------------------------------------------------------------------------------------------------
2     // $Id $
3     //
4     // ElectronTools
5     //
6     // Helper Class for electron Identification decisions.
7     //
8     // Authors: S.Xie
9     //--------------------------------------------------------------------------------------------------
10    
11     #ifndef MITPHYSICS_UTILS_ELECTRONTOOLS_H
12     #define MITPHYSICS_UTILS_ELECTRONTOOLS_H
13    
14     #include "MitAna/DataTree/interface/Electron.h"
15     #include "MitAna/DataTree/interface/DecayParticleCol.h"
16     #include "MitAna/DataTree/interface/VertexCol.h"
17 sixie 1.2 #include "MitAna/DataTree/interface/BeamSpotCol.h"
18 bendavid 1.5 #include "MitAna/DataTree/interface/TriggerObjectCol.h"
19 sixie 1.1 #include "MitCommon/MathTools/interface/MathUtils.h"
20 sixie 1.20 #include "MitPhysics/ElectronLikelihood/interface/ElectronLikelihood.h"
21 sixie 1.35 #include <utility>
22 sixie 1.1
23     namespace mithep {
24     class ElectronTools {
25     public:
26     ElectronTools();
27    
28     enum EElIdType {
29     kIdUndef = 0, //not defined
30     kTight, //"Tight"
31     kLoose, //"Loose"
32     kLikelihood, //"Likelihood"
33     kNoId, //"NoId"
34     kZeeId, //"ZeeId"
35     kCustomIdLoose, //"CustomLoose"
36     kCustomIdTight, //"CustomTight"
37 ceballos 1.18 kVBTFWorkingPointFakeableId,
38 sixie 1.1 kVBTFWorkingPoint95Id,
39     kVBTFWorkingPoint90Id,
40 ceballos 1.4 kVBTFWorkingPoint85Id,
41 sixie 1.1 kVBTFWorkingPoint80Id,
42 ceballos 1.16 kVBTFWorkingPointLowPtId,
43 sixie 1.20 kVBTFWorkingPoint70Id,
44 sixie 1.23 kMVAID_BDTG_NoIPInfo,
45     kMVAID_BDTG_WithIPInfo,
46 fabstoec 1.25 kMVAID_BDTG_IDIsoCombined,
47 ceballos 1.26 kHggLeptonTagId,
48 fabstoec 1.32 kHggLeptonTagId2012,
49 mingyang 1.34 kHggLeptonTagId2012HCP,
50 sixie 1.33 kMVAID_BDTG_IDHWW2012TrigV0,
51     kMVAID_BDTG_IDIsoCombinedHWW2012TrigV4
52 sixie 1.1 };
53    
54     enum EElIsoType {
55 ceballos 1.12 kIsoUndef = 0, //"not defined"
56     kTrackCalo, //"TrackCalo"
57     kTrackJura, //"TrackJura"
58     kTrackJuraCombined, //"TrackJuraCombined"
59     kTrackJuraSliding, //"TrackJuraSliding"
60     kTrackJuraSlidingNoCorrection, //"TrackJuraSlidingNoCorrection"
61 sixie 1.19 kCombinedRelativeConeAreaCorrected, //"CombinedRelativeConeAreaCorrected"
62 ceballos 1.12 kNoIso, //"NoIso"
63     kPFIso, //"PFIso"
64     kPFIsoNoL, //"PFIsoNoL"
65     kZeeIso, //"ZeeIso"
66     kCustomIso, //"Custom"
67 sixie 1.1 kVBTFWorkingPoint95Iso,
68     kVBTFWorkingPoint90Iso,
69 ceballos 1.4 kVBTFWorkingPoint85Iso,
70 sixie 1.1 kVBTFWorkingPoint80Iso,
71 sixie 1.23 kVBTFWorkingPoint70Iso,
72 ceballos 1.28 kMVAIso_BDTG_IDIsoCombined,
73 fabstoec 1.32 kPFIso_HWW2012TrigV0,
74 sixie 1.33 kPFIso_HggLeptonTag2012,
75 mingyang 1.34 kPFIso_HggLeptonTag2012HCP,
76 sixie 1.33 kMVAIso_BDTG_IDIsoCombinedHWW2012TrigV4
77 sixie 1.1 };
78    
79 sixie 1.23 enum EElectronEffectiveAreaType {
80     kEleChargedIso03,
81     kEleNeutralHadronIso03,
82 anlevin 1.31 kEleGammaAndNeutralHadronIso03,
83 sixie 1.23 kEleGammaIso03,
84     kEleGammaIsoVetoEtaStrip03,
85     kEleChargedIso04,
86     kEleNeutralHadronIso04,
87 khahn 1.30 kEleGammaAndNeutralHadronIso04,
88 sixie 1.23 kEleGammaIso04,
89     kEleGammaIsoVetoEtaStrip04,
90     kEleNeutralHadronIso007,
91 ceballos 1.28 kEleNeutralIso04,
92 sixie 1.23 kEleHoverE,
93     kEleHcalDepth1OverEcal,
94 sixie 1.24 kEleHcalDepth2OverEcal,
95     kEleGammaIsoDR0p0To0p1,
96     kEleGammaIsoDR0p1To0p2,
97     kEleGammaIsoDR0p2To0p3,
98     kEleGammaIsoDR0p3To0p4,
99     kEleGammaIsoDR0p4To0p5,
100     kEleNeutralHadronIsoDR0p0To0p1,
101     kEleNeutralHadronIsoDR0p1To0p2,
102     kEleNeutralHadronIsoDR0p2To0p3,
103     kEleNeutralHadronIsoDR0p3To0p4,
104     kEleNeutralHadronIsoDR0p4To0p5
105 sixie 1.23 };
106    
107 sixie 1.24 enum EElectronEffectiveAreaTarget {
108     kEleEANoCorr,
109     kEleEAData2011,
110 fabstoec 1.32 kEleEAData2012,
111 sixie 1.24 kEleEASummer11MC,
112     kEleEAFall11MC
113     };
114    
115 sixie 1.1 static Bool_t PassChargeFilter(const Electron *el);
116     static Bool_t PassConversionFilter(const Electron *el, const DecayParticleCol *conversions,
117 bendavid 1.15 const BaseVertex *vtx, UInt_t nWrongHitsMax=0, Double_t probMin=1e-6,
118 bendavid 1.17 Double_t lxyMin = 2.0, Bool_t matchCkf = kTRUE, Bool_t requireArbitratedMerged = kFALSE, Double_t trkptMin = -99.);
119 pharris 1.36 static Bool_t PassConversionFilterPFAOD(const Electron *el, const DecayParticleCol *conversions,
120     const BaseVertex *vtx, UInt_t nWrongHitsMax=0, Double_t probMin=1e-6,
121     Double_t lxyMin = 2.0, Bool_t matchCkf = kTRUE, Bool_t requireArbitratedMerged = kFALSE, Double_t trkptMin = -99.);
122 sixie 1.1 static Bool_t PassCustomID(const Electron *el, EElIdType idType);
123 ceballos 1.4 static Bool_t PassCustomIso(const Electron *el, EElIsoType isoType,
124     Bool_t useCombineIso = kTRUE);
125 ceballos 1.14 static Bool_t PassD0Cut(const Electron *el, const VertexCol *vertices, Double_t fD0Cut, Int_t nVertex = 0);
126 ceballos 1.7 static Bool_t PassD0Cut(const Electron *el, const BeamSpotCol *beamspots, Double_t fD0Cut);
127 ceballos 1.16 static Bool_t PassDZCut(const Electron *el, const VertexCol *vertices, Double_t fDZCut, Int_t nVertex = 0);
128 sixie 1.1 static Bool_t PassSpikeRemovalFilter(const Electron *ele);
129 bendavid 1.5 static Bool_t PassTriggerMatching(const Electron *ele, const TriggerObjectCol *trigobjs);
130 ceballos 1.3 static Int_t Classify(const Electron *ele);
131     static Int_t PassTightId(const Electron *ele, const VertexCol *vertices,
132 ceballos 1.10 const DecayParticleCol *conversions, const Int_t typeCuts,
133     Double_t beta = 1.0);
134 ceballos 1.6 static bool compute_cut(double x, double et, double cut_min, double cut_max, bool gtn=false);
135 sixie 1.20 static Double_t Likelihood(ElectronLikelihood *LH, const Electron *ele);
136 sixie 1.24 static Double_t ElectronEffectiveArea(EElectronEffectiveAreaType type, Double_t Eta,
137     EElectronEffectiveAreaTarget EffectiveAreaTarget = kEleEAData2011);
138 sixie 1.35 static std::pair<Double_t,Double_t> ComputeEPCombination( const Electron * ele, const float regression_energy,
139     const float regression_energy_error);
140 sixie 1.1
141 fabstoec 1.25 static Bool_t PassHggLeptonTagID(const Electron *el);
142 fabstoec 1.32 static Bool_t PassHggLeptonTagID2012(const Electron *el);
143 mingyang 1.34
144 sixie 1.1 ClassDef(ElectronTools, 0) // Muon tools
145     };
146     }
147    
148     #endif