23 :
public JOmniFactory<PolynomialMatrixReconstruction_factory,
24 PolynomialMatrixReconstructionConfig> {
30 std::unique_ptr<AlgoT> m_algo;
32 PodioInput<edm4hep::MCParticle> m_mcparts_input{
this};
33 PodioInput<edm4eic::TrackerHit> m_hits_input{
this};
34 PodioOutput<edm4eic::ReconstructedParticle> m_tracks_output{
this};
36 Service<DD4hep_service> m_geoSvc{
this};
38 ParameterRef<float> partMass{
this,
"partMass",
config().partMass};
39 ParameterRef<float> partCharge{
this,
"partCharge",
config().partCharge};
40 ParameterRef<long long> partPDG{
this,
"partPDG",
config().partPDG};
42 ParameterRef<double> crossingAngle{
this,
"crossingAngle",
config().crossingAngle};
44 ParameterRef<double> hit1minZ{
this,
"hit1minZ",
config().hit1minZ};
45 ParameterRef<double> hit1maxZ{
this,
"hit1maxZ",
config().hit1maxZ};
46 ParameterRef<double> hit2minZ{
this,
"hit2minZ",
config().hit2minZ};
47 ParameterRef<double> hit2maxZ{
this,
"hit2maxZ",
config().hit2maxZ};
49 ParameterRef<std::string> readout{
this,
"readout",
config().readout};
51 ParameterRef<bool> requireBeamProton{
this,
"requireBeamProton",
config().requireBeamProton};
53 Service<AlgorithmsInit_service> m_algorithmsInit{
this};
57 m_algo = std::make_unique<AlgoT>(
GetPrefix());
58 m_algo->level(
static_cast<algorithms::LogLevel
>(
logger()->level()));
59 m_algo->applyConfig(
config());
64 m_algo->process({m_mcparts_input(), m_hits_input()}, {m_tracks_output().get()});