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 >
107 const Acts::BoundTrackParameters& initialParams,
108 const Acts::GeometryContext& tgContext,
109 const Acts::MagneticFieldContext& mfContext,
110 const Acts::CalibrationContext& calContext,
111 const Acts::Surface& targetSurface)
const override;
114 std::unique_ptr< ActsTrk::MutableTrackContainer >
115 fit(
const std::vector< ActsTrk::ATLASUncalibSourceLink> & clusterList,
116 const Acts::BoundTrackParameters& initialParams,
117 const Acts::GeometryContext& tgContext,
118 const Acts::MagneticFieldContext& mfContext,
119 const Acts::CalibrationContext& calContext,
120 const Acts::Surface* targetSurface)
const override;
123 const EventContext& ctx,
124 const ActsTrk::TrackContainer::ConstTrackProxy&
track,
126 const Acts::PerigeeSurface& pSurface)
const override;
132 Acts::GsfOptions<ActsTrk::MutableTrackStateBackend>
prepareOptions(
const Acts::GeometryContext& tgContext,
133 const Acts::MagneticFieldContext& mfContext,
134 const Acts::CalibrationContext& calContext,
135 const Acts::PerigeeSurface& surface)
const;
137 std::unique_ptr<Trk::Track>
performFit(
const EventContext& ctx,
138 const Acts::GeometryContext& tgContext,
139 const Acts::GsfOptions<ActsTrk::MutableTrackStateBackend>& gsfOptions,
140 const std::vector<Acts::SourceLink>& trackSourceLinks,
141 const Acts::BoundTrackParameters& initialParams)
const;
144 const Acts::GeometryContext& tgContext,
145 const Acts::GsfOptions<ActsTrk::MutableTrackStateBackend>& gsfOptions,
146 const std::vector<Acts::SourceLink>& trackSourceLinks,
147 const Acts::BoundTrackParameters& initialParams,
148 const std::vector<const Acts::Surface*>& surfaces)
const;
151 std::unique_ptr<Trk::Track>
makeTrack(
const EventContext& ctx,
152 const Acts::GeometryContext& tgContext,
154 Acts::Result<typename ActsTrk::MutableTrackContainer::TrackProxy, std::error_code>& fitResult)
const;
156 const Acts::GsfExtensions<ActsTrk::MutableTrackStateBackend>&
getExtensions()
const;
159 const Acts::Logger&
logger()
const;
165 ToolHandle<Trk::IExtendedTrackSummaryTool>
m_trkSummaryTool {
this,
"SummaryTool",
"",
"ToolHandle for track summary tool"};
169 "Boundary checking tool for detector sensitivities"};
173 "Chi2 cut used by the outlier finder" };
175 "Maximum number of steps for one propagate call"};
178 "Maximum number of components in GSF"};
181 "GSF with direct navigation when refitting measurements"};
184 "Do refit only. Track summary will not be added"};
187 "component weight cut off"};
190 ,
"method to merge components {Mean, MaxWeight}"};
196 Acts::AtlasBetheHeitlerApprox<6, 5>,
199 std::unique_ptr<ActsTrk::detail::TrkMeasurementCalibrator>
m_calibrator {
nullptr};
202 using DirectFitter = Acts::GaussianSumFitter< Acts::Propagator<Acts::MultiEigenStepperLoop<>, Acts::DirectNavigator>,
203 Acts::AtlasBetheHeitlerApprox<6, 5>,
214 std::unique_ptr<const Acts::Logger>
m_logger {
nullptr};