11 #include "FWCore/Framework/interface/ESHandle.h" 12 #include "DataFormats/VertexReco/interface/Vertex.h" 13 #include "DataFormats/PatCandidates/interface/Jet.h" 14 #include "DataFormats/PatCandidates/interface/Muon.h" 15 #include "DataFormats/PatCandidates/interface/Electron.h" 16 #include "DataFormats/PatCandidates/interface/PackedCandidate.h" 17 #include "DataFormats/MuonReco/interface/Muon.h" 18 #include "DataFormats/PatCandidates/interface/Lepton.h" 19 #include "DataFormats/PatCandidates/interface/PFIsolation.h" 42 cms::Exception(
"BadElectronID")
43 <<
"CutLevel " <<
static_cast<int>(threshold) <<
" is not accepted for electrons." << std::endl;
56 bool isVetoMuon(
const pat::Muon &lep, edm::Handle<reco::VertexCollection> vtx,
double lepIso);
57 bool isSignalMuon(
const pat::Muon &lep, edm::Handle<reco::VertexCollection> vtx,
double lepIso);
58 bool idMuon(
const pat::Muon &lep, edm::Handle<reco::VertexCollection> vtx,
CutLevel threshold);
59 bool vertexMuon(
const pat::Muon &lep, edm::Handle<reco::VertexCollection> vtx,
double &dz,
double &d0);
65 bool isVetoElectron(
const pat::Electron &lep, edm::Handle<reco::VertexCollection> vtx,
double lepIso);
66 bool isSignalElectron(
const pat::Electron &lep, edm::Handle<reco::VertexCollection> vtx,
double lepIso);
67 bool idElectron(
const pat::Electron &lep, edm::Handle<reco::VertexCollection> vtx,
CutLevel threshold,
bool doIso=
false);
68 bool vertexElectron(
const pat::Electron &lep, edm::Handle<reco::VertexCollection> vtx,
double &dz,
double &d0);
73 static std::pair<double, double>
getScaleFactor(
const reco::Candidate &cand);
76 static std::pair<double, double>
getScaleFactorFs(
const reco::Candidate &cand);
79 double getPFIsolation(edm::Handle<pat::PackedCandidateCollection> pfcands,
80 const reco::Candidate* ptcl,
81 double r_iso_min,
double r_iso_max,
double kt_scale,
82 double rho,
bool charged_only);
85 vCands getRA4IsoTracks(edm::Handle<pat::PackedCandidateCollection> pfcands,
double met,
double met_phi,
double rhoEventCentral,std::vector<float> &isos, std::vector<float> &relisos,
int primary_pdg);
87 bool outInOnly(
const reco::Muon &mu)
const;
88 bool preselection(
const reco::Muon &mu,
bool selectClones)
const;
89 bool tighterId(
const reco::Muon &mu)
const;
91 bool safeId(
const reco::Muon &mu)
const;
92 bool partnerId(
const reco::Muon &mu)
const;
94 edm::Handle<pat::MuonCollection> muons,
bool selectClones);
99 static std::pair<double, double>
getScaleFactor(
const reco::Muon &lep);
100 static std::pair<double, double>
getScaleFactor(
const pat::Electron &lep);
103 static std::pair<double, double>
getScaleFactorFs(
const pat::Electron &lep);
std::vector< const reco::Candidate * > vCands