ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/ElectronTools.h
Revision: 1.19
Committed: Fri Jul 22 14:36:29 2011 UTC (13 years, 9 months ago) by sixie
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_024b, Mit_025pre1, Mit_024a, Mit_024
Changes since 1.18: +1 -0 lines
Log Message:
update VBTF80 and re-organizeisolation code

File Contents

# Content
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 #include "MitAna/DataTree/interface/BeamSpotCol.h"
18 #include "MitAna/DataTree/interface/TriggerObjectCol.h"
19 #include "MitCommon/MathTools/interface/MathUtils.h"
20
21 namespace mithep {
22 class ElectronTools {
23 public:
24 ElectronTools();
25
26 enum EElIdType {
27 kIdUndef = 0, //not defined
28 kTight, //"Tight"
29 kLoose, //"Loose"
30 kLikelihood, //"Likelihood"
31 kNoId, //"NoId"
32 kZeeId, //"ZeeId"
33 kCustomIdLoose, //"CustomLoose"
34 kCustomIdTight, //"CustomTight"
35 kVBTFWorkingPointFakeableId,
36 kVBTFWorkingPoint95Id,
37 kVBTFWorkingPoint90Id,
38 kVBTFWorkingPoint85Id,
39 kVBTFWorkingPoint80Id,
40 kVBTFWorkingPointLowPtId,
41 kVBTFWorkingPoint70Id
42 };
43
44 enum EElIsoType {
45 kIsoUndef = 0, //"not defined"
46 kTrackCalo, //"TrackCalo"
47 kTrackJura, //"TrackJura"
48 kTrackJuraCombined, //"TrackJuraCombined"
49 kTrackJuraSliding, //"TrackJuraSliding"
50 kTrackJuraSlidingNoCorrection, //"TrackJuraSlidingNoCorrection"
51 kCombinedRelativeConeAreaCorrected, //"CombinedRelativeConeAreaCorrected"
52 kNoIso, //"NoIso"
53 kPFIso, //"PFIso"
54 kPFIsoNoL, //"PFIsoNoL"
55 kZeeIso, //"ZeeIso"
56 kCustomIso, //"Custom"
57 kVBTFWorkingPoint95Iso,
58 kVBTFWorkingPoint90Iso,
59 kVBTFWorkingPoint85Iso,
60 kVBTFWorkingPoint80Iso,
61 kVBTFWorkingPoint70Iso
62 };
63
64 static Bool_t PassChargeFilter(const Electron *el);
65 static Bool_t PassConversionFilter(const Electron *el, const DecayParticleCol *conversions,
66 const BaseVertex *vtx, UInt_t nWrongHitsMax=0, Double_t probMin=1e-6,
67 Double_t lxyMin = 2.0, Bool_t matchCkf = kTRUE, Bool_t requireArbitratedMerged = kFALSE, Double_t trkptMin = -99.);
68 static Bool_t PassCustomID(const Electron *el, EElIdType idType);
69 static Bool_t PassCustomIso(const Electron *el, EElIsoType isoType,
70 Bool_t useCombineIso = kTRUE);
71 static Bool_t PassD0Cut(const Electron *el, const VertexCol *vertices, Double_t fD0Cut, Int_t nVertex = 0);
72 static Bool_t PassD0Cut(const Electron *el, const BeamSpotCol *beamspots, Double_t fD0Cut);
73 static Bool_t PassDZCut(const Electron *el, const VertexCol *vertices, Double_t fDZCut, Int_t nVertex = 0);
74 static Bool_t PassSpikeRemovalFilter(const Electron *ele);
75 static Bool_t PassTriggerMatching(const Electron *ele, const TriggerObjectCol *trigobjs);
76 static Int_t Classify(const Electron *ele);
77 static Int_t PassTightId(const Electron *ele, const VertexCol *vertices,
78 const DecayParticleCol *conversions, const Int_t typeCuts,
79 Double_t beta = 1.0);
80 static bool compute_cut(double x, double et, double cut_min, double cut_max, bool gtn=false);
81
82 ClassDef(ElectronTools, 0) // Muon tools
83 };
84 }
85
86 #endif