ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/ElectronTools.h
Revision: 1.33
Committed: Sun Jul 22 20:33:27 2012 UTC (12 years, 9 months ago) by sixie
Content type: text/plain
Branch: MAIN
Changes since 1.32: +4 -2 lines
Log Message:
add Post-ICHEP2012 ID+Iso Combined MVA

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 fabstoec 1.32 kHggLeptonTagId2012,
48 sixie 1.33 kMVAID_BDTG_IDHWW2012TrigV0,
49     kMVAID_BDTG_IDIsoCombinedHWW2012TrigV4
50 sixie 1.1 };
51    
52     enum EElIsoType {
53 ceballos 1.12 kIsoUndef = 0, //"not defined"
54     kTrackCalo, //"TrackCalo"
55     kTrackJura, //"TrackJura"
56     kTrackJuraCombined, //"TrackJuraCombined"
57     kTrackJuraSliding, //"TrackJuraSliding"
58     kTrackJuraSlidingNoCorrection, //"TrackJuraSlidingNoCorrection"
59 sixie 1.19 kCombinedRelativeConeAreaCorrected, //"CombinedRelativeConeAreaCorrected"
60 ceballos 1.12 kNoIso, //"NoIso"
61     kPFIso, //"PFIso"
62     kPFIsoNoL, //"PFIsoNoL"
63     kZeeIso, //"ZeeIso"
64     kCustomIso, //"Custom"
65 sixie 1.1 kVBTFWorkingPoint95Iso,
66     kVBTFWorkingPoint90Iso,
67 ceballos 1.4 kVBTFWorkingPoint85Iso,
68 sixie 1.1 kVBTFWorkingPoint80Iso,
69 sixie 1.23 kVBTFWorkingPoint70Iso,
70 ceballos 1.28 kMVAIso_BDTG_IDIsoCombined,
71 fabstoec 1.32 kPFIso_HWW2012TrigV0,
72 sixie 1.33 kPFIso_HggLeptonTag2012,
73     kMVAIso_BDTG_IDIsoCombinedHWW2012TrigV4
74 sixie 1.1 };
75    
76 sixie 1.23 enum EElectronEffectiveAreaType {
77     kEleChargedIso03,
78     kEleNeutralHadronIso03,
79 anlevin 1.31 kEleGammaAndNeutralHadronIso03,
80 sixie 1.23 kEleGammaIso03,
81     kEleGammaIsoVetoEtaStrip03,
82     kEleChargedIso04,
83     kEleNeutralHadronIso04,
84 khahn 1.30 kEleGammaAndNeutralHadronIso04,
85 sixie 1.23 kEleGammaIso04,
86     kEleGammaIsoVetoEtaStrip04,
87     kEleNeutralHadronIso007,
88 ceballos 1.28 kEleNeutralIso04,
89 sixie 1.23 kEleHoverE,
90     kEleHcalDepth1OverEcal,
91 sixie 1.24 kEleHcalDepth2OverEcal,
92     kEleGammaIsoDR0p0To0p1,
93     kEleGammaIsoDR0p1To0p2,
94     kEleGammaIsoDR0p2To0p3,
95     kEleGammaIsoDR0p3To0p4,
96     kEleGammaIsoDR0p4To0p5,
97     kEleNeutralHadronIsoDR0p0To0p1,
98     kEleNeutralHadronIsoDR0p1To0p2,
99     kEleNeutralHadronIsoDR0p2To0p3,
100     kEleNeutralHadronIsoDR0p3To0p4,
101     kEleNeutralHadronIsoDR0p4To0p5
102 sixie 1.23 };
103    
104 sixie 1.24 enum EElectronEffectiveAreaTarget {
105     kEleEANoCorr,
106     kEleEAData2011,
107 fabstoec 1.32 kEleEAData2012,
108 sixie 1.24 kEleEASummer11MC,
109     kEleEAFall11MC
110     };
111    
112 sixie 1.1 static Bool_t PassChargeFilter(const Electron *el);
113     static Bool_t PassConversionFilter(const Electron *el, const DecayParticleCol *conversions,
114 bendavid 1.15 const BaseVertex *vtx, UInt_t nWrongHitsMax=0, Double_t probMin=1e-6,
115 bendavid 1.17 Double_t lxyMin = 2.0, Bool_t matchCkf = kTRUE, Bool_t requireArbitratedMerged = kFALSE, Double_t trkptMin = -99.);
116 sixie 1.1 static Bool_t PassCustomID(const Electron *el, EElIdType idType);
117 ceballos 1.4 static Bool_t PassCustomIso(const Electron *el, EElIsoType isoType,
118     Bool_t useCombineIso = kTRUE);
119 ceballos 1.14 static Bool_t PassD0Cut(const Electron *el, const VertexCol *vertices, Double_t fD0Cut, Int_t nVertex = 0);
120 ceballos 1.7 static Bool_t PassD0Cut(const Electron *el, const BeamSpotCol *beamspots, Double_t fD0Cut);
121 ceballos 1.16 static Bool_t PassDZCut(const Electron *el, const VertexCol *vertices, Double_t fDZCut, Int_t nVertex = 0);
122 sixie 1.1 static Bool_t PassSpikeRemovalFilter(const Electron *ele);
123 bendavid 1.5 static Bool_t PassTriggerMatching(const Electron *ele, const TriggerObjectCol *trigobjs);
124 ceballos 1.3 static Int_t Classify(const Electron *ele);
125     static Int_t PassTightId(const Electron *ele, const VertexCol *vertices,
126 ceballos 1.10 const DecayParticleCol *conversions, const Int_t typeCuts,
127     Double_t beta = 1.0);
128 ceballos 1.6 static bool compute_cut(double x, double et, double cut_min, double cut_max, bool gtn=false);
129 sixie 1.20 static Double_t Likelihood(ElectronLikelihood *LH, const Electron *ele);
130 sixie 1.24 static Double_t ElectronEffectiveArea(EElectronEffectiveAreaType type, Double_t Eta,
131     EElectronEffectiveAreaTarget EffectiveAreaTarget = kEleEAData2011);
132 sixie 1.1
133 fabstoec 1.25 static Bool_t PassHggLeptonTagID(const Electron *el);
134 fabstoec 1.32 static Bool_t PassHggLeptonTagID2012(const Electron *el);
135 fabstoec 1.25
136 sixie 1.1 ClassDef(ElectronTools, 0) // Muon tools
137     };
138     }
139    
140     #endif