ATLAS Offline Software
FPGATrackSimRoadUnionTool.cxx
Go to the documentation of this file.
1 // Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
12 
13 
14 FPGATrackSimRoadUnionTool::FPGATrackSimRoadUnionTool(const std::string& algname, const std::string &name, const IInterface *ifc) :
15  base_class(algname, name, ifc),
16  m_tools(this)
17 {
18  declareInterface<IFPGATrackSimRoadFinderTool>(this);
19  declareProperty("tools", m_tools, "Array of FPGATrackSimRoadFinderTools");
20 }
21 
22 
24 {
25  // Retrieve
26  ATH_MSG_INFO("Using " << m_tools.size() << " tools");
27  ATH_CHECK(m_tools.retrieve());
28 
29  if (m_tools.empty()) {
30  ATH_MSG_FATAL("initialize() Tool list empty");
31  return StatusCode::FAILURE;
32  }
33  return StatusCode::SUCCESS;
34 }
35 
36 
37 StatusCode FPGATrackSimRoadUnionTool::getRoads(const std::vector<std::shared_ptr<const FPGATrackSimHit>> & hits, std::vector<std::shared_ptr<const FPGATrackSimRoad>> & roads)
38 {
39  roads.clear();
40  for (auto & tool : m_tools)
41  {
42  std::vector<std::shared_ptr<const FPGATrackSimRoad>> r;
43  ATH_CHECK(tool->getRoads(hits, r));
44  roads.insert(roads.end(), std::make_move_iterator(r.begin()), std::make_move_iterator(r.end()));
45  }
46 
47  return StatusCode::SUCCESS;
48 }
beamspotman.r
def r
Definition: beamspotman.py:676
getMenu.algname
algname
Definition: getMenu.py:54
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
FPGATrackSimRoadUnionTool::FPGATrackSimRoadUnionTool
FPGATrackSimRoadUnionTool(const std::string &, const std::string &, const IInterface *)
Definition: FPGATrackSimRoadUnionTool.cxx:14
FPGATrackSimRoadUnionTool::initialize
virtual StatusCode initialize() override
Definition: FPGATrackSimRoadUnionTool.cxx:23
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
FPGATrackSimRoadUnionTool.h
Wrapper class to combine multiple road-finding tools.
FPGATrackSimRoadUnionTool::getRoads
virtual StatusCode getRoads(const std::vector< std::shared_ptr< const FPGATrackSimHit >> &hits, std::vector< std::shared_ptr< const FPGATrackSimRoad >> &roads) override
Definition: FPGATrackSimRoadUnionTool.cxx:37
FPGATrackSimRoadUnionTool::m_tools
ToolHandleArray< IFPGATrackSimRoadFinderTool > m_tools
Definition: FPGATrackSimRoadUnionTool.h:49