diff --git a/Trigger/TrigAlgorithms/TrigHLTJetRec/TrigHLTJetRec/PseudoJetCreatorFunctions.h b/Trigger/TrigAlgorithms/TrigHLTJetRec/TrigHLTJetRec/PseudoJetCreatorFunctions.h
index 92ee70328d1f0edec375643a670da5f19cc1a282..3904258e39f66f48017e5156a9a4a3f4c71d7653 100644
--- a/Trigger/TrigAlgorithms/TrigHLTJetRec/TrigHLTJetRec/PseudoJetCreatorFunctions.h
+++ b/Trigger/TrigAlgorithms/TrigHLTJetRec/TrigHLTJetRec/PseudoJetCreatorFunctions.h
@@ -34,7 +34,7 @@ namespace PseudoJetCreatorFunctions{
   std::vector<PseudoJet> 
   createPseudoJets(const xAOD::IParticleContainer*, 
                    xAOD::JetInput::Type,
-                   const ToolHandle<IIParticleRejectionTool>&);
+                   ToolHandle<IIParticleRejectionTool>&);
 }
 
 
diff --git a/Trigger/TrigAlgorithms/TrigHLTJetRec/src/PseudoJetCreatorFunctions.cxx b/Trigger/TrigAlgorithms/TrigHLTJetRec/src/PseudoJetCreatorFunctions.cxx
index 10993690048a7ad048a86be0454684f2b42e89e1..90b576c07e43f4be40544a1584d4452148ddf44a 100644
--- a/Trigger/TrigAlgorithms/TrigHLTJetRec/src/PseudoJetCreatorFunctions.cxx
+++ b/Trigger/TrigAlgorithms/TrigHLTJetRec/src/PseudoJetCreatorFunctions.cxx
@@ -164,6 +164,33 @@ namespace PseudoJetCreatorFunctions{
   ////////////////////////////////
   // IParticle to PseudoJet converter
 
+  template<typename Rejecter>
+  std::vector<PseudoJet> 
+  IParticlesToPseudoJets(const xAOD::IParticleContainer* ips,
+                         // std::unique_ptr<IRejecter> rejecter,
+                         Rejecter&& rejecter,
+                         std::unique_ptr<IMomentumGetter> momentumGetter
+                         ){ 
+    std::vector<PseudoJet> vpj;
+    int index = -1;
+
+      
+    // loop over the input iparticles, select and  convert to pseudojets
+    for(const xAOD::IParticle* ip: *ips) {
+      if((*rejecter)(ip)){continue;}
+      
+      // Create a Pseudojet with the momentum of the selected IParticles.
+      fastjet::PseudoJet psj((*momentumGetter)(ip));
+
+      // user index is used to identify the xAOD object used for the PseudoJet
+      psj.set_user_index(++index); 
+      vpj.push_back(psj);
+      
+    }
+    return vpj;
+  }
+
+#if 0
   template<typename Rejecter>
   std::vector<PseudoJet> 
   IParticlesToPseudoJets(const xAOD::IParticleContainer* ips,
@@ -189,6 +216,7 @@ namespace PseudoJetCreatorFunctions{
     }
     return vpj;
   }
+#endif
   
   ////////////////////////////////////////////
 
@@ -211,7 +239,7 @@ namespace PseudoJetCreatorFunctions{
   std::vector<PseudoJet> 
   createPseudoJets(const xAOD::IParticleContainer* ips,
                    xAOD::JetInput::Type iptype,
-                   const ToolHandle<IIParticleRejectionTool>& rejecter){
+                   ToolHandle<IIParticleRejectionTool>& rejecter){
 
     
     auto momentumGetter = make_momentumGetter(iptype);