ATLAS Offline Software
Loading...
Searching...
No Matches
ITRT_SegmentToTrackTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4
6
18
19#ifndef ITRT_SegmentToTrackTool_H
20#define ITRT_SegmentToTrackTool_H
21
22#include "GaudiKernel/IAlgTool.h"
23
24#include "TrkTrack/Track.h"
28#include "GaudiKernel/EventContext.h"
29#include <utility>
30
31class MsgStream;
32
33namespace Trk {
34 class PRDtoTrackMap;
35}
36
37namespace InDet {
38
39 static const InterfaceID IID_ITRT_SegmentToTrackTool("InDet::ITRT_SegmentToTrackTool", 1, 0);
40
41 class ITRT_SegmentToTrackTool : virtual public IAlgTool {
42
43 public:
44
45 static const InterfaceID& interfaceID();
46
47 virtual StatusCode initialize () = 0;
48 virtual StatusCode finalize () = 0;
49
50 struct EventData {
51 std::vector< std::pair<Trk::TrackScore, Trk::Track*> > m_trackScores;
56 std::array<int,kNCounter> m_counter {};
57 };
58
59 virtual Trk::Track* segToTrack(const EventContext&, const Trk::TrackSegment&) const = 0;
60
62 virtual bool segIsUsed(const Trk::TrackSegment&,
63 const Trk::PRDtoTrackMap *) const = 0;
64
65 virtual bool toLower(const Trk::TrackSegment&) const = 0;
66
68 virtual void addNewTrack(Trk::Track*,
69 ITRT_SegmentToTrackTool::EventData &event_data) const = 0;
70
73 ITRT_SegmentToTrackTool::EventData &event_data) const = 0;
74
76 // Print internal tool parameters and status
78
79 virtual MsgStream& dump(MsgStream& out) const = 0;
80 virtual std::ostream& dump(std::ostream& out) const = 0;
81
82 };
83
85 // Inline methods
87
91
93 // Overload of << operator MsgStream
95
96}
97
98#endif //ITRT_SegmentToTrackTool_H
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
virtual Trk::Track * segToTrack(const EventContext &, const Trk::TrackSegment &) const =0
virtual void addNewTrack(Trk::Track *, ITRT_SegmentToTrackTool::EventData &event_data) const =0
Add track into the track-score multimap.
virtual std::ostream & dump(std::ostream &out) const =0
virtual MsgStream & dump(MsgStream &out) const =0
virtual bool segIsUsed(const Trk::TrackSegment &, const Trk::PRDtoTrackMap *) const =0
Check if the TRT segment has already been assigned a Si extension.
virtual TrackCollection * resolveTracks(const Trk::PRDtoTrackMap *, ITRT_SegmentToTrackTool::EventData &event_data) const =0
Resolve the standalone TRT tracks based on the number of shared TRT hits.
virtual bool toLower(const Trk::TrackSegment &) const =0
static const InterfaceID & interfaceID()
virtual StatusCode initialize()=0
virtual StatusCode finalize()=0
Class for a generic track segment that holdes polymorphic Trk::MeasurementBase objects,...
Primary Vertex Finder.
static const InterfaceID IID_ITRT_SegmentToTrackTool("InDet::ITRT_SegmentToTrackTool", 1, 0)
Ensure that the ATLAS eigen extensions are properly loaded.
@ knTRTTrk
Number of TRT-only tracks on output.
@ knTrkSegUsed
Number of excluded segments by other TRT segments.
@ knTrkScoreZero
Number of tracks rejected by score zero.
std::vector< std::pair< Trk::TrackScore, Trk::Track * > > m_trackScores