EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
CollectionCollector.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// Copyright (C) 2024 Simon Gardner
3
4#pragma once
5
6#include <spdlog/spdlog.h>
7#include <algorithms/algorithm.h>
8#include <string>
9#include <string_view>
10
13
14namespace eicrecon {
15
16template <class T>
18 algorithms::Algorithm<typename algorithms::Input<std::vector<const T>>,
19 typename algorithms::Output<T>>;
20
21template <class T>
23
24public:
25 CollectionCollector(std::string_view name)
27 {"inputCollections"},
28 {"outputCollection"},
29 "Merge content of collections into one subset collection"} {
30 }
31
32 void init() final {};
33
34 void process(const typename CollectionCollector::Input& input,
35 const typename CollectionCollector::Output& output) const final {
36
37 const auto [in_collections] = input;
38 auto [out_collection] = output;
39
40 out_collection->setSubsetCollection();
41
42 for (const auto& collection : in_collections) {
43 for (const auto& hit : *collection) {
44 out_collection->push_back(hit);
45 }
46 }
47 //Log how many hits were collected from N input collections
48 this->debug("Collected {} hits from {} input collections", out_collection->size(),
49 in_collections.size());
50 }
51};
52} // namespace eicrecon
Definition CollectionCollector.h:22
CollectionCollector(std::string_view name)
Definition CollectionCollector.h:25
void init() final
Definition CollectionCollector.h:32
void process(const typename CollectionCollector::Input &input, const typename CollectionCollector::Output &output) const final
Definition CollectionCollector.h:34
Definition WithPodConfig.h:22
-client
Definition CalorimeterClusterRecoCoG.cc:37
algorithms::Algorithm< typename algorithms::Input< std::vector< const T > >, typename algorithms::Output< T > > CollectionCollectorAlgorithm
Definition CollectionCollector.h:19