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);