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"
47 :
public extends<AthAlgTool, Trk::ITrackFitter, ActsTrk::IFitterTool> {
57 virtual std::unique_ptr<Trk::Track>
fit(
58 const EventContext& ctx,
64 virtual std::unique_ptr<Trk::Track>
fit(
65 const EventContext& ctx,
72 virtual std::unique_ptr<Trk::Track>
fit(
73 const EventContext& ctx,
80 virtual std::unique_ptr<Trk::Track>
fit(
81 const EventContext& ctx,
88 virtual std::unique_ptr<Trk::Track>
fit(
89 const EventContext& ctx,
96 virtual std::unique_ptr<Trk::Track>
fit(
97 const EventContext& ctx,
105 std::unique_ptr< ActsTrk::MutableTrackContainer >
106 fit(
const EventContext& ctx,
108 const Acts::BoundTrackParameters& initialParams,
109 const Acts::GeometryContext& tgContext,
110 const Acts::MagneticFieldContext& mfContext,
111 const Acts::CalibrationContext& calContext,
115 std::unique_ptr< ActsTrk::MutableTrackContainer >
116 fit(
const EventContext& ctx,
117 const std::vector< ActsTrk::ATLASUncalibSourceLink> & clusterList,
118 const Acts::BoundTrackParameters& initialParams,
119 const Acts::GeometryContext& tgContext,
120 const Acts::MagneticFieldContext& mfContext,
121 const Acts::CalibrationContext& calContext,
123 const Acts::Surface* targetSurface)
const override;
126 const EventContext& ctx,
127 const ActsTrk::TrackContainer::ConstTrackProxy& track,
134 Acts::GsfOptions<ActsTrk::MutableTrackStateBackend>
prepareOptions(
const Acts::GeometryContext& tgContext,
135 const Acts::MagneticFieldContext& mfContext,
136 const Acts::CalibrationContext& calContext,
137 const Acts::PerigeeSurface& surface)
const;
139 std::unique_ptr<Trk::Track>
performFit(
const EventContext& ctx,
140 const Acts::GeometryContext& tgContext,
141 const Acts::GsfOptions<ActsTrk::MutableTrackStateBackend>& gsfOptions,
142 const std::vector<Acts::SourceLink>& trackSourceLinks,
143 const Acts::BoundTrackParameters& initialParams)
const;
146 const Acts::GeometryContext& tgContext,
147 const Acts::GsfOptions<ActsTrk::MutableTrackStateBackend>& gsfOptions,
148 const std::vector<Acts::SourceLink>& trackSourceLinks,
149 const Acts::BoundTrackParameters& initialParams,
150 const std::vector<const Acts::Surface*>& surfaces)
const;
153 std::unique_ptr<Trk::Track>
makeTrack(
const EventContext& ctx,
154 const Acts::GeometryContext& tgContext,
156 Acts::Result<typename ActsTrk::MutableTrackContainer::TrackProxy, std::error_code>& fitResult)
const;
158 const Acts::GsfExtensions<ActsTrk::MutableTrackStateBackend>&
getExtensions()
const;
161 const Acts::Logger&
logger()
const;
167 ToolHandle<Trk::IExtendedTrackSummaryTool>
m_trkSummaryTool {
this,
"SummaryTool",
"",
"ToolHandle for track summary tool"};
171 "Boundary checking tool for detector sensitivities"};
175 "Chi2 cut used by the outlier finder" };
177 "Maximum number of steps for one propagate call"};
180 "Maximum number of components in GSF"};
183 "GSF with direct navigation when refitting measurements"};
186 "Do refit only. Track summary will not be added"};
189 "component weight cut off"};
192 ,
"method to merge components {Mean, MaxWeight}"};
198 Acts::AtlasBetheHeitlerApprox<6, 5>,
201 std::unique_ptr<ActsTrk::detail::TrkMeasurementCalibrator>
m_calibrator {
nullptr};
204 using DirectFitter = Acts::GaussianSumFitter< Acts::Propagator<Acts::MultiEigenStepperLoop<>, Acts::DirectNavigator>,
205 Acts::AtlasBetheHeitlerApprox<6, 5>,
216 std::unique_ptr<const Acts::Logger>
m_logger {
nullptr};