50 CHECK(h_outputJets.
record(std::make_unique<xAOD::JetContainer>(),
51 std::make_unique<xAOD::JetAuxContainer>()));
55 CHECK(h_caloClusters.isValid());
56 ATH_MSG_DEBUG(
"Read in " << h_caloClusters->size() <<
" clusters");
58 const auto& clusters = *h_caloClusters;
62 std::vector<Gep::Cluster> gepClusters;
63 std::transform(clusters.cbegin(),
65 std::back_inserter(gepClusters),
66 [](
const auto& cluster){
67 return Gep::Cluster(cluster->p4());});
72 std::unique_ptr<Gep::IJetMaker> jetMaker{};
83 CHECK(h_seeds.isValid());
89 auto WTAConeJetMaker = std::make_unique<Gep::WTAConeJetMaker>();
91 #ifdef FLOATING_POINT_SIMULATION
92 WTAConeJetMaker->m_GEPWTAParameters.SetConstEtCut(
m_WTAConstEtCut * Athena::Units::GeV);
93 WTAConeJetMaker->m_GEPWTAParameters.SetSeedEtCut(
m_WTASeedEtCut * Athena::Units::GeV);
94 WTAConeJetMaker->m_GEPWTAParameters.SetJet_dR(
m_WTAJet_dR);
95 WTAConeJetMaker->m_GEPWTAParameters.SetIso_dR(
m_WTAJet_dR);
98 WTAConeJetMaker->m_GEPWTAParameters.SetConstEtCut(
static_cast<unsigned int>(
m_WTAConstEtCut * Athena::Units::GeV / LSB));
99 WTAConeJetMaker->m_GEPWTAParameters.SetSeedEtCut(
static_cast<unsigned int>(
m_WTASeedEtCut * Athena::Units::GeV / LSB));
100 WTAConeJetMaker->m_GEPWTAParameters.SetJet_dR(
static_cast<unsigned int>(
m_WTAJet_dR * 10));
101 WTAConeJetMaker->m_GEPWTAParameters.SetIso_dR(
static_cast<unsigned int>(
m_WTAJet_dR * 10));
108 WTAConeJetMaker->SetSeedCleaningAlgo(0);
111 jetMaker = std::move(WTAConeJetMaker);
115 return StatusCode::FAILURE;
120 std::vector<Gep::Jet> gepJets = jetMaker->makeJets( gepClusters );
126 if( gepJets.empty() ){
127 return StatusCode::SUCCESS;
131 for(
const auto& gjet: gepJets){
133 std::unique_ptr<xAOD::Jet> xAODJet{
new xAOD::Jet()};
139 h_outputJets->push_back(std::move(xAODJet));
142 p4.SetPt(gjet.vec.Pt());
143 p4.SetEta(gjet.vec.Eta());
144 p4.SetPhi(gjet.vec.Phi());
145 p4.SetM(gjet.vec.M());
165 for (
const auto& i: gjet.constituentsIndices) {
171 return StatusCode::SUCCESS;