5#ifndef SiSPGNNTrackMaker_H
6#define SiSPGNNTrackMaker_H
47 virtual StatusCode
execute(
const EventContext& ctx)
const override;
50 virtual bool isClonable()
const override {
return true; };
53 MsgStream&
dump (MsgStream& out)
const;
54 std::ostream&
dump (std::ostream& out)
const;
63 this,
"SpacePointsPixelName",
"ITkPixelSpacePoints"};
65 this,
"SpacePointsSCTName",
"ITkStripSpacePoints"};
69 this,
"PixelClusterContainer",
"ITkPixelClusters"};
71 this,
"StripClusterContainer",
"ITkStripClusters"};
75 this,
"TracksLocation",
"SiSPGNNTracks"};
83 this,
"GNNTrackFinderTool",
84 "InDet::SiGNNTrackFinderTool",
"Track Finder"
87 this,
"SeedFitterTool",
88 "InDet::SiSeedFitterTool",
"Seed Fitter"
93 "Trk::GlobalChi2Fitter/InDetTrackFitter",
"Track Fitter"
96 this,
"TrackSummaryTool",
"InDetTrackSummaryTool"};
98 this,
"GNNTrackReaderTool",
99 "InDet::GNNTrackReaderTool",
"Track Reader"
103 MsgStream&
dumptools(MsgStream& out)
const;
104 MsgStream&
dumpevent(MsgStream& out)
const;
106 this,
"areInputClusters",
false,
107 "Read track candidates as list of clusters"};
109 "Apply Loose track cuts"};
112 this,
"InDetEtaDependentCutsSvc",
"InDetEtaDependentCutsSvc"};
114 UnsignedIntegerProperty
m_minClusters{
this,
"minClusters", 6,
"Min number clusters"};
116 UnsignedIntegerProperty
m_minStripClusters{
this,
"minStripClusters", 0,
"Minimum number of strip clusters"};
117 DoubleProperty
m_pTmin{
this,
"pTmin", 400.,
"min pT"};
118 DoubleProperty
m_etamax{
this,
"etamax", 4.,
"max reco eta"};
123 "Try to recover failed track fits by removing hits, at the end of the track"};
126 std::tuple<bool, int, std::unique_ptr<Trk::Track>>
doFitAndCut(
127 const EventContext& ctx,
128 std::vector<const Trk::SpacePoint*>& spacePoints,
129 std::vector<const Trk::PrepRawData*>& clusters,
133 bool prefitCheck(
unsigned int nPix,
unsigned int nStrip,
unsigned int nClusters,
unsigned int nSpacePoints)
const;
135 std::unique_ptr<Trk::Track>
fitTrack(
136 const EventContext& ctx,
137 std::vector<const Trk::PrepRawData*> clusters,
143 const std::vector<uint32_t>& trackIndices,
144 const std::vector<const Trk::SpacePoint*>& allSpacePoints
148 const std::vector<const Trk::SpacePoint*>& spacePoints
152 const std::vector<std::vector<uint32_t>>& clusterTracks,
153 const std::vector<const Trk::PrepRawData*>& allClusters,
158 const EventContext& ctx,
163 const EventContext& ctx,
168 const EventContext& ctx,
173 const EventContext& ctx,
defines an "iterator" over instances of a given type in StoreGateSvc
An algorithm that can be simultaneously executed in multiple threads.
InDet::SiSPGNNTrackMaker is an algorithm that uses the GNN-based track finding tool to reconstruct tr...
ToolHandle< ISeedFitter > m_seedFitter
std::unique_ptr< Trk::Track > fitTrack(const EventContext &ctx, std::vector< const Trk::PrepRawData * > clusters, const Trk::TrackParameters &initial_params, int trackCounter) const
UnsignedIntegerProperty m_minStripClusters
ToolHandle< IGNNTrackReaderTool > m_gnnTrackReader
SG::ReadHandleKey< InDet::PixelClusterContainer > m_ClusterPixelKey
BooleanProperty m_doRecoverFailedFits
std::vector< const Trk::SpacePoint * > getSpacePoints(const std::vector< uint32_t > &trackIndices, const std::vector< const Trk::SpacePoint * > &allSpacePoints) const
virtual bool isClonable() const override
Make this algorithm clonable.
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_ClusterStripKey
UnsignedIntegerProperty m_minPixelClusters
BooleanProperty m_doRecoTrackCuts
BooleanProperty m_areInputClusters
int passEtaDepCuts(const Trk::Track &track) const
SiSPGNNTrackMaker(const std::string &name, ISvcLocator *pSvcLocator)
ServiceHandle< IInDetEtaDependentCutsSvc > m_etaDependentCutsSvc
std::vector< const Trk::PrepRawData * > getClustersInEvent(const EventContext &ctx, int eventNumber) const
SG::WriteHandleKey< TrackCollection > m_outputTracksKey
std::vector< const Trk::PrepRawData * > spacePointsToClusters(const std::vector< const Trk::SpacePoint * > &spacePoints) const
ToolHandle< Trk::ITrackFitter > m_trackFitter
Track Fitter.
SG::ReadHandleKey< SpacePointContainer > m_SpacePointsSCTKey
MsgStream & dumpevent(MsgStream &out) const
virtual StatusCode initialize() override
ToolHandle< IGNNTrackFinder > m_gnnTrackFinder
GNN-based track finding tool that produces track candidates.
bool prefitCheck(unsigned int nPix, unsigned int nStrip, unsigned int nClusters, unsigned int nSpacePoints) const
std::vector< const Trk::SpacePoint * > getSpacePointsInEvent(const EventContext &ctx, int eventNumber) const
UnsignedIntegerProperty m_minClusters
virtual StatusCode execute(const EventContext &ctx) const override
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trackSummaryTool
std::vector< const Trk::PrepRawData * > getClusters(const std::vector< std::vector< uint32_t > > &clusterTracks, const std::vector< const Trk::PrepRawData * > &allClusters, int trackNumber) const
SG::ReadHandleKey< SpacePointOverlapCollection > m_SpacePointsOverlapKey
SG::ReadHandleKey< SpacePointContainer > m_SpacePointsPixelKey
std::tuple< bool, int, std::unique_ptr< Trk::Track > > doFitAndCut(const EventContext &ctx, std::vector< const Trk::SpacePoint * > &spacePoints, std::vector< const Trk::PrepRawData * > &clusters, int &trackCounter) const
Fits a track and applies quality cuts to determine if it should be kept.
MsgStream & dumptools(MsgStream &out) const
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Provides the abstract interface for track fitting in the common ATLAS Tracking EDM.
MsgStream & operator<<(MsgStream &, const GNNTrackFinderTritonTool &)
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< TrackParametersDim, Charged > TrackParameters