1 |
+ |
#ifndef ISOLATIONSELECTION |
2 |
+ |
#define ISOLATIONSELECTION |
3 |
+ |
|
4 |
|
#include "Array.h" |
5 |
|
#include "Electron.h" |
6 |
|
#include "Muon.h" |
18 |
|
#include "SelectionStatus.h" |
19 |
|
#include "SimpleLepton.h" |
20 |
|
|
21 |
+ |
using namespace std; |
22 |
+ |
using namespace mithep; |
23 |
+ |
|
24 |
|
#define MUON_ISOMVA_CUT_BIN0 -0.615 |
25 |
|
#define MUON_ISOMVA_CUT_BIN1 0.235 |
26 |
|
#define MUON_ISOMVA_CUT_BIN2 -0.825 |
170 |
|
|
171 |
|
SelectionStatus electronIsoSelection(ControlFlags &, const mithep::Electron *, const mithep::Vertex &, const mithep::Array<mithep::PFCandidate> * fPFCandidateCol ); |
172 |
|
SelectionStatus muonIsoSelection(ControlFlags &, const mithep::Muon *, const mithep::Vertex *, const mithep::Array<mithep::PFCandidate> * fPFCandidateCol ); |
167 |
– |
bool pairwiseIsoSelection( ControlFlags &, vector<SimpleLepton> &, float rho ); |
173 |
|
bool noIso(ControlFlags &, vector<SimpleLepton> &, float rho); |
174 |
|
|
175 |
|
void initMuonIsoMVA(); |
198 |
|
mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion, |
199 |
|
vector<const mithep::PFCandidate*> photonsToVeto); |
200 |
|
|
196 |
– |
// hacked version |
197 |
– |
double muonPFIso04(ControlFlags &ctrl, |
198 |
– |
const mithep::Muon * mu, |
199 |
– |
const mithep::Vertex * vtx, |
200 |
– |
const mithep::Array<mithep::PFCandidate> * fPFCandidates, |
201 |
– |
float rho, // the hack |
202 |
– |
mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion, |
203 |
– |
vector<const mithep::Muon*> muonsToVeto, |
204 |
– |
vector<const mithep::Electron*> electronsToVeto); |
205 |
– |
// |
201 |
|
SelectionStatus muonReferenceIsoSelection(ControlFlags &ctrl, |
202 |
|
const mithep::Muon * mu, |
203 |
|
const mithep::Vertex * vtx, |
205 |
|
const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity, |
206 |
|
mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion, |
207 |
|
vector<const mithep::PFCandidate*> photonsToVeto); |
213 |
– |
// hacked version |
214 |
– |
SelectionStatus muonReferenceIsoSelection(ControlFlags &ctrl, |
215 |
– |
const mithep::Muon * mu, |
216 |
– |
const mithep::Vertex * vtx, |
217 |
– |
const mithep::Array<mithep::PFCandidate> * fPFCandidates, |
218 |
– |
float, |
219 |
– |
mithep::MuonTools::EMuonEffectiveAreaTarget EffectiveAreaVersion, |
220 |
– |
vector<const mithep::Muon*> muonsToVeto, |
221 |
– |
vector<const mithep::Electron*> electronsToVeto); |
208 |
|
|
209 |
|
void initElectronIsoMVA(); |
210 |
|
SelectionStatus electronIsoMVASelection(ControlFlags &ctrl, |
232 |
|
mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion, |
233 |
|
vector<const mithep::PFCandidate*> photonsToVeto); |
234 |
|
|
249 |
– |
// hacked version |
250 |
– |
float electronPFIso04(ControlFlags &ctrl, |
251 |
– |
const mithep::Electron * ele, |
252 |
– |
const mithep::Vertex * vtx, |
253 |
– |
const mithep::Array<mithep::PFCandidate> * fPFCandidates, |
254 |
– |
float rho, // the hack |
255 |
– |
mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion, |
256 |
– |
vector<const mithep::Muon*> muonsToVeto, |
257 |
– |
vector<const mithep::Electron*> electronsToVeto) ; |
258 |
– |
// |
235 |
|
SelectionStatus electronReferenceIsoSelection(ControlFlags &ctrl, |
236 |
|
const mithep::Electron * ele, |
237 |
|
const mithep::Vertex * vtx, |
239 |
|
const mithep::Array<mithep::PileupEnergyDensity> * fPUEnergyDensity, |
240 |
|
mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion, |
241 |
|
vector<const mithep::PFCandidate*> photonsToVeto); |
266 |
– |
// hacked version |
267 |
– |
SelectionStatus electronReferenceIsoSelection(ControlFlags &ctrl, |
268 |
– |
const mithep::Electron * ele, |
269 |
– |
const mithep::Vertex * vtx, |
270 |
– |
const mithep::Array<mithep::PFCandidate> * fPFCandidates, |
271 |
– |
float, |
272 |
– |
mithep::ElectronTools::EElectronEffectiveAreaTarget EffectiveAreaVersion, |
273 |
– |
vector<const mithep::Muon*> muonsToVeto, |
274 |
– |
vector<const mithep::Electron*> electronsToVeto); |
275 |
– |
|
276 |
– |
double dbetaCorrectedIsoDr03(ControlFlags & ctrl, |
277 |
– |
const mithep::PFCandidate * photon, |
278 |
– |
const mithep::Muon * mu, // need to veto |
279 |
– |
const mithep::Array<mithep::PFCandidate> * fPFCandidates); |
242 |
|
|
243 |
|
double dbetaCorrectedIsoDr03(ControlFlags & ctrl, |
244 |
|
const mithep::PFCandidate * photon, |
245 |
< |
const mithep::Electron * el, // need to veto |
245 |
> |
const mithep::ChargedParticle * lep, // need to veto |
246 |
|
const mithep::Array<mithep::PFCandidate> * fPFCandidates); |
247 |
|
|
248 |
|
double nonCorrectedIsoDr03(ControlFlags & ctrl, |
249 |
|
const mithep::PFCandidate * photon, |
250 |
< |
const mithep::Muon * mu, // need to veto |
289 |
< |
const mithep::Array<mithep::PFCandidate> * fPFCandidates); |
290 |
< |
|
291 |
< |
double nonCorrectedIsoDr03(ControlFlags & ctrl, |
292 |
< |
const mithep::PFCandidate * photon, |
293 |
< |
const mithep::Electron * el, // need to veto |
250 |
> |
const mithep::ChargedParticle *lep, // need to veto |
251 |
|
const mithep::Array<mithep::PFCandidate> * fPFCandidates); |
252 |
|
|
253 |
+ |
double isoDr03ForFsr(ControlFlags & ctrl, |
254 |
+ |
const PFCandidate * photon, |
255 |
+ |
const ChargedParticle * lep, |
256 |
+ |
const Array<PFCandidate> * fPFCandidates, |
257 |
+ |
bool doDBetaCorr=false); |
258 |
+ |
#endif |