EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
ONNXInference_factory.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// Copyright (C) 2023 - 2024, Wouter Deconinck, Simon Gardener, Dmitry Kalinkin
3
4#pragma once
5
9
10namespace eicrecon {
11
12class ONNXInference_factory : public JOmniFactory<ONNXInference_factory, ONNXInferenceConfig> {
13
14public:
16
17private:
18 std::unique_ptr<AlgoT> m_algo;
19
20 VariadicPodioInput<edm4eic::Tensor> m_input_tensors{this};
21
22 VariadicPodioOutput<edm4eic::Tensor> m_output_tensors{this};
23
24 ParameterRef<std::string> m_modelPath{this, "modelPath", config().modelPath};
25
26 Service<AlgorithmsInit_service> m_algorithmsInit{this};
27
28public:
29 void Configure() {
30 m_algo = std::make_unique<AlgoT>(GetPrefix());
31 m_algo->level(static_cast<algorithms::LogLevel>(logger()->level()));
32 m_algo->applyConfig(config());
33 m_algo->init();
34 }
35
36 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
37 std::vector<gsl::not_null<const edm4eic::TensorCollection*>> in_collections;
38 for (const auto& in_collection : m_input_tensors()) {
39 in_collections.push_back(gsl::not_null<const edm4eic::TensorCollection*>{in_collection});
40 }
41
42 std::vector<gsl::not_null<edm4eic::TensorCollection*>> out_collections;
43 for (const auto& out_collection : m_output_tensors()) {
44 out_collections.push_back(gsl::not_null<edm4eic::TensorCollection*>{out_collection.get()});
45 }
46
47 m_algo->process(in_collections, out_collections);
48 }
49};
50
51} // namespace eicrecon
Definition JOmniFactory.h:30
ONNXInferenceConfig & 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
std::string GetPrefix()
Definition JOmniFactory.h:570
Definition ONNXInference_factory.h:12
void Process(int32_t, uint64_t)
Definition ONNXInference_factory.h:36
void Configure()
Definition ONNXInference_factory.h:29
Definition ONNXInference.h:23
-client
Definition CalorimeterClusterRecoCoG.cc:37