204 if (!recoEcalCandHandle.isValid())
206 else if (!pixelSeedsHandle.isValid()) {
207 auto s2Map = std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandHandle);
208 for (
unsigned int candNr = 0; candNr < recoEcalCandHandle->size(); candNr++) {
210 s2Map->insert(candRef, 0);
216 auto dPhi1BestS2Map = std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandHandle);
217 auto dPhi2BestS2Map = std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandHandle);
218 auto dzBestS2Map = std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandHandle);
219 auto s2Map = std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandHandle);
221 auto nrClusMap = std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandHandle);
222 auto seedClusEFracMap = std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandHandle);
223 auto phiWidthMap = std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandHandle);
224 auto etaWidthMap = std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandHandle);
226 std::vector<PixelData> pixelData;
227 for (
size_t hitNr = 0; hitNr <
nrHits_; hitNr++) {
232 for (
unsigned int candNr = 0; candNr < recoEcalCandHandle->size(); candNr++) {
240 for (
auto&
seed : *pixelSeedsHandle) {
243 if (&(*candSCRef) == &(*pixelSCRef)) {
244 std::array<float, 4> s2Data =
calS2(
seed, -1);
245 std::array<float, 4> s2DataPos =
calS2(
seed, +1);
246 if (s2Data[0] < bestS2[0])
248 if (s2DataPos[0] < bestS2[0])
252 for (
auto& pixelDatum : pixelData) {
253 pixelDatum.fill(
seed);
259 s2Map->insert(candRef, bestS2[0]);
261 dPhi1BestS2Map->insert(candRef, bestS2[1]);
262 dPhi2BestS2Map->insert(candRef, bestS2[2]);
263 dzBestS2Map->insert(candRef, bestS2[3]);
266 nrClusMap->insert(candRef, candSCRef->clustersSize());
267 float seedClusEFrac = candSCRef->rawEnergy() > 0 ? candSCRef->seed()->energy() / candSCRef->rawEnergy() : 0.;
270 seedClusEFracMap->insert(candRef, seedClusEFrac);
271 float phiWidth = candSCRef->phiWidth();
272 float etaWidth = candSCRef->etaWidth();
273 phiWidthMap->insert(candRef,
phiWidth);
274 etaWidthMap->insert(candRef,
etaWidth);
276 for (
auto& pixelDatum : pixelData) {
277 pixelDatum.fill(candRef);
289 for (
auto& pixelDatum : pixelData) {
290 pixelDatum.putInto(
iEvent);
std::array< float, 4 > calS2(const reco::ElectronSeed &seed, int charge) const
const edm::EDGetTokenT< reco::RecoEcalCandidateCollection > recoEcalCandidateToken_
float dPhiBest(size_t hitNr) const
const edm::EDGetTokenT< reco::ElectronSeedCollection > pixelSeedsToken_
float dRZBest(size_t hitNr) const