ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitHzz4l/LeptonSelection/interface/IsolationSelection.h
Revision: 1.9
Committed: Thu May 10 22:36:11 2012 UTC (13 years ago) by khahn
Content type: text/plain
Branch: MAIN
Changes since 1.8: +38 -0 lines
Log Message:
fscking sync

File Contents

# Content
1 #include "Electron.h"
2 #include "Muon.h"
3 #include "Vertex.h"
4 #include "PFCandidate.h"
5 #include "PFCandidateCol.h"
6 #include "PileupEnergyDensity.h"
7
8 #include "MuonTools.h"
9 #include "ElectronTools.h"
10
11 #include "ParseArgs.h"
12 #include "SelectionStatus.h"
13 #include "SimpleLepton.h"
14
15 #define MUON_ISOMVA_CUT_BIN0 -0.615
16 #define MUON_ISOMVA_CUT_BIN1 0.235
17 #define MUON_ISOMVA_CUT_BIN2 -0.825
18 #define MUON_ISOMVA_CUT_BIN3 0.155
19 #define MUON_ISOMVA_CUT_BIN4 -0.965
20 #define MUON_ISOMVA_CUT_BIN5 -0.989
21
22 #define MUON_ISOMVA_FORPFID_CUT_BIN0 -0.5934
23 #define MUON_ISOMVA_FORPFID_CUT_BIN1 0.3374
24 #define MUON_ISOMVA_FORPFID_CUT_BIN2 -0.7666
25 #define MUON_ISOMVA_FORPFID_CUT_BIN3 0.4102
26 #define MUON_ISOMVA_FORPFID_CUT_BIN4 -0.989
27 #define MUON_ISOMVA_FORPFID_CUT_BIN5 -0.9946
28
29 #define MUON_ISOMVA_LOOSE_FORPFID_CUT_BIN0 -0.5934
30 #define MUON_ISOMVA_LOOSE_FORPFID_CUT_BIN1 0.3374
31 #define MUON_ISOMVA_LOOSE_FORPFID_CUT_BIN2 -0.7666
32 #define MUON_ISOMVA_LOOSE_FORPFID_CUT_BIN3 0.4102
33 #define MUON_ISOMVA_LOOSE_FORPFID_CUT_BIN4 -0.989
34 #define MUON_ISOMVA_LOOSE_FORPFID_CUT_BIN5 -0.9946
35
36 #define MUON_ISOMVA_TIGHT_FORPFID_CUT_BIN0 -0.5934
37 #define MUON_ISOMVA_TIGHT_FORPFID_CUT_BIN1 0.3374
38 #define MUON_ISOMVA_TIGHT_FORPFID_CUT_BIN2 -0.7666
39 #define MUON_ISOMVA_TIGHT_FORPFID_CUT_BIN3 0.4102
40 #define MUON_ISOMVA_TIGHT_FORPFID_CUT_BIN4 -0.989
41 #define MUON_ISOMVA_TIGHT_FORPFID_CUT_BIN5 -0.9946
42
43 #define ELECTRON_LOOSE_ISOMVA_CUT_BIN0 0.385
44 #define ELECTRON_LOOSE_ISOMVA_CUT_BIN1 -0.083
45 #define ELECTRON_LOOSE_ISOMVA_CUT_BIN2 -0.573
46 #define ELECTRON_LOOSE_ISOMVA_CUT_BIN3 0.413
47 #define ELECTRON_LOOSE_ISOMVA_CUT_BIN4 0.271
48 #define ELECTRON_LOOSE_ISOMVA_CUT_BIN5 0.135
49
50 #define ELECTRON_TIGHT_ISOMVA_CUT_BIN0 0.533
51 #define ELECTRON_TIGHT_ISOMVA_CUT_BIN1 -0.237
52 #define ELECTRON_TIGHT_ISOMVA_CUT_BIN2 -0.573
53 #define ELECTRON_TIGHT_ISOMVA_CUT_BIN3 0.521
54 #define ELECTRON_TIGHT_ISOMVA_CUT_BIN4 0.531
55 #define ELECTRON_TIGHT_ISOMVA_CUT_BIN5 0.493
56
57 #define ELECTRON_REFERENCE_PFISO_CUT 0.25
58 #define MUON_REFERENCE_PFISO_CUT 0.25
59
60 Float_t computePFMuonIso(const mithep::Muon *muon,
61 const mithep::Vertex & vtx,
62 const mithep::Array<mithep::PFCandidate> * fPFCandidates,
63 const Double_t dRMax);
64
65 Float_t computePFEleIso(const mithep::Electron *electron,
66 const mithep::Vertex & fVertex,
67 const mithep::Array<mithep::PFCandidate> * fPFCandidates,
68 const Double_t dRMax);
69
70 SelectionStatus electronIsoSelection(ControlFlags &, const mithep::Electron *, const mithep::Vertex &, const mithep::Array<mithep::PFCandidate> * fPFCandidateCol );
71 SelectionStatus muonIsoSelection(ControlFlags &, const mithep::Muon *, const mithep::Vertex &, const mithep::Array<mithep::PFCandidate> * fPFCandidateCol );
72 bool pairwiseIsoSelection( ControlFlags &, vector<SimpleLepton> &, float rho );
73 bool noIso(ControlFlags &, vector<SimpleLepton> &, float rho);
74
75 void initMuonIsoMVA();
76 SelectionStatus muonIsoMVASelection(ControlFlags &ctrl,
77 const mithep::Muon * mu,
78 const mithep::Vertex & vtx,
79 const mithep::Array<mithep::PFCandidate> * fPFCandidates,
80 const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity,
81 mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion,
82 vector<const mithep::Muon*> muonsToVeto,
83 vector<const mithep::Electron*> electronsToVeto);
84 double muonPFIso04(ControlFlags &ctrl,
85 const mithep::Muon * mu,
86 const mithep::Vertex & vtx,
87 const mithep::Array<mithep::PFCandidate> * fPFCandidates,
88 const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity,
89 mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion,
90 vector<const mithep::Muon*> muonsToVeto,
91 vector<const mithep::Electron*> electronsToVeto);
92 // hacked version
93 double muonPFIso04(ControlFlags &ctrl,
94 const mithep::Muon * mu,
95 const mithep::Vertex & vtx,
96 const mithep::Array<mithep::PFCandidate> * fPFCandidates,
97 float rho, // the hack
98 mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion,
99 vector<const mithep::Muon*> muonsToVeto,
100 vector<const mithep::Electron*> electronsToVeto);
101 //
102 SelectionStatus muonReferenceIsoSelection(ControlFlags &ctrl,
103 const mithep::Muon * mu,
104 const mithep::Vertex & vtx,
105 const mithep::Array<mithep::PFCandidate> * fPFCandidates,
106 const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity,
107 mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion,
108 vector<const mithep::Muon*> muonsToVeto,
109 vector<const mithep::Electron*> electronsToVeto);
110 // hacked version
111 SelectionStatus muonReferenceIsoSelection(ControlFlags &ctrl,
112 const mithep::Muon * mu,
113 const mithep::Vertex & vtx,
114 const mithep::Array<mithep::PFCandidate> * fPFCandidates,
115 float,
116 mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion,
117 vector<const mithep::Muon*> muonsToVeto,
118 vector<const mithep::Electron*> electronsToVeto);
119
120 void initElectronIsoMVA();
121 SelectionStatus electronIsoMVASelection(ControlFlags &ctrl,
122 const mithep::Electron * ele,
123 const mithep::Vertex & vtx,
124 const mithep::Array<mithep::PFCandidate> * fPFCandidates,
125 const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity,
126 mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion,
127 vector<const mithep::Muon*> muonsToVeto,
128 vector<const mithep::Electron*> electronsToVeto);
129 float electronPFIso04(ControlFlags &ctrl,
130 const mithep::Electron * ele,
131 const mithep::Vertex & vtx,
132 const mithep::Array<mithep::PFCandidate> * fPFCandidates,
133 const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity,
134 mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion,
135 vector<const mithep::Muon*> muonsToVeto,
136 vector<const mithep::Electron*> electronsToVeto) ;
137 // hacked version
138 float electronPFIso04(ControlFlags &ctrl,
139 const mithep::Electron * ele,
140 const mithep::Vertex & vtx,
141 const mithep::Array<mithep::PFCandidate> * fPFCandidates,
142 float rho, // the hack
143 mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion,
144 vector<const mithep::Muon*> muonsToVeto,
145 vector<const mithep::Electron*> electronsToVeto) ;
146 //
147 SelectionStatus electronReferenceIsoSelection(ControlFlags &ctrl,
148 const mithep::Electron * ele,
149 const mithep::Vertex & vtx,
150 const mithep::Array<mithep::PFCandidate> * fPFCandidates,
151 const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity,
152 mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion,
153 vector<const mithep::Muon*> muonsToVeto,
154 vector<const mithep::Electron*> electronsToVeto);
155 // hacked version
156 SelectionStatus electronReferenceIsoSelection(ControlFlags &ctrl,
157 const mithep::Electron * ele,
158 const mithep::Vertex & vtx,
159 const mithep::Array<mithep::PFCandidate> * fPFCandidates,
160 float,
161 mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion,
162 vector<const mithep::Muon*> muonsToVeto,
163 vector<const mithep::Electron*> electronsToVeto);