EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
MergeCherenkovParticleID_factory.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// Copyright (C) 2023, Christopher Dilks
3
4// Merge CherenkovParticleID results from each radiator, for a given Cherenkov PID subsystem
5
6#pragma once
7
8#include <JANA/JEvent.h>
9#include <edm4eic/CherenkovParticleIDCollection.h>
10#include <memory>
11#include <string>
12#include <utility>
13#include <vector>
14
15// algorithms
19
20namespace eicrecon {
21
23 : public JOmniFactory<MergeCherenkovParticleID_factory, MergeParticleIDConfig> {
24
25private:
26 // Underlying algorithm
28 std::unique_ptr<AlgoT> m_algo;
29
30 // Declare inputs
31 VariadicPodioInput<edm4eic::CherenkovParticleID> m_particleID_input{this};
32
33 // Declare outputs
34 PodioOutput<edm4eic::CherenkovParticleID> m_particleID_output{this};
35
36 // Declare parameters
37 ParameterRef<int> m_mergeMode{this, "mergeMode", config().mergeMode};
38
39public:
40 void Configure() {
41 m_algo = std::make_unique<AlgoT>(GetPrefix());
42 m_algo->level(static_cast<algorithms::LogLevel>(logger()->level()));
43 m_algo->applyConfig(config());
44 m_algo->init();
45 }
46
47 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
48 auto in1 = m_particleID_input();
49 std::vector<gsl::not_null<const edm4eic::CherenkovParticleIDCollection*>> in2;
50 std::copy(in1.cbegin(), in1.cend(), std::back_inserter(in2));
51 m_algo->process({in2}, {m_particleID_output().get()});
52 }
53};
54} // namespace eicrecon
Definition JOmniFactory.h:30
MergeParticleIDConfig & 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 MergeCherenkovParticleID_factory.h:23
void Process(int32_t, uint64_t)
Definition MergeCherenkovParticleID_factory.h:47
void Configure()
Definition MergeCherenkovParticleID_factory.h:40
Definition MergeParticleID.h:26
-client
Definition CalorimeterClusterRecoCoG.cc:37