5 #ifndef ACTSTRACKRECONSTRUCTION_GAUSSIANSUMFITTERTOOL_H
6 #define ACTSTRACKRECONSTRUCTION_GAUSSIANSUMFITTERTOOL_H
10 #include "GaudiKernel/ToolHandle.h"
16 #include "Acts/EventData/VectorMultiTrajectory.hpp"
17 #include "Acts/Geometry/GeometryContext.hpp"
18 #include "Acts/Utilities/Result.hpp"
19 #include "Acts/TrackFitting/GaussianSumFitter.hpp"
20 #include "Acts/Propagator/Propagator.hpp"
21 #include "Acts/Propagator/MultiEigenStepperLoop.hpp"
22 #include "Acts/Propagator/Navigator.hpp"
23 #include "Acts/TrackFitting/BetheHeitlerApprox.hpp"
24 #include "Acts/TrackFitting/GsfOptions.hpp"
25 #include "Acts/Utilities/Logger.hpp"
45 :
public extends<AthAlgTool, Trk::ITrackFitter> {
55 virtual std::unique_ptr<Trk::Track>
fit(
56 const EventContext& ctx,
62 virtual std::unique_ptr<Trk::Track>
fit(
63 const EventContext& ctx,
70 virtual std::unique_ptr<Trk::Track>
fit(
71 const EventContext& ctx,
78 virtual std::unique_ptr<Trk::Track>
fit(
79 const EventContext& ctx,
86 virtual std::unique_ptr<Trk::Track>
fit(
87 const EventContext& ctx,
94 virtual std::unique_ptr<Trk::Track>
fit(
95 const EventContext& ctx,
106 Acts::GsfOptions<ActsTrk::MutableTrackStateBackend>
prepareOptions(
const Acts::GeometryContext& tgContext,
107 const Acts::MagneticFieldContext& mfContext,
108 const Acts::CalibrationContext& calContext,
109 const Acts::PerigeeSurface& surface)
const;
111 std::unique_ptr<Trk::Track>
performFit(
const EventContext& ctx,
112 const Acts::GeometryContext& tgContext,
113 const Acts::GsfOptions<ActsTrk::MutableTrackStateBackend>& gsfOptions,
114 const std::vector<Acts::SourceLink>& trackSourceLinks,
115 const Acts::BoundTrackParameters& initialParams)
const;
118 const Acts::GeometryContext& tgContext,
119 const Acts::GsfOptions<ActsTrk::MutableTrackStateBackend>& gsfOptions,
120 const std::vector<Acts::SourceLink>& trackSourceLinks,
121 const Acts::BoundTrackParameters& initialParams,
122 const std::vector<const Acts::Surface*>& surfaces)
const;
125 std::unique_ptr<Trk::Track>
makeTrack(
const EventContext& ctx,
126 const Acts::GeometryContext& tgContext,
128 Acts::Result<typename ActsTrk::MutableTrackContainer::TrackProxy, std::error_code>& fitResult)
const;
130 const Acts::GsfExtensions<ActsTrk::MutableTrackStateBackend>&
getExtensions()
const;
133 const Acts::Logger&
logger()
const;
139 ToolHandle<Trk::IExtendedTrackSummaryTool>
m_trkSummaryTool {
this,
"SummaryTool",
"",
"ToolHandle for track summary tool"};
143 "Boundary checking tool for detector sensitivities"};
147 "Chi2 cut used by the outlier finder" };
149 "Maximum number of steps for one propagate call"};
152 "Maximum number of components in GSF"};
155 "GSF with direct navigation when refitting measurements"};
158 "Do refit only. Track summary will not be added"};
161 "component weight cut off"};
164 ,
"method to merge components {eMean, eMaxWeight}"};
170 Acts::AtlasBetheHeitlerApprox<6, 5>,
173 std::unique_ptr<ActsTrk::detail::TrkMeasurementCalibrator>
m_calibrator {
nullptr};
176 using DirectFitter = Acts::GaussianSumFitter< Acts::Propagator<Acts::MultiEigenStepperLoop<>, Acts::DirectNavigator>,
177 Acts::AtlasBetheHeitlerApprox<6, 5>,
188 std::unique_ptr<const Acts::Logger>
m_logger {
nullptr};