ATLAS Offline Software
WTAConeJetMaker.cxx
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3  */
4 #include "WTAConeJetMaker.h"
6 
7 
8  std::vector<Gep::Jet> Gep::WTAConeJetMaker::makeJets(const std::vector<Gep::Cluster>& inTopoTowers) const
9  { // Makesure the WTA parameters are set before calling makeJets()
10 
11  std::vector<WTATrigObj> input_towers;
12  for(const auto &TopoTower: inTopoTowers)
13  {
14  WTATrigObj this_tower(TopoTower.vec.Pt(), TopoTower.vec.Eta(), TopoTower.vec.Phi(), TopoTower.vec.M());
15  input_towers.push_back(this_tower);
16  }
17 
18  std::unique_ptr<WTAConeMaker> MyWTAConeMaker = CreateWTAConeMaker(static_cast<WTAConeMakerEnum>(m_SeedCleaningAlgo));
19  if(auto* MyWTACone2PassMaker = dynamic_cast<WTACone2PassMaker*>(MyWTAConeMaker.get()))MyWTACone2PassMaker->SetRollOffBufferSize(m_RollOffBufferSize); // Only for two-pass algorithm
20  std::vector<WTAJet> WTAJetList;
21  MyWTAConeMaker->m_WTAConeMakerParameter = m_GEPWTAParameters; // Pass the WTAConeParameters
22  if(m_BlockN != 1)
23  { // Run parallel WTAConeJets
24  WTAConeParallelHelper wta_parallel_helper;
25  wta_parallel_helper.SetBlockN(m_BlockN);
26  wta_parallel_helper.CreateBlocks(input_towers);
27  wta_parallel_helper.RunParallelWTA(MyWTAConeMaker);
28  wta_parallel_helper.CheckJetInCore();
29  WTAJetList = wta_parallel_helper.GetAllJets();
30  }
31  else
32  { // Run over whole calorimeter
33  MyWTAConeMaker->InitiateInputs(input_towers);
34  MyWTAConeMaker->SeedCleaning();
35  MyWTAConeMaker->MergeConstsToSeeds();
36  WTAJetList = MyWTAConeMaker->GetSeedList();
37  }
38 
39  std::vector<Gep::Jet> GepJetList;
40  for(const auto& WTAJet: WTAJetList)
41  {
42  Gep::Jet thisjet;
43  thisjet.vec.SetPtEtaPhiM(WTAJet.pt(), WTAJet.eta(), WTAJet.phi(), WTAJet.m());
45  GepJetList.push_back(thisjet);
46  }
47 
48  return GepJetList;
49  }
50 
WTAConeMaker::MergeConstsToSeeds
virtual void MergeConstsToSeeds()
Definition: WTAConeMaker.h:282
WTAConeParallelHelper::GetAllJets
std::vector< WTAJet > GetAllJets()
Definition: WTAConeParallelHelper.h:172
Gep::WTAConeJetMaker::m_BlockN
unsigned int m_BlockN
Definition: WTAConeJetMaker.h:64
WTAConeJetMaker.h
WTAConeParallelHelper
Definition: WTAConeParallelHelper.h:32
WTATrigObj::phi
IntOrFloat phi() const
Definition: WTAObject.h:42
Gep::Jet::nConstituents
int nConstituents
Definition: Trigger/TrigT1/TrigGepPerf/src/Jet.h:16
WTAConeParallelHelper.h
WTACone2PassMaker
Definition: WTACone2PassMaker.h:9
Gep::Jet::vec
TLorentzVector vec
Definition: Trigger/TrigT1/TrigGepPerf/src/Jet.h:14
WTAJet::GetConstituentCount
unsigned int GetConstituentCount() const
Definition: WTAObject.h:115
WTAConeMaker::m_WTAConeMakerParameter
WTAParameters m_WTAConeMakerParameter
Definition: WTAConeMaker.h:87
WTATrigObj::pt
IntOrFloat pt() const
Definition: WTAObject.h:38
WTATrigObj::m
IntOrFloat m() const
Definition: WTAObject.h:44
WTAConeMaker::GetSeedList
const std::vector< WTAJet > & GetSeedList() const
Definition: WTAConeMaker.h:72
WTAConeMaker::SeedCleaning
virtual void SeedCleaning()
Definition: WTAConeMaker.h:231
Gep::WTAConeJetMaker::m_SeedCleaningAlgo
unsigned int m_SeedCleaningAlgo
Definition: WTAConeJetMaker.h:65
WTAConeMakerEnum
WTAConeMakerEnum
Definition: WTAConeJetMaker.h:20
Gep::Jet
Definition: Trigger/TrigT1/TrigGepPerf/src/Jet.h:12
WTATrigObj
Definition: WTAObject.h:33
WTAJet
Definition: WTAObject.h:104
WTAConeParallelHelper::CheckJetInCore
void CheckJetInCore()
Definition: WTAConeParallelHelper.h:143
Gep::WTAConeJetMaker::m_GEPWTAParameters
WTAParameters m_GEPWTAParameters
Definition: WTAConeJetMaker.h:60
Gep::WTAConeJetMaker::m_RollOffBufferSize
unsigned int m_RollOffBufferSize
Definition: WTAConeJetMaker.h:66
WTAConeParallelHelper::CreateBlocks
void CreateBlocks(const std::vector< WTATrigObj > &all_towers)
Definition: WTAConeParallelHelper.h:102
WTATrigObj::eta
IntOrFloat eta() const
Definition: WTAObject.h:40
WTAConeParallelHelper::RunParallelWTA
void RunParallelWTA(std::unique_ptr< WTAClassType > &AnyWTAClass)
Definition: WTAConeParallelHelper.h:132
WTAConeParallelHelper::SetBlockN
void SetBlockN(unsigned int block_n)
Definition: WTAConeParallelHelper.h:58
xAOD::JetInput::TopoTower
@ TopoTower
Definition: JetContainerInfo.h:57
Gep::WTAConeJetMaker::makeJets
virtual std::vector< Gep::Jet > makeJets(const std::vector< Gep::Cluster > &TopoTowers) const override
Definition: WTAConeJetMaker.cxx:8
Gep::WTAConeJetMaker::CreateWTAConeMaker
std::unique_ptr< WTAConeMaker > CreateWTAConeMaker(enum WTAConeMakerEnum seed_cleaning_algo) const
Definition: WTAConeJetMaker.h:42
WTAConeMaker::InitiateInputs
void InitiateInputs(const std::vector< IntOrFloat > &ptVec, const std::vector< IntOrFloat > &etaVec, const std::vector< IntOrFloat > &phiVec, const std::vector< IntOrFloat > &mVec)
Definition: WTAConeMaker.h:136