ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/ElectronTools.h
Revision: 1.35
Committed: Fri Dec 14 14:12:15 2012 UTC (12 years, 4 months ago) by sixie
Content type: text/plain
Branch: MAIN
Changes since 1.34: +3 -0 lines
Log Message:
add E-P combination for electron momentum

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 sixie 1.1 static Bool_t PassCustomID(const Electron *el, EElIdType idType);
120 ceballos 1.4 static Bool_t PassCustomIso(const Electron *el, EElIsoType isoType,
121     Bool_t useCombineIso = kTRUE);
122 ceballos 1.14 static Bool_t PassD0Cut(const Electron *el, const VertexCol *vertices, Double_t fD0Cut, Int_t nVertex = 0);
123 ceballos 1.7 static Bool_t PassD0Cut(const Electron *el, const BeamSpotCol *beamspots, Double_t fD0Cut);
124 ceballos 1.16 static Bool_t PassDZCut(const Electron *el, const VertexCol *vertices, Double_t fDZCut, Int_t nVertex = 0);
125 sixie 1.1 static Bool_t PassSpikeRemovalFilter(const Electron *ele);
126 bendavid 1.5 static Bool_t PassTriggerMatching(const Electron *ele, const TriggerObjectCol *trigobjs);
127 ceballos 1.3 static Int_t Classify(const Electron *ele);
128     static Int_t PassTightId(const Electron *ele, const VertexCol *vertices,
129 ceballos 1.10 const DecayParticleCol *conversions, const Int_t typeCuts,
130     Double_t beta = 1.0);
131 ceballos 1.6 static bool compute_cut(double x, double et, double cut_min, double cut_max, bool gtn=false);
132 sixie 1.20 static Double_t Likelihood(ElectronLikelihood *LH, const Electron *ele);
133 sixie 1.24 static Double_t ElectronEffectiveArea(EElectronEffectiveAreaType type, Double_t Eta,
134     EElectronEffectiveAreaTarget EffectiveAreaTarget = kEleEAData2011);
135 sixie 1.35 static std::pair<Double_t,Double_t> ComputeEPCombination( const Electron * ele, const float regression_energy,
136     const float regression_energy_error);
137 sixie 1.1
138 fabstoec 1.25 static Bool_t PassHggLeptonTagID(const Electron *el);
139 fabstoec 1.32 static Bool_t PassHggLeptonTagID2012(const Electron *el);
140 mingyang 1.34
141 sixie 1.1 ClassDef(ElectronTools, 0) // Muon tools
142     };
143     }
144    
145     #endif