5 #ifndef ACTSGEOMETRY_GLOBALCHISQUAREFITTERTOOL_H
6 #define ACTSGEOMETRY_GLOBALCHISQUAREFITTERTOOL_H
9 #include "GaudiKernel/EventContext.h"
10 #include "GaudiKernel/ToolHandle.h"
20 #include "Acts/EventData/TrackParameters.hpp"
21 #include "Acts/EventData/TrackProxy.hpp"
22 #include "Acts/EventData/VectorTrackContainer.hpp"
23 #include "Acts/Geometry/GeometryIdentifier.hpp"
24 #include "Acts/MagneticField/MagneticFieldProvider.hpp"
25 #include "Acts/Propagator/Navigator.hpp"
26 #include "Acts/Propagator/Propagator.hpp"
27 #include "Acts/Propagator/SympyStepper.hpp"
28 #include "Acts/TrackFitting/GlobalChiSquareFitter.hpp"
60 template <
typename trajectory_t>
61 void calibrate(
const Acts::GeometryContext& gctx,
62 const Acts::CalibrationContext& cctx,
63 const Acts::SourceLink& sl,
64 typename trajectory_t::TrackStateProxy trackState)
const;
74 const Acts::Surface*
operator()(
const Acts::SourceLink& sourceLink)
const;
78 :
public extends<AthAlgTool, Trk::ITrackFitter, ActsTrk::IFitterTool> {
88 virtual std::unique_ptr<Trk::Track>
fit(
95 virtual std::unique_ptr<Trk::Track>
fit(
103 virtual std::unique_ptr<Trk::Track>
fit(
111 virtual std::unique_ptr<Trk::Track>
fit(
118 virtual std::unique_ptr<ActsTrk::MutableTrackContainer>
fit(
119 const EventContext& ctx,
120 const std::vector<ActsTrk::ATLASUncalibSourceLink>& clusterList,
121 const Acts::BoundTrackParameters& initialParams,
122 const Acts::GeometryContext& tgContext,
123 const Acts::MagneticFieldContext& mfContext,
124 const Acts::CalibrationContext& calContext,
126 const Acts::Surface* targetSurface =
132 virtual std::unique_ptr<Trk::Track>
fit(
139 virtual std::unique_ptr<Trk::Track>
fit(
140 const EventContext& ctx,
const Trk::Track& intrk1,
146 virtual std::unique_ptr<ActsTrk::MutableTrackContainer>
fit(
148 const Acts::BoundTrackParameters& initialParams,
149 const Acts::GeometryContext& tgContext,
150 const Acts::MagneticFieldContext& mfContext,
151 const Acts::CalibrationContext& calContext,
161 const EventContext& ctx, Acts::GeometryContext& tgContext,
163 Acts::Result<ActsTrk::MutableTrackContainer::TrackProxy, std::error_code>&
165 bool SourceLinkType =
false)
const;
171 this,
"ExtrapolationTool",
""};
173 this,
"TrackingGeometryTool",
""};
175 this,
"ATLASConverterTool",
""};
177 this,
"SummaryTool",
"",
"ToolHandle for track summary tool"};
179 this,
"BoundaryCheckTool",
"",
180 "Boundary checking tool for detector sensitivities"};
184 this,
"OutlierChi2Cut", 12.5,
"Chi2 cut used by the outlier finder"};
186 this,
"MaxPropagationStep", 5000,
187 "Maximum number of steps for one propagate call"};
189 this,
"SeedCovarianceScale", 100.,
190 "Scale factor for the input seed covariance when doing refitting"};
192 std::unique_ptr<ActsTrk::detail::TrkMeasurementCalibrator>
m_calibrator{
196 using Fitter = Acts::Experimental::Gx2Fitter<
197 Acts::Propagator<Acts::SympyStepper, Acts::Navigator>,
201 Acts::Experimental::Gx2FitterExtensions<ActsTrk::MutableTrackStateBackend>
213 this,
"BroadRotCreatorTool",
""};
214 ToolHandle<Trk::IRIO_OnTrackCreator>
m_ROTcreator{
this,
"RotCreatorTool",
""};
217 "Do Refit From PRD instead of ROT"};