EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
FilterMatching_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
8
9namespace eicrecon {
10
11template <typename ToFilterObjectT, auto ToFilterMemberFunctionPtr, typename FilterByObjectT,
12 auto FilterByMemberFunctionPtr>
14 : public JOmniFactory<FilterMatching_factory<ToFilterObjectT, ToFilterMemberFunctionPtr,
15 FilterByObjectT, FilterByMemberFunctionPtr>,
16 NoConfig> {
17
18public:
19 using AlgoT = eicrecon::FilterMatching<ToFilterObjectT, ToFilterMemberFunctionPtr,
20 FilterByObjectT, FilterByMemberFunctionPtr>;
21 using FactoryT = JOmniFactory<FilterMatching_factory<ToFilterObjectT, ToFilterMemberFunctionPtr,
22 FilterByObjectT, FilterByMemberFunctionPtr>,
23 NoConfig>;
24
25private:
26 std::unique_ptr<AlgoT> m_algo;
27
28 typename FactoryT::template PodioInput<ToFilterObjectT> m_collection_input{this};
29 typename FactoryT::template PodioInput<FilterByObjectT> m_matched_input{this};
30 typename FactoryT::template PodioOutput<ToFilterObjectT> m_is_matched_output{this};
31 typename FactoryT::template PodioOutput<ToFilterObjectT> m_is_not_matched_output{this};
32
33public:
34 void Configure() {
35 m_algo = std::make_unique<AlgoT>(this->GetPrefix());
36 m_algo->level(static_cast<algorithms::LogLevel>(this->logger()->level()));
37 m_algo->applyConfig(FactoryT::config());
38 m_algo->init();
39 }
40
41 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
42 m_algo->process({m_collection_input(), m_matched_input()},
43 {m_is_matched_output().get(), m_is_not_matched_output().get()});
44 };
45}; // FilterByAssociations_factory
46} // namespace eicrecon
Definition JOmniFactory.h:30
std::shared_ptr< spdlog::logger > & logger()
Retrieve reference to already-configured logger.
Definition JOmniFactory.h:573
Definition FilterMatching_factory.h:16
void Process(int32_t, uint64_t)
Definition FilterMatching_factory.h:41
void Configure()
Definition FilterMatching_factory.h:34
Definition FilterMatching.h:31
-client
Definition CalorimeterClusterRecoCoG.cc:37
Definition WithPodConfig.h:13