ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitHzz4l/LeptonSelection/interface/ElectronSelection.h
Revision: 1.21
Committed: Tue Oct 23 10:21:06 2012 UTC (12 years, 6 months ago) by dkralph
Content type: text/plain
Branch: MAIN
CVS Tags: compiled, HEAD
Changes since 1.20: +12 -14 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 khahn 1.4 #ifndef ELECTRON_SELECTION
2     #define ELECTRON_SELECTION
3 khahn 1.1
4     #include <vector>
5     #include <cassert>
6     #include <math.h>
7     #include <map>
8    
9     #include "Vertex.h"
10     #include "Electron.h"
11     #include "ElectronCol.h"
12     #include "PFCandidate.h"
13    
14     #include "TMath.h"
15    
16     #include "TMVA/Factory.h"
17     #include "TMVA/Tools.h"
18     #include "TMVA/Reader.h"
19     #include "TMVA/MethodCuts.h"
20    
21     #include "ParseArgs.h"
22     #include "SelectionStatus.h"
23 dkralph 1.17 #include "Various.h"
24 khahn 1.1
25 dkralph 1.12 #include "ElectronTools.h"
26 anlevin 1.11 #include "PileupEnergyDensity.h"
27 dkralph 1.12 #include "PFCandidate.h"
28 dkralph 1.21 #include "IsolationSelection.h"
29 anlevin 1.8
30 khahn 1.1 #define ELE_IDMVA_CUT_BIN0 0.369
31     #define ELE_IDMVA_CUT_BIN1 -0.025
32     #define ELE_IDMVA_CUT_BIN2 0.531
33     #define ELE_IDMVA_CUT_BIN3 0.735
34     #define ELE_IDMVA_CUT_BIN4 0.467
35     #define ELE_IDMVA_CUT_BIN5 0.795
36    
37 khahn 1.3 #define ELE_REFERENCE_IDMVA_CUT_BIN0 0.470 // eta<0.8, pt<10
38     #define ELE_REFERENCE_IDMVA_CUT_BIN1 0.004 // 0.8<eta<1.479, pt<10
39     #define ELE_REFERENCE_IDMVA_CUT_BIN2 0.295 // eta>1.478, pt<10
40     #define ELE_REFERENCE_IDMVA_CUT_BIN3 0.500 // eta<0.8, pt>10
41     #define ELE_REFERENCE_IDMVA_CUT_BIN4 0.120 // 0.8<eta<1.479, pt>10
42     #define ELE_REFERENCE_IDMVA_CUT_BIN5 0.600 // eta>1.478, pt>10
43    
44     #define ELE_LOOSE_IDMVA_CUT_BIN0 0.369
45     #define ELE_LOOSE_IDMVA_CUT_BIN1 -0.025
46     #define ELE_LOOSE_IDMVA_CUT_BIN2 0.531
47     #define ELE_LOOSE_IDMVA_CUT_BIN3 0.735
48     #define ELE_LOOSE_IDMVA_CUT_BIN4 0.467
49     #define ELE_LOOSE_IDMVA_CUT_BIN5 0.795
50    
51     #define ELE_TIGHT_IDMVA_CUT_BIN0 0.093
52     #define ELE_TIGHT_IDMVA_CUT_BIN1 0.451
53     #define ELE_TIGHT_IDMVA_CUT_BIN2 0.595
54     #define ELE_TIGHT_IDMVA_CUT_BIN3 0.881
55     #define ELE_TIGHT_IDMVA_CUT_BIN4 0.731
56     #define ELE_TIGHT_IDMVA_CUT_BIN5 0.891
57    
58 khahn 1.1 using namespace std;
59 khahn 1.2
60 dkralph 1.17 bool electron2012CutBasedIDMediumVersionThatWorksOn2011(ControlFlags &ctrl, const mithep::Electron *ele, const mithep::Vertex * vtx, const mithep::Array<mithep::PFCandidate> * fPFCandidates,
61     const mithep::DecayParticleCol *conversions, const mithep::Array<mithep::PileupEnergyDensity> * puEnergyDensity,
62     mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion);
63 anlevin 1.8
64 dkralph 1.21 bool electronPOG2012CutBasedIDMedium(const mithep::Electron *ele, const mithep::Vertex * vtx, const mithep::Array<mithep::PFCandidate> * fPFCandidates, const mithep::DecayParticleCol *conversions, const mithep::Array<mithep::PileupEnergyDensity> * puEnergyDensity);
65 anlevin 1.16
66 anlevin 1.5 SelectionStatus electronReferencePreSelection(ControlFlags &, const mithep::Electron *, const mithep::Vertex *);
67 khahn 1.7 SelectionStatus electronPreSelectionNoD0DzIP(ControlFlags &ctrl,
68     const mithep::Electron *electron,
69     const mithep::Vertex * vtx);
70 dkralph 1.19 SelectionStatus electronPreSelectionNoD0IP(ControlFlags &ctrl,
71 dkralph 1.18 const mithep::Electron *electron,
72 dkralph 1.21 const mithep::Vertex * vtx);
73     // get the mva value
74     double getElectronIDMVAval(ControlFlags &ctrl,
75     const mithep::Electron *ele,
76     const mithep::Vertex * vtx );
77     // see if electron passes mva
78     SelectionStatus passElectronIDMVA(ControlFlags &ctrl,
79     double mvaVal,
80     const mithep::Electron *ele);
81     // do both of the above steps
82 khahn 1.6 SelectionStatus electronReferenceIDMVASelectionV1(ControlFlags &ctrl,
83     const mithep::Electron *ele,
84     const mithep::Vertex * vtx );
85 khahn 1.7 void initElectronIDMVAV1();
86 dkralph 1.12 SelectionStatus electronTagSelection(const mithep::Electron *ele,
87     const mithep::Vertex *vtx,
88     const mithep::Array<mithep::PFCandidate> *pfCandidates);
89 khahn 1.1 #endif
90