ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/ElectronTools.h
Revision: 1.27
Committed: Sat Apr 28 07:11:17 2012 UTC (13 years ago) by ceballos
Content type: text/plain
Branch: MAIN
Changes since 1.26: +1 -1 lines
Log Message:
adding hww id

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     kMVAIso_BDTG_IDIsoCombined
69 sixie 1.1 };
70    
71 sixie 1.23 enum EElectronEffectiveAreaType {
72     kEleChargedIso03,
73     kEleNeutralHadronIso03,
74     kEleGammaIso03,
75     kEleGammaIsoVetoEtaStrip03,
76     kEleChargedIso04,
77     kEleNeutralHadronIso04,
78     kEleGammaIso04,
79     kEleGammaIsoVetoEtaStrip04,
80     kEleNeutralHadronIso007,
81     kEleHoverE,
82     kEleHcalDepth1OverEcal,
83 sixie 1.24 kEleHcalDepth2OverEcal,
84     kEleGammaIsoDR0p0To0p1,
85     kEleGammaIsoDR0p1To0p2,
86     kEleGammaIsoDR0p2To0p3,
87     kEleGammaIsoDR0p3To0p4,
88     kEleGammaIsoDR0p4To0p5,
89     kEleNeutralHadronIsoDR0p0To0p1,
90     kEleNeutralHadronIsoDR0p1To0p2,
91     kEleNeutralHadronIsoDR0p2To0p3,
92     kEleNeutralHadronIsoDR0p3To0p4,
93     kEleNeutralHadronIsoDR0p4To0p5
94 sixie 1.23 };
95    
96 sixie 1.24 enum EElectronEffectiveAreaTarget {
97     kEleEANoCorr,
98     kEleEAData2011,
99     kEleEASummer11MC,
100     kEleEAFall11MC
101     };
102    
103 sixie 1.1 static Bool_t PassChargeFilter(const Electron *el);
104     static Bool_t PassConversionFilter(const Electron *el, const DecayParticleCol *conversions,
105 bendavid 1.15 const BaseVertex *vtx, UInt_t nWrongHitsMax=0, Double_t probMin=1e-6,
106 bendavid 1.17 Double_t lxyMin = 2.0, Bool_t matchCkf = kTRUE, Bool_t requireArbitratedMerged = kFALSE, Double_t trkptMin = -99.);
107 sixie 1.1 static Bool_t PassCustomID(const Electron *el, EElIdType idType);
108 ceballos 1.4 static Bool_t PassCustomIso(const Electron *el, EElIsoType isoType,
109     Bool_t useCombineIso = kTRUE);
110 ceballos 1.14 static Bool_t PassD0Cut(const Electron *el, const VertexCol *vertices, Double_t fD0Cut, Int_t nVertex = 0);
111 ceballos 1.7 static Bool_t PassD0Cut(const Electron *el, const BeamSpotCol *beamspots, Double_t fD0Cut);
112 ceballos 1.16 static Bool_t PassDZCut(const Electron *el, const VertexCol *vertices, Double_t fDZCut, Int_t nVertex = 0);
113 sixie 1.1 static Bool_t PassSpikeRemovalFilter(const Electron *ele);
114 bendavid 1.5 static Bool_t PassTriggerMatching(const Electron *ele, const TriggerObjectCol *trigobjs);
115 ceballos 1.3 static Int_t Classify(const Electron *ele);
116     static Int_t PassTightId(const Electron *ele, const VertexCol *vertices,
117 ceballos 1.10 const DecayParticleCol *conversions, const Int_t typeCuts,
118     Double_t beta = 1.0);
119 ceballos 1.6 static bool compute_cut(double x, double et, double cut_min, double cut_max, bool gtn=false);
120 sixie 1.20 static Double_t Likelihood(ElectronLikelihood *LH, const Electron *ele);
121 sixie 1.24 static Double_t ElectronEffectiveArea(EElectronEffectiveAreaType type, Double_t Eta,
122     EElectronEffectiveAreaTarget EffectiveAreaTarget = kEleEAData2011);
123 sixie 1.1
124 fabstoec 1.25 static Bool_t PassHggLeptonTagID(const Electron *el);
125    
126 sixie 1.1 ClassDef(ElectronTools, 0) // Muon tools
127     };
128     }
129    
130     #endif