EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
SubDivideCollection_factory.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
9
10namespace eicrecon {
11
12template <class T>
14 : public JOmniFactory<SubDivideCollection_factory<T>, SubDivideCollectionConfig<T>> {
15
16public:
19
20private:
21 std::unique_ptr<AlgoT> m_algo;
22
23 typename FactoryT::template PodioInput<T> m_input{this};
24 typename FactoryT::template VariadicPodioOutput<T> m_split_output{this};
25
26 typename FactoryT::template Service<AlgorithmsInit_service> m_algorithmsInit{this};
27
28public:
29 void Configure() {
30 m_algo = std::make_unique<AlgoT>(this->GetPrefix());
31 m_algo->level(static_cast<algorithms::LogLevel>(this->logger()->level()));
32 m_algo->applyConfig(this->config());
33 m_algo->init();
34 }
35
36 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
37
38 std::vector<gsl::not_null<typename T::collection_type*>> split_collections;
39 for (const auto& split : m_split_output()) {
40 split_collections.push_back(gsl::not_null<typename T::collection_type*>(split.get()));
41 }
42 m_algo->process(m_input(), split_collections);
43 };
44}; // SplitGeometry_factory
45} // namespace eicrecon
Definition JOmniFactory.h:30
SubDivideCollectionConfig< T > & config()
Retrieve reference to embedded config object.
Definition JOmniFactory.h:576
std::shared_ptr< spdlog::logger > & logger()
Retrieve reference to already-configured logger.
Definition JOmniFactory.h:573
Definition SubDivideCollection_factory.h:14
void Configure()
Definition SubDivideCollection_factory.h:29
void Process(int32_t, uint64_t)
Definition SubDivideCollection_factory.h:36
Definition SubDivideCollection.h:25
-client
Definition CalorimeterClusterRecoCoG.cc:37
Definition SubDivideCollectionConfig.h:8