15 const auto v = position - origin;
19 #include <unordered_map> 47 _maxHoverE(conf.getParameter<double>(
"maximumHoverE")),
48 _pTbyPass(conf.getParameter<double>(
"minPTforBypass")),
49 _minSCPt(conf.getParameter<double>(
"minSuperClusterPt")),
62 elems.reserve(elems.size() + eb_scs->size() + ee_scs->size());
67 auto bsc = eb_scs->cbegin();
68 auto esc = eb_scs->cend();
71 for (
auto sc = bsc;
sc != esc; ++
sc) {
74 auto sc_elem = std::find_if(elems.begin(), SCs_end, myEqual);
77 const double HoverE = H_tower /
sc->
energy();
81 SCs_end = elems.emplace(SCs_end, scbe);
86 bsc = ee_scs->cbegin();
88 for (
auto sc = bsc;
sc != esc; ++
sc) {
91 auto sc_elem = std::find_if(elems.begin(), SCs_end, myEqual);
94 const double HoverE = H_tower /
sc->
energy();
98 SCs_end = elems.emplace(SCs_end, scbe);
102 elems.shrink_to_fit();
edm::EDGetTokenT< reco::SuperClusterCollection > _srcEE
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)
Handle< PROD > getHandle(EDGetTokenT< PROD > token) const
SuperClusterImporter(const edm::ParameterSet &, edm::ConsumesCollector &)
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
float energy() const
Energy. Note this is taken from the first SimTrack only.
std::unique_ptr< EgammaHadTower > _hadTower
edm::EDGetTokenT< CaloTowerCollection > _srcTowers
XYZPointD XYZPoint
point in space with cartesian internal representation
static int position[264][3]
void importToBlock(const edm::Event &, ElementList &) const override
#define DEFINE_EDM_PLUGIN(factory, type, name)
std::vector< std::unique_ptr< reco::PFBlockElement > > ElementList
static const math::XYZPoint _zero
void updateEventSetup(const edm::EventSetup &es) override
void setFromPFSuperCluster(bool val)