5 #ifndef ACTSTRACKRECONSTRUCTION_KALMANFITTERTOOL_H
6 #define ACTSTRACKRECONSTRUCTION_KALMANFITTERTOOL_H
10 #include "GaudiKernel/ToolHandle.h"
23 #include "GaudiKernel/ToolHandle.h"
24 #include "GaudiKernel/EventContext.h"
27 #include "Acts/EventData/TrackParameters.hpp"
28 #include "Acts/TrackFitting/KalmanFitter.hpp"
29 #include "Acts/MagneticField/MagneticFieldProvider.hpp"
30 #include "Acts/Propagator/SympyStepper.hpp"
31 #include "Acts/Propagator/Propagator.hpp"
32 #include "Acts/Propagator/Navigator.hpp"
33 #include "Acts/EventData/TrackProxy.hpp"
34 #include "Acts/EventData/VectorTrackContainer.hpp"
35 #include "Acts/Geometry/GeometryIdentifier.hpp"
70 template <
typename trajectory_t>
71 void calibrate(
const Acts::GeometryContext& gctx,
72 const Acts::CalibrationContext& cctx,
73 const Acts::SourceLink& sl,
74 typename trajectory_t::TrackStateProxy trackState)
const;
84 const Acts::Surface*
operator()(
const Acts::SourceLink& sourceLink)
const;
88 :
public extends<AthAlgTool, Trk::ITrackFitter, ActsTrk::IFitterTool> {
98 virtual std::unique_ptr<Trk::Track>
fit(
99 const EventContext& ctx,
105 virtual std::unique_ptr<Trk::Track>
fit(
106 const EventContext& ctx,
113 virtual std::unique_ptr<Trk::Track>
fit(
114 const EventContext& ctx,
121 virtual std::unique_ptr<Trk::Track>
fit(
122 const EventContext& ctx,
130 std::unique_ptr< ActsTrk::MutableTrackContainer >
131 fit(
const EventContext& ctx,
132 const std::vector<ActsTrk::ATLASUncalibSourceLink> & clusterList,
133 const Acts::BoundTrackParameters& initialParams,
134 const Acts::GeometryContext& tgContext,
135 const Acts::MagneticFieldContext& mfContext,
136 const Acts::CalibrationContext& calContext,
138 const Acts::Surface* targetSurface =
nullptr
142 virtual std::unique_ptr<Trk::Track>
fit(
143 const EventContext& ctx,
150 virtual std::unique_ptr<Trk::Track>
fit(
151 const EventContext& ctx,
159 std::unique_ptr< ActsTrk::MutableTrackContainer >
160 fit(
const EventContext& ctx,
162 const Acts::BoundTrackParameters& initialParams,
163 const Acts::GeometryContext& tgContext,
164 const Acts::MagneticFieldContext& mfContext,
165 const Acts::CalibrationContext& calContext,
174 std::unique_ptr<Trk::Track>
makeTrack(
const EventContext& ctx,
175 Acts::GeometryContext& tgContext,
177 Acts::Result<ActsTrk::MutableTrackContainer::TrackProxy, std::error_code>& fitResult,
bool SourceLinkType =
false)
const;
185 ToolHandle<Trk::IExtendedTrackSummaryTool>
m_trkSummaryTool {
this,
"SummaryTool",
"",
"ToolHandle for track summary tool"};
189 "Boundary checking tool for detector sensitivities"};
192 "Chi2 cut used by the outlier finder" };
194 "Pt cut used for the ReverseFiltering logic"};
196 "Maximum number of steps for one propagate call"};
198 "Scale factor for the input seed covariance when doing refitting"};
200 std::unique_ptr<ActsTrk::detail::TrkMeasurementCalibrator>
m_calibrator {
nullptr};
223 ToolHandle<Trk::IRIO_OnTrackCreator>
m_ROTcreator {
this,
"RotCreatorTool",
""};
225 Gaudi::Property<bool>
m_doReFitFromPRD{
this,
"DoReFitFromPRD",
false,
"Do Refit From PRD instead of ROT"};