|
ATLAS Offline Software
|
Go to the documentation of this file.
13 const std::string&
name, ISvcLocator* pSvcLocator)
30 ATH_MSG_ERROR(
"Use either track finder or track reader, not both.");
31 return StatusCode::FAILURE;
43 return StatusCode::SUCCESS;
50 ATH_CHECK(outputTracks.record(std::make_unique<TrackCollection>()));
56 std::vector<const Trk::SpacePoint*> spacePoints;
59 if (not containerKey.empty()){
63 if (container.isValid()){
65 auto spc = container->
begin();
66 auto spce = container->end();
67 for(; spc != spce; ++spc){
69 auto sp = spCollection->
begin();
70 auto spe = spCollection->
end();
71 for(; sp != spe; ++sp) {
73 spacePoints.push_back(spacePoint);
83 std::vector<std::vector<uint32_t> >
TT;
89 ATH_MSG_ERROR(
"Both GNNTrackFinder and GNNTrackReader are not set");
90 return StatusCode::FAILURE;
98 int trackCounter = -1;
99 for (
auto& trackIndices :
TT) {
101 std::vector<const Trk::PrepRawData*>
clusters;
102 std::vector<const Trk::SpacePoint*> trackCandiate;
103 trackCandiate.reserve(trackIndices.size());
106 ATH_MSG_DEBUG(
"Track " << trackCounter <<
" has " << trackIndices.size() <<
" spacepoints");
108 std::stringstream spCoordinates;
110 for (
auto&
id : trackIndices) {
112 if (
id > spacePoints.size()) {
113 ATH_MSG_WARNING(
"SpacePoint index "<<
id <<
" out of range: " << spacePoints.size());
119 trackCandiate.push_back(sp);
131 if (trkParameters ==
nullptr) {
139 if (
track !=
nullptr &&
track->perigeeParameters() !=
nullptr) {
142 if (
track !=
nullptr) {
145 if (
track !=
nullptr &&
track->trackSummary() !=
nullptr) {
146 outputTracks->push_back(
track.release());
153 return StatusCode::SUCCESS;
161 MsgStream& InDet::operator <<
171 std::ostream& InDet::operator <<
194 out<<
"| Location of output tracks | "
196 out<<
"|----------------------------------------------------------------"
197 <<
"----------------------------------------------------|"
const std::pair< const PrepRawData *, const PrepRawData * > & clusterList() const
return the pair of cluster pointers by reference
const InDetSimData * getData(const InDetSimDataCollection &coll, const Identifier &id)
ToolHandle< IGNNTrackFinder > m_gnnTrackFinder
GNN-based track finding tool that produces track candidates.
SG::ReadHandleKey< SpacePointContainer > m_SpacePointsPixelKey
virtual StatusCode initialize() override
bool msgLvl(const MSG::Level lvl) const
MsgStream & dump(MsgStream &out) const
virtual StatusCode execute(const EventContext &ctx) const override
SG::WriteHandleKey< TrackCollection > m_outputTracksKey
An algorithm that can be simultaneously executed in multiple threads.
MsgStream & dumpevent(MsgStream &out) const
::StatusCode StatusCode
StatusCode definition for legacy code.
ToolHandle< Trk::ITrackFitter > m_trackFitter
Track Fitter.
const_iterator begin() const
return const_iterator for first entry
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
ToolHandle< ISeedFitter > m_seedFitter
SiSPGNNTrackMaker(const std::string &name, ISvcLocator *pSvcLocator)
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
#define ATH_MSG_WARNING(x)
MsgStream & dumptools(MsgStream &out) const
InDet::SiSPGNNTrackMaker is an algorithm that uses the GNN-based track finding tool to reconstruct tr...
SG::ReadHandleKey< SpacePointContainer > m_SpacePointsSCTKey
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
ToolHandle< IGNNTrackReaderTool > m_gnnTrackReader