15 void setConsumes(edm::ConsumesCollector&) override final;
44 "GsfEleCalPFClusterIsoCut");
48 isoCutEBLowPt_(c.getParameter<double>(
"isoCutEBLowPt")),
49 isoCutEBHighPt_(c.getParameter<double>(
"isoCutEBHighPt")),
50 isoCutEELowPt_(c.getParameter<double>(
"isoCutEELowPt")),
51 isoCutEEHighPt_(c.getParameter<double>(
"isoCutEEHighPt")),
52 isoType_(c.getParameter<int>(
"isoType")),
53 ptCutOff_(c.getParameter<double>(
"ptCutOff")),
54 barrelCutOff_(c.getParameter<double>(
"barrelCutOff")),
55 isRelativeIso_(c.getParameter<bool>(
"isRelativeIso")),
75 CutApplicatorBase::result_type
80 double absEta =
std::abs(cand->superCluster()->eta());
84 throw cms::Exception(
"ERROR: this VID selection is meant to be run on miniAOD/PAT only")
85 << std::endl <<
"Change input format to PAT/miniAOD or contact Egamma experts"
86 << std::endl << std::endl;
98 float isoValue = -999;
100 isoValue = elPat->ecalPFClusterIso();
102 isoValue = elPat->hcalPFClusterIso();
104 throw cms::Exception(
"ERROR: unknown type requested for PF cluster isolation.")
105 << std::endl <<
"Check VID configuration." << std::endl;
107 float isoValueCorr =
std::max(0.0
f, isoValue - rho*eA);
118 double absEta =
std::abs(ele->superCluster()->eta());
122 throw cms::Exception(
"ERROR: this VID selection is meant to be run on miniAOD/PAT only")
123 << std::endl <<
"Change input format to PAT/miniAOD or contact Egamma experts"
124 << std::endl << std::endl;
130 float isoValue = -999;
132 isoValue = elPat->ecalPFClusterIso();
134 isoValue = elPat->hcalPFClusterIso();
136 throw cms::Exception(
"ERROR: unknown type requested for PF cluster isolation.")
137 << std::endl <<
"Check VID configuration." << std::endl;
139 float isoValueCorr =
std::max(0.0
f, isoValue - rho*eA);
143 isoValueCorr /= ele->pt();
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
result_type operator()(const reco::GsfElectronPtr &) const overridefinal
T const * get() const
Returns C++ pointer to the item.
std::unordered_map< std::string, edm::EDGetToken > contentTokens_
EffectiveAreas effectiveAreas_
const float getEffectiveArea(float eta) const
std::unordered_map< std::string, edm::InputTag > contentTags_
double value(const reco::CandidatePtr &cand) const overridefinal
void getEventContent(const edm::EventBase &) overridefinal
edm::Handle< double > rhoHandle_
CandidateType candidateType() const overridefinal
Abs< T >::type abs(const T &t)
const float isoCutEELowPt_
edm::Ptr< Candidate > CandidatePtr
persistent reference to an object in a collection of Candidate objects
const float isoCutEBLowPt_
GsfEleCalPFClusterIsoCut(const edm::ParameterSet &c)
const float isoCutEEHighPt_
Analysis-level electron class.
void setConsumes(edm::ConsumesCollector &) overridefinal
bool getByLabel(InputTag const &, Handle< T > &) const
const float isoCutEBHighPt_
#define DEFINE_EDM_PLUGIN(factory, type, name)
const float barrelCutOff_