ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/ElectronTools.h
Revision: 1.31
Committed: Wed Jun 6 15:05:39 2012 UTC (12 years, 10 months ago) by anlevin
Content type: text/plain
Branch: MAIN
Changes since 1.30: +1 -0 lines
Log Message:
update electron 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 anlevin 1.31 kEleGammaAndNeutralHadronIso03,
76 sixie 1.23 kEleGammaIso03,
77     kEleGammaIsoVetoEtaStrip03,
78     kEleChargedIso04,
79     kEleNeutralHadronIso04,
80 khahn 1.30 kEleGammaAndNeutralHadronIso04,
81 sixie 1.23 kEleGammaIso04,
82     kEleGammaIsoVetoEtaStrip04,
83     kEleNeutralHadronIso007,
84 ceballos 1.28 kEleNeutralIso04,
85 sixie 1.23 kEleHoverE,
86     kEleHcalDepth1OverEcal,
87 sixie 1.24 kEleHcalDepth2OverEcal,
88     kEleGammaIsoDR0p0To0p1,
89     kEleGammaIsoDR0p1To0p2,
90     kEleGammaIsoDR0p2To0p3,
91     kEleGammaIsoDR0p3To0p4,
92     kEleGammaIsoDR0p4To0p5,
93     kEleNeutralHadronIsoDR0p0To0p1,
94     kEleNeutralHadronIsoDR0p1To0p2,
95     kEleNeutralHadronIsoDR0p2To0p3,
96     kEleNeutralHadronIsoDR0p3To0p4,
97     kEleNeutralHadronIsoDR0p4To0p5
98 sixie 1.23 };
99    
100 sixie 1.24 enum EElectronEffectiveAreaTarget {
101     kEleEANoCorr,
102     kEleEAData2011,
103 anlevin 1.29 kEleEAData2012,
104 sixie 1.24 kEleEASummer11MC,
105     kEleEAFall11MC
106     };
107    
108 sixie 1.1 static Bool_t PassChargeFilter(const Electron *el);
109     static Bool_t PassConversionFilter(const Electron *el, const DecayParticleCol *conversions,
110 bendavid 1.15 const BaseVertex *vtx, UInt_t nWrongHitsMax=0, Double_t probMin=1e-6,
111 bendavid 1.17 Double_t lxyMin = 2.0, Bool_t matchCkf = kTRUE, Bool_t requireArbitratedMerged = kFALSE, Double_t trkptMin = -99.);
112 sixie 1.1 static Bool_t PassCustomID(const Electron *el, EElIdType idType);
113 ceballos 1.4 static Bool_t PassCustomIso(const Electron *el, EElIsoType isoType,
114     Bool_t useCombineIso = kTRUE);
115 ceballos 1.14 static Bool_t PassD0Cut(const Electron *el, const VertexCol *vertices, Double_t fD0Cut, Int_t nVertex = 0);
116 ceballos 1.7 static Bool_t PassD0Cut(const Electron *el, const BeamSpotCol *beamspots, Double_t fD0Cut);
117 ceballos 1.16 static Bool_t PassDZCut(const Electron *el, const VertexCol *vertices, Double_t fDZCut, Int_t nVertex = 0);
118 sixie 1.1 static Bool_t PassSpikeRemovalFilter(const Electron *ele);
119 bendavid 1.5 static Bool_t PassTriggerMatching(const Electron *ele, const TriggerObjectCol *trigobjs);
120 ceballos 1.3 static Int_t Classify(const Electron *ele);
121     static Int_t PassTightId(const Electron *ele, const VertexCol *vertices,
122 ceballos 1.10 const DecayParticleCol *conversions, const Int_t typeCuts,
123     Double_t beta = 1.0);
124 ceballos 1.6 static bool compute_cut(double x, double et, double cut_min, double cut_max, bool gtn=false);
125 sixie 1.20 static Double_t Likelihood(ElectronLikelihood *LH, const Electron *ele);
126 sixie 1.24 static Double_t ElectronEffectiveArea(EElectronEffectiveAreaType type, Double_t Eta,
127     EElectronEffectiveAreaTarget EffectiveAreaTarget = kEleEAData2011);
128 sixie 1.1
129 fabstoec 1.25 static Bool_t PassHggLeptonTagID(const Electron *el);
130    
131 sixie 1.1 ClassDef(ElectronTools, 0) // Muon tools
132     };
133     }
134    
135     #endif