ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/ElectronTools.h
Revision: 1.13
Committed: Tue Mar 15 08:34:31 2011 UTC (14 years, 1 month ago) by ceballos
Content type: text/plain
Branch: MAIN
Changes since 1.12: +1 -0 lines
Log Message:
update

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    
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     kVBTFWorkingPoint95Id,
36     kVBTFWorkingPoint90Id,
37 ceballos 1.4 kVBTFWorkingPoint85Id,
38 sixie 1.1 kVBTFWorkingPoint80Id,
39 ceballos 1.13 kVBTFWorkingPoint80LowPtId,
40 sixie 1.1 kVBTFWorkingPoint70Id
41     };
42    
43     enum EElIsoType {
44 ceballos 1.12 kIsoUndef = 0, //"not defined"
45     kTrackCalo, //"TrackCalo"
46     kTrackJura, //"TrackJura"
47     kTrackJuraCombined, //"TrackJuraCombined"
48     kTrackJuraSliding, //"TrackJuraSliding"
49     kTrackJuraSlidingNoCorrection, //"TrackJuraSlidingNoCorrection"
50     kNoIso, //"NoIso"
51     kPFIso, //"PFIso"
52     kPFIsoNoL, //"PFIsoNoL"
53     kZeeIso, //"ZeeIso"
54     kCustomIso, //"Custom"
55 sixie 1.1 kVBTFWorkingPoint95Iso,
56     kVBTFWorkingPoint90Iso,
57 ceballos 1.4 kVBTFWorkingPoint85Iso,
58 sixie 1.1 kVBTFWorkingPoint80Iso,
59     kVBTFWorkingPoint70Iso
60     };
61    
62     static Bool_t PassChargeFilter(const Electron *el);
63     static Bool_t PassConversionFilter(const Electron *el, const DecayParticleCol *conversions,
64 bendavid 1.9 const BaseVertex *vtx, UInt_t nWrongHitsMax=1, Double_t probMin=1e-6,
65     Double_t lxyMin = 2.0, Bool_t matchCkf = kFALSE, Bool_t requireArbitratedMerged = kTRUE);
66 sixie 1.1 static Bool_t PassCustomID(const Electron *el, EElIdType idType);
67 ceballos 1.4 static Bool_t PassCustomIso(const Electron *el, EElIsoType isoType,
68     Bool_t useCombineIso = kTRUE);
69 ceballos 1.7 static Bool_t PassD0Cut(const Electron *el, const VertexCol *vertices, Double_t fD0Cut);
70     static Bool_t PassD0Cut(const Electron *el, const BeamSpotCol *beamspots, Double_t fD0Cut);
71 sixie 1.1 static Bool_t PassSpikeRemovalFilter(const Electron *ele);
72 bendavid 1.5 static Bool_t PassTriggerMatching(const Electron *ele, const TriggerObjectCol *trigobjs);
73 ceballos 1.3 static Int_t Classify(const Electron *ele);
74     static Int_t PassTightId(const Electron *ele, const VertexCol *vertices,
75 ceballos 1.10 const DecayParticleCol *conversions, const Int_t typeCuts,
76     Double_t beta = 1.0);
77 ceballos 1.6 static bool compute_cut(double x, double et, double cut_min, double cut_max, bool gtn=false);
78 sixie 1.1
79     ClassDef(ElectronTools, 0) // Muon tools
80     };
81     }
82    
83     #endif