From d4fd021749d8686757443f24b901134693fb502a Mon Sep 17 00:00:00 2001
From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
Date: Sun, 30 Jun 2024 20:04:52 -0400
Subject: [PATCH 1/2] treewide: add missing AlgorithmsInit_service for
 particleSvc

---
 src/factories/reco/HadronicFinalState_factory.h               | 3 +++
 src/factories/reco/InclusiveKinematicsReconstructed_factory.h | 3 +++
 src/factories/reco/TransformBreitFrame_factory.h              | 3 +++
 src/global/tracking/TrackParamTruthInit_factory.h             | 2 ++
 4 files changed, 11 insertions(+)

diff --git a/src/factories/reco/HadronicFinalState_factory.h b/src/factories/reco/HadronicFinalState_factory.h
index 00d03523e3..322e26e987 100644
--- a/src/factories/reco/HadronicFinalState_factory.h
+++ b/src/factories/reco/HadronicFinalState_factory.h
@@ -11,6 +11,7 @@
 #include <vector>
 
 #include "extensions/jana/JOmniFactory.h"
+#include "services/algorithms_init/AlgorithmsInit_service.h"
 
 namespace eicrecon {
 
@@ -29,6 +30,8 @@ class HadronicFinalState_factory :
     typename FactoryT::template PodioInput<edm4eic::MCRecoParticleAssociation> m_rc_particles_assoc_input {this};
     typename FactoryT::template PodioOutput<edm4eic::HadronicFinalState> m_hadronic_final_state_output {this};
 
+    typename FactoryT::Service<AlgorithmsInit_service> m_algorithmsInit {this};
+
 public:
     void Configure() {
         m_algo = std::make_unique<AlgoT>(this->GetPrefix());
diff --git a/src/factories/reco/InclusiveKinematicsReconstructed_factory.h b/src/factories/reco/InclusiveKinematicsReconstructed_factory.h
index 7c395f39dc..de066b6905 100644
--- a/src/factories/reco/InclusiveKinematicsReconstructed_factory.h
+++ b/src/factories/reco/InclusiveKinematicsReconstructed_factory.h
@@ -11,6 +11,7 @@
 #include <vector>
 
 #include "extensions/jana/JOmniFactory.h"
+#include "services/algorithms_init/AlgorithmsInit_service.h"
 
 namespace eicrecon {
 
@@ -29,6 +30,8 @@ class InclusiveKinematicsReconstructed_factory :
     typename FactoryT::template PodioInput<edm4eic::HadronicFinalState> m_hadronic_final_state_input {this};
     typename FactoryT::template PodioOutput<edm4eic::InclusiveKinematics> m_inclusive_kinematics_output {this};
 
+    typename FactoryT::Service<AlgorithmsInit_service> m_algorithmsInit {this};
+
 public:
     void Configure() {
         m_algo = std::make_unique<AlgoT>(this->GetPrefix());
diff --git a/src/factories/reco/TransformBreitFrame_factory.h b/src/factories/reco/TransformBreitFrame_factory.h
index 3a9852818b..ce1ee17d5d 100644
--- a/src/factories/reco/TransformBreitFrame_factory.h
+++ b/src/factories/reco/TransformBreitFrame_factory.h
@@ -14,6 +14,7 @@
 
 #include "algorithms/reco/TransformBreitFrame.h"
 #include "extensions/jana/JOmniFactory.h"
+#include "services/algorithms_init/AlgorithmsInit_service.h"
 
 namespace eicrecon {
 
@@ -33,6 +34,8 @@ namespace eicrecon {
       // output collection
       PodioOutput<edm4eic::ReconstructedParticle> m_out_part {this};
 
+      Service<AlgorithmsInit_service> m_algorithmsInit {this};
+
     public:
 
       void Configure() {
diff --git a/src/global/tracking/TrackParamTruthInit_factory.h b/src/global/tracking/TrackParamTruthInit_factory.h
index 4196b66c8b..09bd09dda3 100644
--- a/src/global/tracking/TrackParamTruthInit_factory.h
+++ b/src/global/tracking/TrackParamTruthInit_factory.h
@@ -15,6 +15,7 @@
 #include "algorithms/tracking/TrackParamTruthInit.h"
 #include "algorithms/tracking/TrackParamTruthInitConfig.h"
 #include "extensions/jana/JOmniFactory.h"
+#include "services/algorithms_init/AlgorithmsInit_service.h"
 
 namespace eicrecon {
 
@@ -37,6 +38,7 @@ class TrackParamTruthInit_factory :
     ParameterRef<double> m_momentumSmear {this, "MomentumSmear", config().momentumSmear, "Momentum magnitude fraction to use as width of gaussian smearing"};
 
     Service<ACTSGeo_service> m_ACTSGeoSvc {this};
+    Service<AlgorithmsInit_service> m_algorithmsInit {this};
 
 public:
     void Configure() {

From 45b6d0506e2944b5c804d2401618b5d4dc12ca11 Mon Sep 17 00:00:00 2001
From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
Date: Mon, 1 Jul 2024 06:30:24 -0400
Subject: [PATCH 2/2] fix for clang

---
 src/factories/reco/HadronicFinalState_factory.h               | 2 +-
 src/factories/reco/InclusiveKinematicsReconstructed_factory.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/factories/reco/HadronicFinalState_factory.h b/src/factories/reco/HadronicFinalState_factory.h
index 322e26e987..10f7bf6905 100644
--- a/src/factories/reco/HadronicFinalState_factory.h
+++ b/src/factories/reco/HadronicFinalState_factory.h
@@ -30,7 +30,7 @@ class HadronicFinalState_factory :
     typename FactoryT::template PodioInput<edm4eic::MCRecoParticleAssociation> m_rc_particles_assoc_input {this};
     typename FactoryT::template PodioOutput<edm4eic::HadronicFinalState> m_hadronic_final_state_output {this};
 
-    typename FactoryT::Service<AlgorithmsInit_service> m_algorithmsInit {this};
+    typename FactoryT::template Service<AlgorithmsInit_service> m_algorithmsInit {this};
 
 public:
     void Configure() {
diff --git a/src/factories/reco/InclusiveKinematicsReconstructed_factory.h b/src/factories/reco/InclusiveKinematicsReconstructed_factory.h
index de066b6905..dbc7e922e4 100644
--- a/src/factories/reco/InclusiveKinematicsReconstructed_factory.h
+++ b/src/factories/reco/InclusiveKinematicsReconstructed_factory.h
@@ -30,7 +30,7 @@ class InclusiveKinematicsReconstructed_factory :
     typename FactoryT::template PodioInput<edm4eic::HadronicFinalState> m_hadronic_final_state_input {this};
     typename FactoryT::template PodioOutput<edm4eic::InclusiveKinematics> m_inclusive_kinematics_output {this};
 
-    typename FactoryT::Service<AlgorithmsInit_service> m_algorithmsInit {this};
+    typename FactoryT::template Service<AlgorithmsInit_service> m_algorithmsInit {this};
 
 public:
     void Configure() {