47 _C1_EB(
c.getParameter<double>(
"C1_EB")),
48 _C2_EB(
c.getParameter<double>(
"C2_EB")),
49 _C3_EB(
c.getParameter<double>(
"C3_EB")),
50 _C1_EE(
c.getParameter<double>(
"C1_EE")),
51 _C2_EE(
c.getParameter<double>(
"C2_EE")),
52 _C3_EE(
c.getParameter<double>(
"C3_EE")),
53 _barrelCutOff(
c.getParameter<double>(
"barrelCutOff")),
54 _useRelativeIso(
c.getParameter<
bool>(
"useRelativeIso")),
55 _effectiveAreas((
c.getParameter<
edm::FileInPath>(
"effAreasConfigFile")).
fullPath()) {
80 float anyisoval = -1.0;
82 anyisoval = (*_anyPFIsoMap)[
cand];
88 anyisoval = (*_anyPFIsoMap)[
cand];
93 const float pt =
cand->pt();
99 const float isolationCutValue =
108 float anyPFIsoWithEA =
std::max(0.0, anyPFIso -
rho * eA);
112 anyPFIsoWithEA /=
pt;
115 return anyPFIsoWithEA < isolationCutValue;
124 float anyisoval = -1.0;
126 anyisoval = (*_anyPFIsoMap)[
cand];
132 anyisoval = (*_anyPFIsoMap)[
cand];
137 const float pt = pho->pt();
142 double absEta =
std::abs(pho->superCluster()->eta());
150 float anyPFIsoWithEA =
std::max(0.0, anyPFIso -
rho * eA);
154 anyPFIsoWithEA /=
pt;
157 return anyPFIsoWithEA;
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::unordered_map< std::string, edm::InputTag > contentTags_
PhoAnyPFIsoWithEAAndQuadScalingCut(const edm::ParameterSet &c)
EffectiveAreas _effectiveAreas
static constexpr char anyPFIsoWithEA_[]
CandidateType candidateType() const final
void setConsumes(edm::ConsumesCollector &) final
Abs< T >::type abs(const T &t)
double value(const reco::CandidatePtr &cand) const final
const float getEffectiveArea(float eta) const
static constexpr char rhoString_[]
const_iterator begin() const
void getEventContent(const edm::EventBase &) final
std::unordered_map< std::string, edm::EDGetToken > contentTokens_
result_type operator()(const reco::PhotonPtr &) const final
edm::Handle< double > _rhoHandle
#define DEFINE_EDM_PLUGIN(factory, type, name)
bool contains(ProductID id) const
edm::Handle< edm::ValueMap< float > > _anyPFIsoMap