15 :
public JOmniFactory<MPGDTrackerDigi_factory, MPGDTrackerDigiConfig> {
21 std::unique_ptr<AlgoT> m_algo;
23 PodioInput<edm4hep::EventHeader> m_event_headers_input{
this};
24 PodioInput<edm4hep::SimTrackerHit> m_sim_hits_input{
this};
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};
30 PodioOutput<edm4eic::MCRecoTrackerHitAssociation> m_assoc_output{
this};
32 Service<ACTSGeo_service> m_ACTSGeoSvc{
this};
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};
44 m_algo = std::make_unique<AlgoT>(
GetPrefix());
45 m_algo->level(
static_cast<algorithms::LogLevel
>(
logger()->level()));
46 m_algo->applyConfig(
config());
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(),
55 m_assoc_output().get()});