EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
MPGDTrackerDigi_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, Yann Bedfer
3
4#pragma once
5
6#include <edm4eic/EDM4eicVersion.h>
11
12namespace eicrecon {
13
15 : public JOmniFactory<MPGDTrackerDigi_factory, MPGDTrackerDigiConfig> {
16
17public:
19
20private:
21 std::unique_ptr<AlgoT> m_algo;
22
23 PodioInput<edm4hep::EventHeader> m_event_headers_input{this};
24 PodioInput<edm4hep::SimTrackerHit> m_sim_hits_input{this};
25
26 PodioOutput<edm4eic::RawTrackerHit> m_raw_hits_output{this};
27#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
28 PodioOutput<edm4eic::MCRecoTrackerHitLink> m_links_output{this};
29#endif
30 PodioOutput<edm4eic::MCRecoTrackerHitAssociation> m_assoc_output{this};
31
32 Service<ACTSGeo_service> m_ACTSGeoSvc{this};
33
34 ParameterRef<double> m_threshold{this, "threshold", config().threshold};
35 ParameterRef<double> m_timeResolution{this, "timeResolution", config().timeResolution};
36 ParameterRef<std::array<double, 2>> m_stripResolutions{
37 this, "stripResolutions", config().stripResolutions, "Space resolutions for p/n strips"};
38 ParameterRef<std::array<int, 2>> m_stripNumbers{this, "stripNumbers", config().stripNumbers,
39 "Number of p/n strips per module"};
40 ParameterRef<std::string> m_readout{this, "readoutClass", config().readout};
41
42public:
43 void Configure() {
44 m_algo = std::make_unique<AlgoT>(GetPrefix());
45 m_algo->level(static_cast<algorithms::LogLevel>(logger()->level()));
46 m_algo->applyConfig(config());
47 m_algo->init();
48 }
49
50 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
51 m_algo->process({m_event_headers_input(), m_sim_hits_input()}, {m_raw_hits_output().get(),
52#if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
53 m_links_output().get(),
54#endif
55 m_assoc_output().get()});
56 }
57};
58
59} // namespace eicrecon
Definition JOmniFactory.h:30
MPGDTrackerDigiConfig & 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 MPGDTrackerDigi_factory.h:15
void Configure()
Definition MPGDTrackerDigi_factory.h:43
void Process(int32_t, uint64_t)
Definition MPGDTrackerDigi_factory.h:50
Definition MPGDTrackerDigi.h:46
-client
Definition CalorimeterClusterRecoCoG.cc:37