ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/ElectronTools.h
Revision: 1.29
Committed: Fri May 18 14:57:57 2012 UTC (12 years, 11 months ago) by anlevin
Content type: text/plain
Branch: MAIN
Changes since 1.28: +1 -0 lines
Log Message:
added 2012 effective areas

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.1
22     namespace mithep {
23     class ElectronTools {
24     public:
25     ElectronTools();
26    
27     enum EElIdType {
28     kIdUndef = 0, //not defined
29     kTight, //"Tight"
30     kLoose, //"Loose"
31     kLikelihood, //"Likelihood"
32     kNoId, //"NoId"
33     kZeeId, //"ZeeId"
34     kCustomIdLoose, //"CustomLoose"
35     kCustomIdTight, //"CustomTight"
36 ceballos 1.18 kVBTFWorkingPointFakeableId,
37 sixie 1.1 kVBTFWorkingPoint95Id,
38     kVBTFWorkingPoint90Id,
39 ceballos 1.4 kVBTFWorkingPoint85Id,
40 sixie 1.1 kVBTFWorkingPoint80Id,
41 ceballos 1.16 kVBTFWorkingPointLowPtId,
42 sixie 1.20 kVBTFWorkingPoint70Id,
43 sixie 1.23 kMVAID_BDTG_NoIPInfo,
44     kMVAID_BDTG_WithIPInfo,
45 fabstoec 1.25 kMVAID_BDTG_IDIsoCombined,
46 ceballos 1.26 kHggLeptonTagId,
47 ceballos 1.27 kMVAID_BDTG_IDHWW2012TrigV0
48 sixie 1.1 };
49    
50     enum EElIsoType {
51 ceballos 1.12 kIsoUndef = 0, //"not defined"
52     kTrackCalo, //"TrackCalo"
53     kTrackJura, //"TrackJura"
54     kTrackJuraCombined, //"TrackJuraCombined"
55     kTrackJuraSliding, //"TrackJuraSliding"
56     kTrackJuraSlidingNoCorrection, //"TrackJuraSlidingNoCorrection"
57 sixie 1.19 kCombinedRelativeConeAreaCorrected, //"CombinedRelativeConeAreaCorrected"
58 ceballos 1.12 kNoIso, //"NoIso"
59     kPFIso, //"PFIso"
60     kPFIsoNoL, //"PFIsoNoL"
61     kZeeIso, //"ZeeIso"
62     kCustomIso, //"Custom"
63 sixie 1.1 kVBTFWorkingPoint95Iso,
64     kVBTFWorkingPoint90Iso,
65 ceballos 1.4 kVBTFWorkingPoint85Iso,
66 sixie 1.1 kVBTFWorkingPoint80Iso,
67 sixie 1.23 kVBTFWorkingPoint70Iso,
68 ceballos 1.28 kMVAIso_BDTG_IDIsoCombined,
69     kPFIso_HWW2012TrigV0
70 sixie 1.1 };
71    
72 sixie 1.23 enum EElectronEffectiveAreaType {
73     kEleChargedIso03,
74     kEleNeutralHadronIso03,
75     kEleGammaIso03,
76     kEleGammaIsoVetoEtaStrip03,
77     kEleChargedIso04,
78     kEleNeutralHadronIso04,
79     kEleGammaIso04,
80     kEleGammaIsoVetoEtaStrip04,
81     kEleNeutralHadronIso007,
82 ceballos 1.28 kEleNeutralIso04,
83 sixie 1.23 kEleHoverE,
84     kEleHcalDepth1OverEcal,
85 sixie 1.24 kEleHcalDepth2OverEcal,
86     kEleGammaIsoDR0p0To0p1,
87     kEleGammaIsoDR0p1To0p2,
88     kEleGammaIsoDR0p2To0p3,
89     kEleGammaIsoDR0p3To0p4,
90     kEleGammaIsoDR0p4To0p5,
91     kEleNeutralHadronIsoDR0p0To0p1,
92     kEleNeutralHadronIsoDR0p1To0p2,
93     kEleNeutralHadronIsoDR0p2To0p3,
94     kEleNeutralHadronIsoDR0p3To0p4,
95     kEleNeutralHadronIsoDR0p4To0p5
96 sixie 1.23 };
97    
98 sixie 1.24 enum EElectronEffectiveAreaTarget {
99     kEleEANoCorr,
100     kEleEAData2011,
101 anlevin 1.29 kEleEAData2012,
102 sixie 1.24 kEleEASummer11MC,
103     kEleEAFall11MC
104     };
105    
106 sixie 1.1 static Bool_t PassChargeFilter(const Electron *el);
107     static Bool_t PassConversionFilter(const Electron *el, const DecayParticleCol *conversions,
108 bendavid 1.15 const BaseVertex *vtx, UInt_t nWrongHitsMax=0, Double_t probMin=1e-6,
109 bendavid 1.17 Double_t lxyMin = 2.0, Bool_t matchCkf = kTRUE, Bool_t requireArbitratedMerged = kFALSE, Double_t trkptMin = -99.);
110 sixie 1.1 static Bool_t PassCustomID(const Electron *el, EElIdType idType);
111 ceballos 1.4 static Bool_t PassCustomIso(const Electron *el, EElIsoType isoType,
112     Bool_t useCombineIso = kTRUE);
113 ceballos 1.14 static Bool_t PassD0Cut(const Electron *el, const VertexCol *vertices, Double_t fD0Cut, Int_t nVertex = 0);
114 ceballos 1.7 static Bool_t PassD0Cut(const Electron *el, const BeamSpotCol *beamspots, Double_t fD0Cut);
115 ceballos 1.16 static Bool_t PassDZCut(const Electron *el, const VertexCol *vertices, Double_t fDZCut, Int_t nVertex = 0);
116 sixie 1.1 static Bool_t PassSpikeRemovalFilter(const Electron *ele);
117 bendavid 1.5 static Bool_t PassTriggerMatching(const Electron *ele, const TriggerObjectCol *trigobjs);
118 ceballos 1.3 static Int_t Classify(const Electron *ele);
119     static Int_t PassTightId(const Electron *ele, const VertexCol *vertices,
120 ceballos 1.10 const DecayParticleCol *conversions, const Int_t typeCuts,
121     Double_t beta = 1.0);
122 ceballos 1.6 static bool compute_cut(double x, double et, double cut_min, double cut_max, bool gtn=false);
123 sixie 1.20 static Double_t Likelihood(ElectronLikelihood *LH, const Electron *ele);
124 sixie 1.24 static Double_t ElectronEffectiveArea(EElectronEffectiveAreaType type, Double_t Eta,
125     EElectronEffectiveAreaTarget EffectiveAreaTarget = kEleEAData2011);
126 sixie 1.1
127 fabstoec 1.25 static Bool_t PassHggLeptonTagID(const Electron *el);
128    
129 sixie 1.1 ClassDef(ElectronTools, 0) // Muon tools
130     };
131     }
132    
133     #endif