17 |
|
#include "MitAna/DataTree/interface/BeamSpotCol.h" |
18 |
|
#include "MitAna/DataTree/interface/TriggerObjectCol.h" |
19 |
|
#include "MitCommon/MathTools/interface/MathUtils.h" |
20 |
+ |
#include "MitPhysics/ElectronLikelihood/interface/ElectronLikelihood.h" |
21 |
|
|
22 |
|
namespace mithep { |
23 |
|
class ElectronTools { |
33 |
|
kZeeId, //"ZeeId" |
34 |
|
kCustomIdLoose, //"CustomLoose" |
35 |
|
kCustomIdTight, //"CustomTight" |
36 |
+ |
kVBTFWorkingPointFakeableId, |
37 |
|
kVBTFWorkingPoint95Id, |
38 |
|
kVBTFWorkingPoint90Id, |
39 |
|
kVBTFWorkingPoint85Id, |
40 |
|
kVBTFWorkingPoint80Id, |
41 |
< |
kVBTFWorkingPoint80LowPtId, |
42 |
< |
kVBTFWorkingPoint70Id |
41 |
> |
kVBTFWorkingPointLowPtId, |
42 |
> |
kVBTFWorkingPoint70Id, |
43 |
> |
kMVA_BDTG_V1, |
44 |
> |
kMVA_BDTG_V2 |
45 |
|
}; |
46 |
|
|
47 |
|
enum EElIsoType { |
51 |
|
kTrackJuraCombined, //"TrackJuraCombined" |
52 |
|
kTrackJuraSliding, //"TrackJuraSliding" |
53 |
|
kTrackJuraSlidingNoCorrection, //"TrackJuraSlidingNoCorrection" |
54 |
+ |
kCombinedRelativeConeAreaCorrected, //"CombinedRelativeConeAreaCorrected" |
55 |
|
kNoIso, //"NoIso" |
56 |
|
kPFIso, //"PFIso" |
57 |
|
kPFIsoNoL, //"PFIsoNoL" |
67 |
|
static Bool_t PassChargeFilter(const Electron *el); |
68 |
|
static Bool_t PassConversionFilter(const Electron *el, const DecayParticleCol *conversions, |
69 |
|
const BaseVertex *vtx, UInt_t nWrongHitsMax=0, Double_t probMin=1e-6, |
70 |
< |
Double_t lxyMin = 2.0, Bool_t matchCkf = kTRUE, Bool_t requireArbitratedMerged = kFALSE); |
70 |
> |
Double_t lxyMin = 2.0, Bool_t matchCkf = kTRUE, Bool_t requireArbitratedMerged = kFALSE, Double_t trkptMin = -99.); |
71 |
|
static Bool_t PassCustomID(const Electron *el, EElIdType idType); |
72 |
|
static Bool_t PassCustomIso(const Electron *el, EElIsoType isoType, |
73 |
|
Bool_t useCombineIso = kTRUE); |
74 |
|
static Bool_t PassD0Cut(const Electron *el, const VertexCol *vertices, Double_t fD0Cut, Int_t nVertex = 0); |
75 |
|
static Bool_t PassD0Cut(const Electron *el, const BeamSpotCol *beamspots, Double_t fD0Cut); |
76 |
< |
static Bool_t PassDZCut(const Electron *el, const VertexCol *vertices, Double_t fDZCut); |
76 |
> |
static Bool_t PassDZCut(const Electron *el, const VertexCol *vertices, Double_t fDZCut, Int_t nVertex = 0); |
77 |
|
static Bool_t PassSpikeRemovalFilter(const Electron *ele); |
78 |
|
static Bool_t PassTriggerMatching(const Electron *ele, const TriggerObjectCol *trigobjs); |
79 |
|
static Int_t Classify(const Electron *ele); |
81 |
|
const DecayParticleCol *conversions, const Int_t typeCuts, |
82 |
|
Double_t beta = 1.0); |
83 |
|
static bool compute_cut(double x, double et, double cut_min, double cut_max, bool gtn=false); |
84 |
+ |
static Double_t Likelihood(ElectronLikelihood *LH, const Electron *ele); |
85 |
|
|
86 |
|
ClassDef(ElectronTools, 0) // Muon tools |
87 |
|
}; |