EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
MergeTrack_factory.h
Go to the documentation of this file.
1// Copyright (C) 2022 - 2024 Christopher Dilks, Wouter Deconinck
2// Subject to the terms in the LICENSE file found in the top-level directory.
3
4#pragma once
5
6#include <JANA/JEvent.h>
7#include <edm4eic/TrackSegmentCollection.h>
8#include <memory>
9#include <string>
10#include <utility>
11#include <vector>
12
13// algorithms
17
18namespace eicrecon {
19
20class MergeTrack_factory : public JOmniFactory<MergeTrack_factory, NoConfig> {
21private:
22 // Underlying algorithm
23 std::unique_ptr<eicrecon::MergeTracks> m_algo;
24
25 // Declare inputs
26 VariadicPodioInput<edm4eic::TrackSegment> m_track_segments_input{this};
27
28 // Declare outputs
29 PodioOutput<edm4eic::TrackSegment> m_track_segments_output{this};
30
31public:
32 void Configure() {
33 m_algo = std::make_unique<MergeTracks>(GetPrefix());
34 m_algo->level(static_cast<algorithms::LogLevel>(logger()->level()));
35 m_algo->applyConfig(config());
36 m_algo->init();
37 }
38
39 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
40 auto in1 = m_track_segments_input();
41 std::vector<gsl::not_null<const edm4eic::TrackSegmentCollection*>> in2;
42 std::copy(in1.cbegin(), in1.cend(), std::back_inserter(in2));
43
44 m_algo->process({in2}, {m_track_segments_output().get()});
45 }
46};
47} // namespace eicrecon
Definition JOmniFactory.h:30
NoConfig & 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 MergeTrack_factory.h:20
void Process(int32_t, uint64_t)
Definition MergeTrack_factory.h:39
void Configure()
Definition MergeTrack_factory.h:32
-client
Definition CalorimeterClusterRecoCoG.cc:37