23 :
public JOmniFactory<MatrixTransferStatic_factory, MatrixTransferStaticConfig> {
29 std::unique_ptr<AlgoT> m_algo;
31 PodioInput<edm4hep::MCParticle> m_mcparts_input{
this};
32 PodioInput<edm4eic::TrackerHit> m_hits_input{
this};
33 PodioOutput<edm4eic::ReconstructedParticle> m_tracks_output{
this};
35 Service<DD4hep_service> m_geoSvc{
this};
37 ParameterRef<float> partMass{
this,
"partMass",
config().partMass};
38 ParameterRef<float> partCharge{
this,
"partCharge",
config().partCharge};
39 ParameterRef<long long> partPDG{
this,
"partPDG",
config().partPDG};
41 ParameterRef<double> crossingAngle{
this,
"crossingAngle",
config().crossingAngle};
47 ParameterRef<double> hit1minZ{
this,
"hit1minZ",
config().hit1minZ};
48 ParameterRef<double> hit1maxZ{
this,
"hit1maxZ",
config().hit1maxZ};
49 ParameterRef<double> hit2minZ{
this,
"hit2minZ",
config().hit2minZ};
50 ParameterRef<double> hit2maxZ{
this,
"hit2maxZ",
config().hit2maxZ};
52 ParameterRef<std::string> readout{
this,
"readout",
config().readout};
54 ParameterRef<bool> requireBeamProton{
this,
"requireBeamProton",
config().requireBeamProton};
55 ParameterRef<bool> requireMatchingMatrix{
this,
"requireMatchingMatrix",
56 config().requireMatchingMatrix};
58 Service<AlgorithmsInit_service> m_algorithmsInit{
this};
62 m_algo = std::make_unique<AlgoT>(
GetPrefix());
63 m_algo->level(
static_cast<algorithms::LogLevel
>(
logger()->level()));
64 m_algo->applyConfig(
config());
69 m_algo->process({m_mcparts_input(), m_hits_input()}, {m_tracks_output().get()});