6#include <spdlog/spdlog.h>
7#include <DD4hep/Detector.h>
8#include <algorithms/algorithm.h>
20 algorithms::Algorithm<typename algorithms::Input<const typename T::collection_type>,
21 typename algorithms::Output<std::vector<typename T::collection_type>>>;
30 name, {
"inputCollection"}, {
"outputCollection"},
"Sub-Divide collection"}
38 const auto [entries] = input;
39 auto [subdivided_entries] = output;
41 for (
auto out : subdivided_entries) {
42 out->setSubsetCollection();
45 for (
const auto& entry : *entries) {
47 auto div_indices = this->
m_cfg.function(entry);
49 for (
auto index : div_indices) {
50 subdivided_entries[index]->push_back(entry);
55 this->debug(
"Divided {} hits between {} collections", entries->size(),
56 subdivided_entries.size());
58 for (std::size_t i = 0; i < subdivided_entries.size(); i++) {
59 this->debug(
"Collection {} takes {} hits", i, subdivided_entries[i]->size());
Definition SubDivideCollection.h:25
void process(const typename SubDivideCollectionAlgorithm< T >::Input &input, const typename SubDivideCollectionAlgorithm< T >::Output &output) const final
Definition SubDivideCollection.h:35
void init() final
Definition SubDivideCollection.h:33
SubDivideCollection(std::string_view name)
Definition SubDivideCollection.h:28
Definition WithPodConfig.h:22
SubDivideCollectionConfig< T > m_cfg
Definition WithPodConfig.h:37
-client
Definition CalorimeterClusterRecoCoG.cc:37
algorithms::Algorithm< typename algorithms::Input< const typename T::collection_type >, typename algorithms::Output< std::vector< typename T::collection_type > > > SubDivideCollectionAlgorithm
Definition SubDivideCollection.h:21