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> |
21 |
|
#include "ParseArgs.h" |
22 |
|
#include "SelectionStatus.h" |
23 |
|
|
24 |
+ |
#include "ElectronTools.h" |
25 |
+ |
#include "PileupEnergyDensity.h" |
26 |
+ |
#include "PFCandidate.h" |
27 |
+ |
|
28 |
|
#define ELE_IDMVA_CUT_BIN0 0.369 |
29 |
|
#define ELE_IDMVA_CUT_BIN1 -0.025 |
30 |
|
#define ELE_IDMVA_CUT_BIN2 0.531 |
32 |
|
#define ELE_IDMVA_CUT_BIN4 0.467 |
33 |
|
#define ELE_IDMVA_CUT_BIN5 0.795 |
34 |
|
|
35 |
+ |
#define ELE_REFERENCE_IDMVA_CUT_BIN0 0.470 // eta<0.8, pt<10 |
36 |
+ |
#define ELE_REFERENCE_IDMVA_CUT_BIN1 0.004 // 0.8<eta<1.479, pt<10 |
37 |
+ |
#define ELE_REFERENCE_IDMVA_CUT_BIN2 0.295 // eta>1.478, pt<10 |
38 |
+ |
#define ELE_REFERENCE_IDMVA_CUT_BIN3 0.500 // eta<0.8, pt>10 |
39 |
+ |
#define ELE_REFERENCE_IDMVA_CUT_BIN4 0.120 // 0.8<eta<1.479, pt>10 |
40 |
+ |
#define ELE_REFERENCE_IDMVA_CUT_BIN5 0.600 // eta>1.478, pt>10 |
41 |
+ |
|
42 |
+ |
#define ELE_LOOSE_IDMVA_CUT_BIN0 0.369 |
43 |
+ |
#define ELE_LOOSE_IDMVA_CUT_BIN1 -0.025 |
44 |
+ |
#define ELE_LOOSE_IDMVA_CUT_BIN2 0.531 |
45 |
+ |
#define ELE_LOOSE_IDMVA_CUT_BIN3 0.735 |
46 |
+ |
#define ELE_LOOSE_IDMVA_CUT_BIN4 0.467 |
47 |
+ |
#define ELE_LOOSE_IDMVA_CUT_BIN5 0.795 |
48 |
+ |
|
49 |
+ |
#define ELE_TIGHT_IDMVA_CUT_BIN0 0.093 |
50 |
+ |
#define ELE_TIGHT_IDMVA_CUT_BIN1 0.451 |
51 |
+ |
#define ELE_TIGHT_IDMVA_CUT_BIN2 0.595 |
52 |
+ |
#define ELE_TIGHT_IDMVA_CUT_BIN3 0.881 |
53 |
+ |
#define ELE_TIGHT_IDMVA_CUT_BIN4 0.731 |
54 |
+ |
#define ELE_TIGHT_IDMVA_CUT_BIN5 0.891 |
55 |
+ |
|
56 |
|
using namespace std; |
57 |
|
|
58 |
< |
SelectionStatus electronDummyVeto(ControlFlags &, const mithep::Electron*, const mithep::Vertex &); |
34 |
< |
SelectionStatus electronCutBasedVeto(ControlFlags &, const mithep::Electron*, const mithep::Vertex &); |
35 |
< |
|
36 |
< |
SelectionStatus electronPreSelection(ControlFlags &, const mithep::Electron *, const mithep::Vertex &); |
37 |
< |
SelectionStatus electronBDTSelection( ControlFlags &, const mithep::Electron * ); |
58 |
> |
bool electron2012CutBasedIDMedium(const mithep::Electron *ele, const mithep::Vertex * vtx, const mithep::Array<mithep::PFCandidate> * fPFCandidates, const mithep::DecayParticleCol *conversions, const mithep::Array<mithep::PileupEnergyDensity> * puEnergyDensity); |
59 |
|
|
60 |
< |
void initBDTSelection(); |
40 |
< |
Bool_t isEleFO(ControlFlags &, const mithep::Electron *, const mithep::Vertex &vtx); |
41 |
< |
Bool_t isLooseEleFO(const mithep::Electron *, const mithep::Array<mithep::PFCandidate> *, const mithep::Vertex &vtx); |
60 |
> |
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); |
61 |
|
|
62 |
|
|
63 |
+ |
SelectionStatus electronDummyVeto(ControlFlags &, const mithep::Electron*, const mithep::Vertex *); |
64 |
+ |
SelectionStatus electronCutBasedVeto(ControlFlags &, const mithep::Electron*, const mithep::Vertex *); |
65 |
+ |
|
66 |
+ |
SelectionStatus electronPreSelection(ControlFlags &, const mithep::Electron *, const mithep::Vertex *); |
67 |
+ |
SelectionStatus electronReferencePreSelection(ControlFlags &, const mithep::Electron *, const mithep::Vertex *); |
68 |
+ |
SelectionStatus electronPreSelectionNoD0DzIP(ControlFlags &ctrl, |
69 |
+ |
const mithep::Electron *electron, |
70 |
+ |
const mithep::Vertex * vtx); |
71 |
+ |
|
72 |
|
SelectionStatus electronIDMVASelection(ControlFlags &ctrl, |
73 |
|
const mithep::Electron *ele, |
74 |
< |
const mithep::Vertex & vtx ); |
74 |
> |
const mithep::Vertex * vtx ); |
75 |
> |
SelectionStatus electronReferenceIDMVASelection(ControlFlags &ctrl, |
76 |
> |
const mithep::Electron *ele, |
77 |
> |
const mithep::Vertex * vtx ); |
78 |
> |
SelectionStatus electronReferenceIDMVASelectionV1(ControlFlags &ctrl, |
79 |
> |
const mithep::Electron *ele, |
80 |
> |
const mithep::Vertex * vtx ); |
81 |
|
void initElectronIDMVA(); |
82 |
< |
|
82 |
> |
void initElectronIDMVAV1(); |
83 |
> |
SelectionStatus electronTagSelection(const mithep::Electron *ele, |
84 |
> |
const mithep::Vertex *vtx, |
85 |
> |
const mithep::Array<mithep::PFCandidate> *pfCandidates); |
86 |
> |
SelectionStatus electronDenominatorSelection(ControlFlags &ctrl, |
87 |
> |
const mithep::Electron *electron, |
88 |
> |
const mithep::Vertex * vtx) ; |
89 |
|
#endif |
90 |
|
|