1 |
< |
#ifndef ELECTRON_SELECTION_BDT |
2 |
< |
#define ELECTRON_SELECTION_BDT |
1 |
> |
#ifndef ELECTRON_SELECTION |
2 |
> |
#define ELECTRON_SELECTION |
3 |
|
|
4 |
|
#include <vector> |
5 |
|
#include <cassert> |
20 |
|
|
21 |
|
#include "ParseArgs.h" |
22 |
|
#include "SelectionStatus.h" |
23 |
+ |
#include "Various.h" |
24 |
+ |
|
25 |
+ |
#include "ElectronTools.h" |
26 |
+ |
#include "PileupEnergyDensity.h" |
27 |
+ |
#include "PFCandidate.h" |
28 |
+ |
#include "IsolationSelection.h" |
29 |
|
|
30 |
|
#define ELE_IDMVA_CUT_BIN0 0.369 |
31 |
|
#define ELE_IDMVA_CUT_BIN1 -0.025 |
34 |
|
#define ELE_IDMVA_CUT_BIN4 0.467 |
35 |
|
#define ELE_IDMVA_CUT_BIN5 0.795 |
36 |
|
|
37 |
< |
using namespace std; |
38 |
< |
|
39 |
< |
SelectionStatus electronDummyVeto(ControlFlags &, const mithep::Electron*, const mithep::Vertex &); |
40 |
< |
SelectionStatus electronCutBasedVeto(ControlFlags &, const mithep::Electron*, const mithep::Vertex &); |
41 |
< |
|
42 |
< |
SelectionStatus electronPreSelection(ControlFlags &, const mithep::Electron *, const mithep::Vertex &); |
43 |
< |
SelectionStatus electronBDTSelection( ControlFlags &, const mithep::Electron * ); |
44 |
< |
|
45 |
< |
void initBDTSelection(); |
46 |
< |
Bool_t isEleFO(ControlFlags &, const mithep::Electron *, const mithep::Vertex &vtx); |
47 |
< |
Bool_t isLooseEleFO(const mithep::Electron *, const mithep::Array<mithep::PFCandidate> *, const mithep::Vertex &vtx); |
48 |
< |
|
37 |
> |
#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 |
< |
SelectionStatus electronIDMVASelection(ControlFlags &ctrl, |
45 |
< |
const mithep::Electron *ele, |
46 |
< |
const mithep::Vertex & vtx ); |
47 |
< |
void initElectronIDMVA(); |
58 |
> |
using namespace std; |
59 |
|
|
60 |
+ |
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 |
+ |
|
64 |
+ |
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 |
+ |
|
66 |
+ |
SelectionStatus electronReferencePreSelection(ControlFlags &, const mithep::Electron *, const mithep::Vertex *); |
67 |
+ |
SelectionStatus electronPreSelectionNoD0DzIP(ControlFlags &ctrl, |
68 |
+ |
const mithep::Electron *electron, |
69 |
+ |
const mithep::Vertex * vtx); |
70 |
+ |
SelectionStatus electronPreSelectionNoD0IP(ControlFlags &ctrl, |
71 |
+ |
const mithep::Electron *electron, |
72 |
+ |
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 |
+ |
SelectionStatus electronReferenceIDMVASelectionV1(ControlFlags &ctrl, |
83 |
+ |
const mithep::Electron *ele, |
84 |
+ |
const mithep::Vertex * vtx ); |
85 |
+ |
void initElectronIDMVAV1(); |
86 |
+ |
SelectionStatus electronTagSelection(const mithep::Electron *ele, |
87 |
+ |
const mithep::Vertex *vtx, |
88 |
+ |
const mithep::Array<mithep::PFCandidate> *pfCandidates); |
89 |
|
#endif |
90 |
|
|