4 #include <unordered_set> 51 return std::hash<uint32_t>()(
id.rawId());
64 doPreshowerEcalHits_(!config.getParameter<
edm::InputTag>(
"preshowerEcalHits").
label().
empty()),
66 photonPfCandMapT_(consumes<
edm::ValueMap<
std::vector<
reco::
PFCandidateRef> > >(config.getParameter<
edm::InputTag>(
"photonsPFValMap"))),
67 gsfElectronPfCandMapT_(consumes<
edm::ValueMap<
std::vector<
reco::
PFCandidateRef> > >(config.getParameter<
edm::InputTag>(
"gsfElectronsPFValMap"))),
69 outPhotons_(
"reducedGedPhotons"),
70 outPhotonCores_(
"reducedGedPhotonCores"),
71 outOOTPhotons_(
"reducedOOTPhotons"),
72 outOOTPhotonCores_(
"reducedOOTPhotonCores"),
73 outGsfElectrons_(
"reducedGedGsfElectrons"),
74 outGsfElectronCores_(
"reducedGedGsfElectronCores"),
75 outConversions_(
"reducedConversions"),
76 outSingleConversions_(
"reducedSingleLegConversions"),
77 outSuperClusters_(
"reducedSuperClusters"),
78 outEBEEClusters_(
"reducedEBEEClusters"),
79 outESClusters_(
"reducedESClusters"),
80 outOOTSuperClusters_(
"reducedOOTSuperClusters"),
81 outOOTEBEEClusters_(
"reducedOOTEBEEClusters"),
82 outOOTESClusters_(
"reducedOOTESClusters"),
83 outEBRecHits_(
"reducedEBRecHits"),
84 outEERecHits_(
"reducedEERecHits"),
85 outESRecHits_(
"reducedESRecHits"),
86 outPhotonPfCandMap_(
"reducedPhotonPfCandMap"),
87 outGsfElectronPfCandMap_(
"reducedGsfElectronPfCandMap"),
88 outPhotonIds_(config.getParameter<
std::vector<
std::
string> >(
"photonIDOutput")),
89 outGsfElectronIds_(config.getParameter<
std::vector<
std::
string> >(
"gsfElectronIDOutput")),
90 outPhotonPFClusterIsos_(config.getParameter<
std::vector<
std::
string> >(
"photonPFClusterIsoOutput")),
91 outOOTPhotonPFClusterIsos_(config.getParameter<
std::vector<
std::
string> >(
"ootPhotonPFClusterIsoOutput")),
92 outGsfElectronPFClusterIsos_(config.getParameter<
std::vector<
std::
string> >(
"gsfElectronPFClusterIsoOutput")),
93 keepPhotonSel_(config.getParameter<
std::
string>(
"keepPhotons")),
94 slimRelinkPhotonSel_(config.getParameter<
std::
string>(
"slimRelinkPhotons")),
95 relinkPhotonSel_(config.getParameter<
std::
string>(
"relinkPhotons")),
96 keepOOTPhotonSel_(config.getParameter<
std::
string>(
"keepOOTPhotons")),
97 slimRelinkOOTPhotonSel_(config.getParameter<
std::
string>(
"slimRelinkOOTPhotons")),
98 relinkOOTPhotonSel_(config.getParameter<
std::
string>(
"relinkOOTPhotons")),
99 keepGsfElectronSel_(config.getParameter<
std::
string>(
"keepGsfElectrons")),
100 slimRelinkGsfElectronSel_(config.getParameter<
std::
string>(
"slimRelinkGsfElectrons")),
101 relinkGsfElectronSel_(config.getParameter<
std::
string>(
"relinkGsfElectrons"))
103 const std::vector<edm::InputTag>& photonidinputs =
104 config.
getParameter<std::vector<edm::InputTag> >(
"photonIDSources");
109 const std::vector<edm::InputTag>& gsfelectronidinputs =
110 config.
getParameter<std::vector<edm::InputTag> >(
"gsfElectronIDSources");
115 const std::vector<edm::InputTag>& photonpfclusterisoinputs =
116 config.
getParameter<std::vector<edm::InputTag> >(
"photonPFClusterIsoSources");
121 const std::vector<edm::InputTag>& ootphotonpfclusterisoinputs =
122 config.
getParameter<std::vector<edm::InputTag> >(
"ootPhotonPFClusterIsoSources");
127 const std::vector<edm::InputTag>& gsfelectronpfclusterisoinputs =
128 config.
getParameter<std::vector<edm::InputTag> >(
"gsfElectronPFClusterIsoSources");
153 produces< edm::ValueMap<bool> >(outid);
156 produces< edm::ValueMap<float> >(outid);
159 produces< edm::ValueMap<float> >(outid);
162 produces< edm::ValueMap<float> >(outid);
165 produces< edm::ValueMap<float> >(outid);
208 std::vector<edm::Handle<edm::ValueMap<bool> > > photonIdHandles(
photonIdTs_.size());
211 theEvent.
getByToken(photonIdT,photonIdHandles[index++]);
214 std::vector<edm::Handle<edm::ValueMap<float> > > gsfElectronIdHandles(
gsfElectronIdTs_.size());
217 theEvent.
getByToken(gsfElectronIdT,gsfElectronIdHandles[index++]);
220 std::vector<edm::Handle<edm::ValueMap<float> > > photonPFClusterIsoHandles(
photonPFClusterIsoTs_.size());
223 theEvent.
getByToken(photonPFClusterIsoT,photonPFClusterIsoHandles[index++]);
229 theEvent.
getByToken(ootPhotonPFClusterIsoT,ootPhotonPFClusterIsoHandles[index++]);
235 theEvent.
getByToken(gsfElectronPFClusterIsoT,gsfElectronPFClusterIsoHandles[index++]);
240 const CaloTopology *caloTopology = & (*theCaloTopology);
243 auto photons = std::make_unique<reco::PhotonCollection>();
244 auto photonCores = std::make_unique<reco::PhotonCoreCollection>();
245 auto ootPhotons = std::make_unique<reco::PhotonCollection>();
246 auto ootPhotonCores = std::make_unique<reco::PhotonCoreCollection>();
247 auto gsfElectrons = std::make_unique<reco::GsfElectronCollection>();
248 auto gsfElectronCores = std::make_unique<reco::GsfElectronCoreCollection>();
249 auto conversions = std::make_unique<reco::ConversionCollection>();
251 auto superClusters = std::make_unique<reco::SuperClusterCollection>();
252 auto ebeeClusters = std::make_unique<reco::CaloClusterCollection>();
253 auto esClusters = std::make_unique<reco::CaloClusterCollection>();
254 auto ootSuperClusters = std::make_unique<reco::SuperClusterCollection>();
255 auto ootEbeeClusters = std::make_unique<reco::CaloClusterCollection>();
256 auto ootEsClusters = std::make_unique<reco::CaloClusterCollection>();
257 auto ebRecHits = std::make_unique<EcalRecHitCollection>();
258 auto eeRecHits = std::make_unique<EcalRecHitCollection>();
259 auto esRecHits = std::make_unique<EcalRecHitCollection>();
260 auto photonPfCandMap = std::make_unique<edm::ValueMap<std::vector<reco::PFCandidateRef>>>();
261 auto gsfElectronPfCandMap = std::make_unique<edm::ValueMap<std::vector<reco::PFCandidateRef>>>();
264 std::map<reco::PhotonCoreRef, unsigned int> photonCoreMap;
265 std::map<reco::PhotonCoreRef, unsigned int> ootPhotonCoreMap;
266 std::map<reco::GsfElectronCoreRef, unsigned int> gsfElectronCoreMap;
267 std::map<reco::ConversionRef, unsigned int> conversionMap;
268 std::map<reco::ConversionRef, unsigned int> singleConversionMap;
269 std::map<reco::SuperClusterRef, unsigned int> superClusterMap;
270 std::map<reco::CaloClusterPtr, unsigned int> ebeeClusterMap;
271 std::map<reco::CaloClusterPtr, unsigned int> esClusterMap;
272 std::map<reco::SuperClusterRef, unsigned int> ootSuperClusterMap;
273 std::map<reco::CaloClusterPtr, unsigned int> ootEbeeClusterMap;
274 std::map<reco::CaloClusterPtr, unsigned int> ootEsClusterMap;
275 std::unordered_set<DetId> rechitMap;
277 std::unordered_set<unsigned int> superClusterFullRelinkMap;
278 std::unordered_set<unsigned int> ootSuperClusterFullRelinkMap;
281 std::vector<std::vector<reco::PFCandidateRef> > pfCandIsoPairVecPho;
282 std::vector<std::vector<reco::PFCandidateRef> > pfCandIsoPairVecEle;
285 std::vector<std::vector<bool> > photonIdVals(photonIdHandles.size());
286 std::vector<std::vector<float> > gsfElectronIdVals(gsfElectronIdHandles.size());
287 std::vector<std::vector<float> > photonPFClusterIsoVals(photonPFClusterIsoHandles.size());
288 std::vector<std::vector<float> > ootPhotonPFClusterIsoVals(ootPhotonPFClusterIsoHandles.size());
289 std::vector<std::vector<float> > gsfElectronPFClusterIsoVals(gsfElectronPFClusterIsoHandles.size());
293 for (
const auto&
photon : *photonHandle) {
304 pfCandIsoPairVecPho.push_back((*photonPfCandMapHandle)[photonref]);
308 for (
const auto& photonIdHandle : photonIdHandles) {
309 photonIdVals[subindex++].push_back((*photonIdHandle)[photonref]);
313 for (
const auto& photonPFClusterIsoHandle : photonPFClusterIsoHandles) {
314 photonPFClusterIsoVals[subindex++].push_back((*photonPFClusterIsoHandle)[photonref]);
319 linkCore(photonCore, *photonCores, photonCoreMap);
323 if (!slimRelink)
continue;
329 linkSuperCluster(superCluster, superClusterMap, *superClusters, relink, superClusterFullRelinkMap);
332 if (!relink)
continue;
339 linkConversions(singleconvrefs, *singleConversions, singleConversionMap);
347 for (
const auto& ootPhoton : *ootPhotonHandle) {
355 ootPhotons->push_back(ootPhoton);
359 for (
const auto& ootPhotonPFClusterIsoHandle : ootPhotonPFClusterIsoHandles) {
360 ootPhotonPFClusterIsoVals[subindex++].push_back((*ootPhotonPFClusterIsoHandle)[ootPhotonref]);
365 linkCore(ootPhotonCore, *ootPhotonCores, ootPhotonCoreMap);
369 if (!slimRelink)
continue;
374 linkSuperCluster(ootSuperCluster, ootSuperClusterMap, *ootSuperClusters, relink, ootSuperClusterFullRelinkMap);
379 for (
const auto& gsfElectron : *gsfElectronHandle) {
387 gsfElectrons->push_back(gsfElectron);
388 pfCandIsoPairVecEle.push_back((*gsfElectronPfCandMapHandle)[gsfElectronref]);
392 for (
const auto& gsfElectronIdHandle : gsfElectronIdHandles) {
393 gsfElectronIdVals[subindex++].push_back((*gsfElectronIdHandle)[gsfElectronref]);
397 for (
const auto& gsfElectronPFClusterIsoHandle : gsfElectronPFClusterIsoHandles) {
398 gsfElectronPFClusterIsoVals[subindex++].push_back((*gsfElectronPFClusterIsoHandle)[gsfElectronref]);
402 linkCore(gsfElectronCore, *gsfElectronCores, gsfElectronCoreMap);
406 if (!slimRelink)
continue;
411 linkSuperCluster(superCluster, superClusterMap, *superClusters, relink, superClusterFullRelinkMap);
414 if (!relink)
continue;
421 linkConversions(singleconvrefs, *singleConversions, singleConversionMap);
432 for (
auto& superCluster : *superClusters) {
439 bool fullrelink = superClusterFullRelinkMap.count(index++);
442 superCluster.clearHitsAndFractions();
447 linkCaloClusters(superCluster, *ebeeClusters, ebeeClusterMap, rechitMap, barrelHitHandle, endcapHitHandle, caloTopology, *esClusters, esClusterMap);
458 for (
auto& ootSuperCluster : *ootSuperClusters) {
465 bool fullrelink = ootSuperClusterFullRelinkMap.count(index++);
468 ootSuperCluster.clearHitsAndFractions();
473 linkCaloClusters(ootSuperCluster, *ootEbeeClusters, ootEbeeClusterMap, rechitMap, barrelHitHandle, endcapHitHandle, caloTopology, *ootEsClusters, ootEsClusterMap);
479 for (
const EcalRecHit &rechit : *barrelHitHandle) {
480 if (rechitMap.count(rechit.detid())) {
481 ebRecHits->push_back(rechit);
485 for (
const EcalRecHit &rechit : *endcapHitHandle) {
486 if (rechitMap.count(rechit.detid())) {
487 eeRecHits->push_back(rechit);
495 for (
const EcalRecHit &rechit : *preshowerHitHandle) {
496 if (rechitMap.count(rechit.detid())) {
497 esRecHits->push_back(rechit);
510 relinkCaloClusters(superCluster, ebeeClusterMap, esClusterMap, outEBEEClusterHandle, outESClusterHandle);
520 relinkCaloClusters(ootSuperCluster, ootEbeeClusterMap, ootEsClusterMap, outOOTEBEEClusterHandle, outOOTESClusterHandle);
582 fillerPhotons.insert(outPhotonHandle,pfCandIsoPairVecPho.begin(),pfCandIsoPairVecPho.end());
583 fillerPhotons.fill();
587 fillerGsfElectrons.insert(outGsfElectronHandle,pfCandIsoPairVecEle.begin(),pfCandIsoPairVecEle.end());
588 fillerGsfElectrons.fill();
595 auto oMap = std::make_unique<MapType>();
597 typename MapType::Filler
filler(*oMap);
598 filler.insert(refH, vec.begin(), vec.end());
606 for (
auto const&
vals : photonIdVals){
612 for (
auto const&
vals : gsfElectronIdVals){
618 for (
auto const&
vals : photonPFClusterIsoVals){
624 for (
auto const&
vals : ootPhotonPFClusterIsoVals){
630 for (
auto const&
vals : gsfElectronPFClusterIsoVals){
635 template <
typename T,
typename U>
638 if (!coreMap.count(core)) {
639 cores.push_back(*core);
640 coreMap[core] = cores.size() - 1;
645 std::map<reco::SuperClusterRef, unsigned int>& superClusterMap,
648 std::unordered_set<unsigned int>& superClusterFullRelinkMap)
650 const auto &mappedsc = superClusterMap.find(superCluster);
653 unsigned int mappedscidx = 0;
654 if (mappedsc==superClusterMap.end()) {
655 superClusters.push_back(*superCluster);
656 mappedscidx = superClusters.size() - 1;
657 superClusterMap[superCluster] = mappedscidx;
660 mappedscidx = mappedsc->second;
664 if (relink) superClusterFullRelinkMap.insert(mappedscidx);
669 std::map<reco::ConversionRef, unsigned int>& conversionMap)
671 for (
const auto& convref : convrefs) {
679 std::map<reco::ConversionRef, unsigned int>& conversionMap)
682 for (
const auto&
conversion : *conversionHandle) {
687 if (!matched)
continue;
696 std::map<reco::ConversionRef, unsigned int>& conversionMap)
699 for (
const auto&
conversion : *conversionHandle) {
704 if (!matched)
continue;
712 std::map<reco::ConversionRef, unsigned int>& conversionMap)
714 if (!conversionMap.count(convref)) {
715 conversions.push_back(*convref);
716 conversionMap[convref] = conversions.size() - 1;
722 std::map<reco::CaloClusterPtr, unsigned int>& caloClusterMap)
724 if (!caloClusterMap.count(caloCluster)) {
725 caloClusters.push_back(*caloCluster);
726 caloClusterMap[caloCluster] = caloClusters.size() - 1;
732 std::map<reco::CaloClusterPtr, unsigned int>& ebeeClusterMap,
733 std::unordered_set<DetId>& rechitMap,
738 std::map<reco::CaloClusterPtr, unsigned int>& esClusterMap)
740 for (
const auto& cluster : superCluster.
clusters()) {
743 for (
const auto& hitfrac : cluster->hitsAndFractions()) {
744 rechitMap.insert(hitfrac.first);
747 bool barrel = cluster->hitsAndFractions().front().first.subdetId()==
EcalBarrel;
749 DetId seed = EcalClusterTools::getMaximum(*cluster, rhcol).first;
752 for (
const auto& detid : dets5x5) {
753 rechitMap.insert(detid);
759 for (
const auto& hitfrac : cluster->hitsAndFractions()) {
760 rechitMap.insert(hitfrac.first);
767 const std::map<reco::CaloClusterPtr, unsigned int>& ebeeClusterMap,
768 const std::map<reco::CaloClusterPtr, unsigned int>& esClusterMap,
773 const auto &seedmapped = ebeeClusterMap.find(superCluster.
seed());
774 if (seedmapped != ebeeClusterMap.end()) {
782 for (
const auto &cluster : superCluster.
clusters()) {
783 const auto &clustermapped = ebeeClusterMap.find(cluster);
784 if (clustermapped != ebeeClusterMap.end()) {
795 if (clusters.
size()) {
802 const auto &clustermapped = esClusterMap.find(cluster);
803 if (clustermapped != esClusterMap.end()) {
814 if (esclusters.
size()) {
819 template <
typename T>
821 const std::map<reco::SuperClusterRef, unsigned int>& superClusterMap,
824 const auto &scmapped = superClusterMap.find(core.superCluster());
825 if (scmapped != superClusterMap.end()) {
828 core.setSuperCluster(scref);
834 const std::map<reco::ConversionRef, unsigned int>& conversionMap,
838 for (
const auto& convref : convrefs) {
839 const auto &convmapped = conversionMap.find(convref);
840 if (convmapped != conversionMap.end()) {
850 if (outconvrefs.
size()) {
856 const std::map<reco::PhotonCoreRef, unsigned int>& photonCoreMap,
859 const auto &coremapped = photonCoreMap.find(photon.
photonCore());
860 if (coremapped != photonCoreMap.end()) {
868 const std::map<reco::GsfElectronCoreRef, unsigned int>& gsfElectronCoreMap,
871 const auto &coremapped = gsfElectronCoreMap.find(gsfElectron.
core());
872 if (coremapped != gsfElectronCoreMap.end()) {
const bool doPreshowerEcalHits_
void setPreshowerClusters(const CaloClusterPtrVector &clusters)
void linkCaloClusters(const reco::SuperCluster &superCluster, reco::CaloClusterCollection &ebeeClusters, std::map< reco::CaloClusterPtr, unsigned int > &ebeeClusterMap, std::unordered_set< DetId > &rechitMap, const edm::Handle< EcalRecHitCollection > &barrelHitHandle, const edm::Handle< EcalRecHitCollection > &endcapHitHandle, const CaloTopology *caloTopology, reco::CaloClusterCollection &esClusters, std::map< reco::CaloClusterPtr, unsigned int > &esClusterMap)
T getParameter(std::string const &) const
const StringCutObjectSelector< reco::Photon > relinkOOTPhotonSel_
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
const edm::EDGetTokenT< reco::GsfElectronCollection > gsfElectronT_
size_type size() const
Size of the RefVector.
void setCore(const reco::GsfElectronCoreRef &core)
const StringCutObjectSelector< reco::Photon > slimRelinkPhotonSel_
const edm::EDGetTokenT< reco::ConversionCollection > singleConversionT_
const std::vector< std::string > outPhotonIds_
std::vector< edm::EDGetTokenT< edm::ValueMap< float > > > photonPFClusterIsoTs_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
void push_back(Ptr< T > const &iPtr)
std::vector< edm::EDGetTokenT< edm::ValueMap< float > > > gsfElectronPFClusterIsoTs_
const StringCutObjectSelector< reco::GsfElectron > keepGsfElectronSel_
const std::string outOOTPhotons_
const std::string outEBEEClusters_
void setSeed(const CaloClusterPtr &r)
list of used xtals by DetId // now inherited by CaloCluster
const StringCutObjectSelector< reco::Photon > keepPhotonSel_
const edm::EDGetTokenT< edm::ValueMap< std::vector< reco::PFCandidateRef > > > photonPfCandMapT_
const CaloClusterPtrVector & clusters() const
const access to the cluster list itself
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
const StringCutObjectSelector< reco::GsfElectron > relinkGsfElectronSel_
void setClusters(const CaloClusterPtrVector &clusters)
void linkConversion(const reco::ConversionRef &convref, reco::ConversionCollection &conversions, std::map< reco::ConversionRef, unsigned int > &conversionMap)
std::vector< Conversion > ConversionCollection
collectin of Conversion objects
const edm::EDGetTokenT< edm::ValueMap< std::vector< reco::PFCandidateRef > > > gsfElectronPfCandMapT_
const std::string outEBRecHits_
const std::string outESRecHits_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
void relinkConversions(reco::PhotonCore &photonCore, const reco::ConversionRefVector &convrefs, const std::map< reco::ConversionRef, unsigned int > &conversionMap, const edm::OrphanHandle< reco::ConversionCollection > &outConversionHandle)
const edm::EDGetTokenT< EcalRecHitCollection > preshowerEcalHits_
void linkConversions(const reco::ConversionRefVector &convrefs, reco::ConversionCollection &conversions, std::map< reco::ConversionRef, unsigned int > &conversionMap)
reco::PhotonCoreRef photonCore() const
returns a reference to the core photon object
const std::vector< std::string > outGsfElectronIds_
void setPhotonCore(const reco::PhotonCoreRef &photonCore)
const std::string outSingleConversions_
const std::string outESClusters_
const std::string outOOTSuperClusters_
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
const StringCutObjectSelector< reco::Photon > keepOOTPhotonSel_
const std::string outOOTESClusters_
void relinkGsfElectronCore(reco::GsfElectron &gsfElectron, const std::map< reco::GsfElectronCoreRef, unsigned int > &gsfElectronCoreMap, const edm::OrphanHandle< reco::GsfElectronCoreCollection > &outGsfElectronCoreHandle)
void linkConversionsByTrackRef(const edm::Handle< reco::ConversionCollection > &conversionHandle, const reco::GsfElectron &gsfElectron, reco::ConversionCollection &conversions, std::map< reco::ConversionRef, unsigned int > &conversionMap)
void setConversions(const reco::ConversionRefVector &conversions)
const std::string outOOTEBEEClusters_
std::vector< CaloCluster > CaloClusterCollection
collection of CaloCluster objects
const std::vector< std::string > outPhotonPFClusterIsos_
void linkSuperCluster(const reco::SuperClusterRef &superCluster, std::map< reco::SuperClusterRef, unsigned int > &superClusterMap, reco::SuperClusterCollection &superClusters, const bool relink, std::unordered_set< unsigned int > &superClusterFullRelinkMap)
void linkCore(const T &core, U &cores, std::map< T, unsigned int > &coreMap)
const StringCutObjectSelector< reco::Photon > relinkPhotonSel_
std::vector< edm::EDGetTokenT< edm::ValueMap< float > > > gsfElectronIdTs_
edm::Ref< PFCandidateCollection > PFCandidateRef
persistent reference to a PFCandidate
const CaloClusterPtrVector & preshowerClusters() const
const access to the preshower cluster list itself
void relinkCaloClusters(reco::SuperCluster &superCluster, const std::map< reco::CaloClusterPtr, unsigned int > &ebeeClusterMap, const std::map< reco::CaloClusterPtr, unsigned int > &esClusterMap, const edm::OrphanHandle< reco::CaloClusterCollection > &outEBEEClusterHandle, const edm::OrphanHandle< reco::CaloClusterCollection > &outESClusterHandle)
const std::string outPhotons_
const std::string outGsfElectronPfCandMap_
void relinkSuperCluster(T &core, const std::map< reco::SuperClusterRef, unsigned int > &superClusterMap, const edm::OrphanHandle< reco::SuperClusterCollection > &outSuperClusterHandle)
const std::string outGsfElectronCores_
const edm::EDGetTokenT< reco::PhotonCollection > photonT_
void relinkPhotonCore(reco::Photon &photon, const std::map< reco::PhotonCoreRef, unsigned int > &photonCoreMap, const edm::OrphanHandle< reco::PhotonCoreCollection > &outPhotonCoreHandle)
void conversion(EventAux const &from, EventAuxiliary &to)
const std::vector< std::string > outGsfElectronPFClusterIsos_
const std::string outSuperClusters_
virtual std::vector< DetId > getWindow(const DetId &id, const int &northSouthSize, const int &eastWestSize) const
const std::string outConversions_
T const * product() const
void clear()
Clear the vector.
std::vector< Photon > PhotonCollection
collectin of Photon objects
const std::string outGsfElectrons_
const CaloSubdetectorTopology * getSubdetectorTopology(const DetId &id) const
access the subdetector Topology for the given subdetector directly
const StringCutObjectSelector< reco::GsfElectron > slimRelinkGsfElectronSel_
virtual GsfElectronCoreRef core() const
const std::string outPhotonCores_
void clear()
Clear the PtrVector.
void linkCaloCluster(const reco::CaloClusterPtr &caloCluster, reco::CaloClusterCollection &caloClusters, std::map< reco::CaloClusterPtr, unsigned int > &caloClusterMap)
const std::string outEERecHits_
const StringCutObjectSelector< reco::Photon > slimRelinkOOTPhotonSel_
size_type size() const
Size of the RefVector.
const std::string outPhotonPfCandMap_
const std::vector< std::string > outOOTPhotonPFClusterIsos_
const edm::EDGetTokenT< EcalRecHitCollection > endcapEcalHits_
std::vector< edm::EDGetTokenT< edm::ValueMap< float > > > ootPhotonPFClusterIsoTs_
const CaloClusterPtr & seed() const
seed BasicCluster
size_t operator()(const DetId &id) const
std::vector< edm::EDGetTokenT< edm::ValueMap< bool > > > photonIdTs_
const std::string outOOTPhotonCores_
const edm::EDGetTokenT< reco::PhotonCollection > ootPhotonT_
const edm::EDGetTokenT< EcalRecHitCollection > barrelEcalHits_
ReducedEGProducer(const edm::ParameterSet &ps)
const edm::EDGetTokenT< reco::ConversionCollection > conversionT_
virtual void produce(edm::Event &evt, const edm::EventSetup &es) override final