ATLAS Offline Software
ITrackSummaryTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRKITRACKSUMMARYTOOL_H
6 #define TRKITRACKSUMMARYTOOL_H
7 
8 #include "GaudiKernel/EventContext.h"
9 #include "GaudiKernel/ThreadLocalContext.h"
10 #include "GaudiKernel/IAlgTool.h"
12 #include <memory>
13 namespace Trk {
14 
15 class Track;
16 class TrackSummary;
17 
18 static const InterfaceID IID_ITrackSummaryTool("Trk::ITrackSummaryTool", 1, 0);
19 
26 class ITrackSummaryTool : virtual public IAlgTool
27 {
28 public:
29  static const InterfaceID& interfaceID();
30 
31  /* Start from a copy of the existing input track summary if there,
32  * otherwise start from a new one. Fill it and return it.
33  * Does not modify the const track.
34  */
35  virtual std::unique_ptr<Trk::TrackSummary> summary(
36  const EventContext& ctx,
37  const Track& track) const = 0;
38 
39  std::unique_ptr<Trk::TrackSummary> summary(const Track& track) const;
40 
41  /* Start from a copy of the existing input track summary if there,
42  * otherwise start from a new one. Fill it and return it.
43  * but without doing the hole search.
44  * Does not modify the const track.
45  */
46  virtual std::unique_ptr<Trk::TrackSummary> summaryNoHoleSearch(
47  const EventContext& ctx,
48  const Track& track) const = 0;
49 
50  std::unique_ptr<Trk::TrackSummary> summaryNoHoleSearch(
51  const Track& track) const;
52 
58  virtual void updateTrack(const EventContext& ctx, Track& track) const = 0;
59  void updateTrack(Track& track) const;
60 
66  virtual void updateTrackSummary(const EventContext& ctx,
67  Track& track) const = 0;
69 
72  virtual void updateAdditionalInfo(Track& track) const = 0;
73 };
74 
75 inline const InterfaceID&
77 {
78  return IID_ITrackSummaryTool;
79 }
80 
81 }
83 #endif
Trk::ITrackSummaryTool
Interface for condensing Trk::Track properties and associated hits to a (non-fittable) foot print,...
Definition: ITrackSummaryTool.h:27
Trk::ITrackSummaryTool::updateTrackSummary
virtual void updateTrackSummary(const EventContext &ctx, Track &track) const =0
method which can be used to update the summary of a track it, without doing shared hit/ or hole searc...
Trk::ITrackSummaryTool::summary
std::unique_ptr< Trk::TrackSummary > summary(const Track &track) const
TrackSummary.h
Trk::ITrackSummaryTool::updateTrack
virtual void updateTrack(const EventContext &ctx, Track &track) const =0
Same behavious as IExtendedTrackSummaryTool:computeAndReplaceTrackSummary but without the need to pas...
Trk::ITrackSummaryTool::interfaceID
static const InterfaceID & interfaceID()
Definition: ITrackSummaryTool.h:76
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ITrackSummaryTool::summaryNoHoleSearch
virtual std::unique_ptr< Trk::TrackSummary > summaryNoHoleSearch(const EventContext &ctx, const Track &track) const =0
Trk::ITrackSummaryTool::updateTrack
void updateTrack(Track &track) const
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
Trk::ITrackSummaryTool::summaryNoHoleSearch
std::unique_ptr< Trk::TrackSummary > summaryNoHoleSearch(const Track &track) const
Trk::ITrackSummaryTool::updateAdditionalInfo
virtual void updateAdditionalInfo(Track &track) const =0
method to update additional information (PID,shared hits, dEdX), this is optimised for track collecti...
Trk::ITrackSummaryTool::summary
virtual std::unique_ptr< Trk::TrackSummary > summary(const EventContext &ctx, const Track &track) const =0
ITrackSummaryTool.icc
xAOD::TrackSummary
TrackSummary_v1 TrackSummary
Definition: Event/xAOD/xAODTracking/xAODTracking/TrackSummary.h:10
Trk::ITrackSummaryTool::updateTrackSummary
void updateTrackSummary(Track &track) const