25 #include <unordered_map>
48 while (decimal != std::string::npos) {
79 bool isEB = (seed->seed().subdetId() ==
EcalBarrel);
84 if (aspacked->charge() != 0) {
85 bool is_vertex_allowed =
false;
88 is_vertex_allowed =
true;
92 result &= (is_vertex_allowed);
94 result &= deltar2 > vetoConeSize2 && deltar2 <
_coneSize2;
96 result &= deltar2 > vetoConeSize2 && deltar2 <
_coneSize2;
98 throw cms::Exception(
"InvalidIsolationInput") <<
"The supplied candidate to be used as isolation "
99 <<
"was neither a reco::PFCandidate nor a pat::PackedCandidate!";
IsolationConeDefinitionBase(const edm::ParameterSet &c)
const edm::EventSetup & c
const unsigned _vertexIndex
T const * get() const
Returns C++ pointer to the item.
const std::vector< unsigned > _miniAODVertexCodes
edm::Ptr< pat::PackedCandidate > PackedCandidatePtr
void setConsumes(edm::ConsumesCollector) override
const std::string _isolateAgainst
const float _vetoConeSize2EB
PhotonPFIsolationWithConeVeto & operator=(const PhotonPFIsolationWithConeVeto &)=delete
const float _vetoConeSize2EE
edm::EDGetTokenT< reco::VertexCollection > _vtxToken
bool isNonnull() const
Checks for non-null.
edm::Ptr< reco::Photon > recoPhotonPtr
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
~PhotonPFIsolationWithConeVeto() override
Destructor.
bool isInIsolationCone(const reco::CandidatePtr &photon, const reco::CandidatePtr &pfCandidate) const final
std::string _additionalCode
#define DEFINE_EDM_PLUGIN(factory, type, name)
PhotonPFIsolationWithConeVeto(const edm::ParameterSet &c)
Power< A, B >::type pow(const A &a, const B &b)