17 #include <unordered_map>
45 _maxHoverE(conf.getParameter<double>(
"maximumHoverE")),
46 _pTbyPass(conf.getParameter<double>(
"minPTforBypass")),
47 _minSCPt(conf.getParameter<double>(
"minSuperClusterPt")),
49 _superClustersArePF(conf.getParameter<
bool>(
"superClustersArePF")) {}
56 auto eb_scs =
e.getHandle(
_srcEB);
57 auto ee_scs =
e.getHandle(
_srcEE);
59 elems.reserve(elems.size() + eb_scs->size() + ee_scs->size());
64 auto bsc = eb_scs->cbegin();
65 auto esc = eb_scs->cend();
68 for (
auto sc =
bsc; sc != esc; ++sc) {
71 auto sc_elem = std::find_if(elems.begin(), SCs_end, myEqual);
72 const double scpT =
ptFast(sc->energy(), sc->position(),
_zero);
73 const auto towersBehindCluster =
_hadTower->towersOf(*sc);
74 const double H_tower = (
_hadTower->getDepth1HcalESum(towersBehindCluster,
towers) +
76 const double HoverE = H_tower / sc->energy();
80 SCs_end = elems.emplace(SCs_end, scbe);
85 bsc = ee_scs->cbegin();
87 for (
auto sc =
bsc; sc != esc; ++sc) {
90 auto sc_elem = std::find_if(elems.begin(), SCs_end, myEqual);
91 const double scpT =
ptFast(sc->energy(), sc->position(),
_zero);
92 const auto towersBehindCluster =
_hadTower->towersOf(*sc);
93 const double H_tower = (
_hadTower->getDepth1HcalESum(towersBehindCluster,
towers) +
95 const double HoverE = H_tower / sc->energy();
99 SCs_end = elems.emplace(SCs_end, scbe);
103 elems.shrink_to_fit();