51 produces < reco::RecoEcalCandidateIsolationMap >();
54 produces < reco::ElectronIsolationMap >();
65 desc.
add<
bool>(
"doRhoCorrection",
false);
66 desc.
add<
double>(
"rhoMax", 9.9999999E7);
67 desc.
add<
double>(
"rhoScale", 1.0);
68 desc.
add<
double>(
"effectiveAreaBarrel", 0.101);
69 desc.
add<
double>(
"effectiveAreaEndcap", 0.046);
70 desc.
add<
bool>(
"useSCRefs",
false);
71 desc.
add<
double>(
"drMax", 0.3);
72 desc.
add<
double>(
"drVetoBarrel", 0.0);
73 desc.
add<
double>(
"drVetoEndcap", 0.0);
74 desc.
add<
double>(
"etaStripBarrel", 0.0);
75 desc.
add<
double>(
"etaStripEndcap", 0.0);
76 desc.
add<
double>(
"energyBarrel", 0.0);
77 desc.
add<
double>(
"energyEndcap", 0.0);
78 desc.
add<
int>(
"pfCandidateType", 5);
79 descriptions.
add((
"hltEgammaHLTPFNeutralIsolationProducer"), desc);
111 for (
unsigned int iReco = 0; iReco < recoecalcandHandle->size(); iReco++) {
114 if (fabs(candRef->eta()) < 1.479) {
125 for(
unsigned i=0;
i<forIsolation->size();
i++) {
131 if (fabs(candRef->eta()) < 1.479) {
141 math::XYZVector candDirectionWrtVtx(candRef->superCluster()->x() - pfvtx.x(),
142 candRef->superCluster()->y() - pfvtx.y(),
143 candRef->superCluster()->z() - pfvtx.z());
145 float dEta = fabs(candDirectionWrtVtx.Eta() - pfc.
momentum().Eta());
146 if(dEta < etaStrip)
continue;
148 float dR =
deltaR(candDirectionWrtVtx.Eta(), candDirectionWrtVtx.Phi(), pfc.
momentum().Eta(), pfc.
momentum().Phi());
149 if(dR >
drMax_ || dR < dRVeto)
continue;
156 if (fabs(candRef->eta()) < 1.479)
162 recoEcalCandMap.
insert(candRef, sum);
164 iEvent.
put(std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandMap));
174 for(
unsigned int iEl=0; iEl<electronHandle->size(); iEl++) {
177 if (fabs(eleRef->eta()) < 1.479) {
188 for(
unsigned i=0;
i<forIsolation->size();
i++) {
194 if (fabs(eleRef->eta()) < 1.479) {
202 float dEta = fabs(eleRef->eta() - pfc.
momentum().Eta());
203 if(dEta < etaStrip)
continue;
206 if(dR >
drMax_ || dR < dRVeto)
continue;
213 if (fabs(eleRef->superCluster()->eta()) < 1.479)
219 eleMap.
insert(eleRef, sum);
221 iEvent.
put(std::make_unique<reco::ElectronIsolationMap>(eleMap));
T getParameter(std::string const &) const
EgammaHLTPFNeutralIsolationProducer(const edm::ParameterSet &)
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
edm::EDGetTokenT< double > rhoProducer_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
double pt() const final
transverse momentum
edm::EDGetTokenT< reco::RecoEcalCandidateCollection > recoEcalCandidateProducer_
const Point & vertex() const override
vertex position (overwritten by PF...)
Vector momentum() const final
spatial momentum vector
float effectiveAreaEndcap_
edm::EDGetTokenT< reco::PFCandidateCollection > pfCandidateProducer_
edm::EDGetTokenT< reco::ElectronCollection > electronProducer_
double energy() const final
energy
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
T const * product() const
void insert(const key_type &k, const data_type &v)
insert an association
XYZVectorD XYZVector
spatial vector with cartesian internal representation
XYZPointD XYZPoint
point in space with cartesian internal representation
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Particle reconstructed by the particle flow algorithm.
void produce(edm::StreamID sid, edm::Event &, const edm::EventSetup &) const override
virtual ParticleType particleId() const
float effectiveAreaBarrel_