14 template<reco::PFBlockElement::Type T>
32 template<reco::PFBlockElement::Type T>
41 auto bclus = clusters->cbegin();
42 auto eclus = clusters->cend();
44 auto sc_end = std::partition(elems.begin(),elems.end(),
48 ecals.reserve(clusters->size());
49 for(
auto clus = bclus; clus != eclus; ++clus ) {
53 for(
auto scelem = elems.begin(); scelem != sc_end; ++scelem ) {
71 ecals.emplace_back(newelem);
73 elems.reserve(elems.size()+ecals.size());
74 for(
auto&
ecal : ecals ) {
75 elems.emplace_back(
ecal.release());
83 "ECALClusterImporter");
88 "HGCalClusterImporter");
const SuperClusterRef & superClusterRef() const
static bool overlap(const reco::CaloCluster &sc1, const reco::CaloCluster &sc, float minfrac=0.01, bool debug=false)
edm::EDGetTokenT< edm::ValueMap< reco::CaloClusterPtr > > _assoc
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::Ptr< CaloCluster > CaloClusterPtr
edm::EDGetTokenT< reco::PFClusterCollection > _src
SpecialClusterImporter< reco::PFBlockElement::HGCAL > HGCalClusterImporter
Container::value_type value_type
bool fromPFSuperCluster() const
SpecialClusterImporter< reco::PFBlockElement::ECAL > ECALClusterImporter
SpecialClusterImporter(const edm::ParameterSet &conf, edm::ConsumesCollector &sumes)
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
#define DEFINE_EDM_PLUGIN(factory, type, name)
std::vector< std::unique_ptr< reco::PFBlockElement > > ElementList
void importToBlock(const edm::Event &, ElementList &) const override
void setSuperClusterRef(const SuperClusterRef &ref)