27 #include <unordered_map> 69 _maxHoverE(conf.getParameter<double>(
"maximumHoverE")),
70 _pTbyPass(conf.getParameter<double>(
"minPTforBypass")),
71 _minSCPt(conf.getParameter<double>(
"minSuperClusterPt")),
72 hbheRecHitsTag_(
cc.consumes(conf.getParameter<
edm::
InputTag>(
"hbheRecHitsTag"))),
73 maxSeverityHB_(conf.getParameter<
int>(
"maxSeverityHB")),
74 maxSeverityHE_(conf.getParameter<
int>(
"maxSeverityHE")),
75 cutsFromDB(conf.getParameter<
bool>(
"usePFThresholdsFromDB")),
76 _superClustersArePF(conf.getParameter<
bool>(
"superClustersArePF")),
100 auto eb_scs =
e.getHandle(
_srcEB);
101 auto ee_scs =
e.getHandle(
_srcEE);
102 elems.reserve(elems.size() + eb_scs->size() + ee_scs->size());
107 auto bsc = eb_scs->cbegin();
108 auto esc = eb_scs->cend();
119 {{0, 0, 0, 0, 0, 0, 0}},
120 {{0, 0, 0, 0, 0, 0, 0}},
129 for (
auto sc =
bsc; sc != esc; ++sc) {
132 auto sc_elem = std::find_if(elems.begin(), SCs_end, myEqual);
133 const double scpT =
ptFast(sc->energy(), sc->position(),
_zero);
135 const double HoverE = H_tower / sc->energy();
139 SCs_end = elems.emplace(SCs_end, scbe);
144 bsc = ee_scs->cbegin();
145 esc = ee_scs->cend();
146 for (
auto sc =
bsc; sc != esc; ++sc) {
149 auto sc_elem = std::find_if(elems.begin(), SCs_end, myEqual);
150 const double scpT =
ptFast(sc->energy(), sc->position(),
_zero);
152 const double HoverE = H_tower / sc->energy();
156 SCs_end = elems.emplace(SCs_end, scbe);
160 elems.shrink_to_fit();
CaloGeometry const * caloGeom_
CaloTowerConstituentsMap const * towerMap_
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
const edm::ESGetToken< CaloTowerConstituentsMap, CaloGeometryRecord > _ctmapToken
uint32_t cc[maxCellsPerHit]
HcalTopology const * hcalTopo_
edm::EDGetTokenT< reco::SuperClusterCollection > _srcEE
double getHcalESumBc(const reco::Candidate *c, int depth, const HcalPFCuts *hcalCuts) const
void importToBlock(const edm::Event &, ElementList &) const override
edm::Ref< SuperClusterCollection > SuperClusterRef
reference to an object in a collection of SuperCluster objects
edm::EDGetTokenT< reco::SuperClusterCollection > _srcEB
double ptFast(const double energy, const math::XYZPoint &position, const math::XYZPoint &origin)
HcalPFCuts const * hcalCuts
HcalSeverityLevelComputer const * hcalSev_
SuperClusterImporter(const edm::ParameterSet &, edm::ConsumesCollector &)
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeometryToken_
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > hcalTopologyToken_
const edm::ESGetToken< HcalSeverityLevelComputer, HcalSeverityLevelComputerRcd > hcalSevLvlComputerToken_
XYZPointD XYZPoint
point in space with cartesian internal representation
edm::ESGetToken< HcalPFCuts, HcalPFCutsRcd > hcalCutsToken_
static int position[264][3]
const edm::EDGetTokenT< HBHERecHitCollection > hbheRecHitsTag_
T const * get() const
Returns C++ pointer to the item.
#define DEFINE_EDM_PLUGIN(factory, type, name)
std::vector< std::unique_ptr< reco::PFBlockElement > > ElementList
static const math::XYZPoint _zero
const edm::ESGetToken< HcalChannelQuality, HcalChannelQualityRcd > hcalChannelQualityToken_
HcalChannelQuality const * hcalChannelQual_
void updateEventSetup(const edm::EventSetup &es) override
void setFromPFSuperCluster(bool val)