9 #ifndef TRKEXINTERFACES_IEXTRAPOLATOR_H
10 #define TRKEXINTERFACES_IEXTRAPOLATOR_H
13 #include "GaudiKernel/EventContext.h"
14 #include "GaudiKernel/IAlgTool.h"
15 #include "GaudiKernel/ThreadLocalContext.h"
37 static const InterfaceID IID_IExtrapolator(
"IExtrapolator", 1, 0);
56 class TrackingGeometry;
57 class TrackStateOnSurface;
68 static const InterfaceID&
interfaceID() {
return IID_IExtrapolator; }
81 const EventContext& ctx,
94 virtual std::vector<std::unique_ptr<TrackParameters>>
106 const EventContext& ctx,
120 const EventContext& ctx,
132 virtual std::vector<std::unique_ptr<TrackParameters>>
138 const Volume* boundaryVol =
nullptr)
const = 0;
141 virtual std::pair<std::unique_ptr<TrackParameters>,
const Trk::Layer*>
143 const EventContext& ctx,
147 std::vector<const Trk::TrackStateOnSurface*>& material,
153 const EventContext& ctx,
164 const EventContext& ctx,
179 virtual std::unique_ptr<
180 std::vector<std::pair<std::unique_ptr<Trk::TrackParameters>,
int>>>
182 const EventContext& ctx,
186 std::vector<const Trk::TrackStateOnSurface*>*& material,
187 int destination = 3)
const = 0;
196 #endif // TRKEXINTERFACES_ITRKEXTRAPOLATOR_H