ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::GlobalChiSquareFitterTool Class Reference

#include <GlobalChiSquareFitterTool.h>

Inheritance diagram for ActsTrk::GlobalChiSquareFitterTool:

Public Types

using StraightPropagator_t = Acts::Propagator<Acts::StraightLineStepper, Acts::Navigator>
 Type erased track fitter function.
using CurvedPropagator_t = Acts::Propagator<Acts::EigenStepper<>, Acts::Navigator>
using StraightFitter_t = Acts::Experimental::Gx2Fitter<StraightPropagator_t, MutableTrackStateBackend>
using CurvedFitter_t = Acts::Experimental::Gx2Fitter<CurvedPropagator_t, MutableTrackStateBackend>
using Gx2FitterOptions_t = Acts::Experimental::Gx2FitterOptions<MutableTrackStateBackend>
 Abbrivation of the configuration to launch the fit.
using Gx2FitterExtension_t = Acts::Experimental::Gx2FitterExtensions<MutableTrackStateBackend>
 Abbrivation of the fitter extensions.

Public Member Functions

virtual ~GlobalChiSquareFitterTool ()=default
virtual StatusCode initialize () override
virtual std::unique_ptr< Trk::Trackfit (const EventContext &ctx, const Trk::Track &, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
 refit a track
virtual std::unique_ptr< Trk::Trackfit (const EventContext &ctx, const Trk::PrepRawDataSet &, const Trk::TrackParameters &, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
 fit a set of PrepRawData objects
virtual std::unique_ptr< Trk::Trackfit (const EventContext &ctx, const Trk::MeasurementSet &, const Trk::TrackParameters &, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
 fit a set of MeasurementBase objects
virtual std::unique_ptr< Trk::Trackfit (const EventContext &ctx, const Trk::Track &, const Trk::PrepRawDataSet &, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
 extend a track fit including a new set of PrepRawData objects
virtual std::unique_ptr< MutableTrackContainerfit (const std::vector< const xAOD::UncalibratedMeasurement * > &clusterList, const Acts::BoundTrackParameters &initialParams, const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface *targetSurface=nullptr) const override
 fit a set of xAOD uncalibrated Measurements
virtual std::unique_ptr< Trk::Trackfit (const EventContext &ctx, const Trk::Track &, const Trk::MeasurementSet &, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
 extend a track fit including a new set of MeasurementBase objects
virtual std::unique_ptr< Trk::Trackfit (const EventContext &ctx, const Trk::Track &intrk1, const Trk::Track &intrk2, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
 combined track fit
virtual std::unique_ptr< MutableTrackContainerfit (const Seed &seed, const Acts::BoundTrackParameters &initialParams, const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface &targetSurface) const override
 Acts seed fit.
virtual StatusCode fit (const EventContext &ctx, const TrackContainer::ConstTrackProxy &track, MutableTrackContainer &trackContainer, const Acts::PerigeeSurface &pSurface) const override

Private Types

using TrackState_t = MutableTrackStateBackend::TrackStateProxy
 Abrivate the track state proxy.
using TrackFitResult_t = ITrackConverterTool::TrackFitResult_t
using xAODItkCalibrator_t = detail::OnTrackCalibrator<ActsTrk::MutableTrackStateBackend>
 Calibrator of the ID / ITk measurements.

Private Member Functions

TrackFitResult_t fit (const std::vector< Acts::SourceLink > &soureLinks, const Acts::BoundTrackParameters &initialPars, const Gx2FitterOptions_t &gx2fOptions, MutableTrackContainer &tracks) const
 Calls the underlying Acts::Gx2Fitter for a given configuration of measurements.
Gx2FitterOptions_t configureFit (const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface *surface, detail::SourceLinkType slType) const
 Helper method to pack the last information (Calibration, Alignment, B-Field, etc.) for the fit.
const Acts::Logger & logger () const
 Private access to the logger.

Private Attributes

ToolHandle< IExtrapolationToolm_extrapolationTool {this, "ExtrapolationTool", ""}
PublicToolHandle< ITrackingGeometryToolm_trackingGeometryTool {this, "TrackingGeometryTool", ""}
PublicToolHandle< IGeometryRealmConvToolm_geometryConvTool {this, "GeometryRealmConvTool", ""}
ToolHandle< ITrackConverterToolm_ATLASConverterTool {this, "ATLASConverterTool", ""}
ToolHandle< MuonR4::ISpacePointCalibratorm_muonCalibrator {this, "MuonCalibrationTool", ""}
ToolHandle< Trk::IRIO_OnTrackCreatorm_ROTcreator {this, "RotCreatorTool", ""}
Gaudi::Property< double > m_option_outlierChi2Cut {this, "OutlierChi2Cut", 12.5}
 Chi2 cut used by the outlier finder.
Gaudi::Property< unsigned > m_option_maxPropagationStep {this, "MaxPropagationStep", 5000}
 Maximum number of steps per propagation call.
Gaudi::Property< unsigned > m_option_maxNavSurfaces {this, "MaxSurfacesPerNavStep", 100}
 Number of maximum surfaces to be tried before the navigrator aborts.
Gaudi::Property< bool > m_option_includeELoss {this, "IncludeELoss", true}
 Consider particle's energy loss in the fit.
Gaudi::Property< bool > m_option_includeScat {this, "IncludeScattering", true}
 Consider multiple scattering of the particle.
Gaudi::Property< bool > m_doReFitFromPRD {this, "DoReFitFromPRD", false}
 Convert the PRD to a ROT during the calibration.
Gaudi::Property< bool > m_doStraightLine {this, "DoStraightLine" , false}
 Option to toggle whether a straight line fitter shall be used.
Gaudi::Property< bool > m_doJacobianCorr {this, "DoFreeToBoundCorrection", false }
 Account for non linear effects from free -> bound jacobian.
Gaudi::Property< unsigned > m_nIterMax {this, "MaxIterations", 5}
 Number of iterations a fit may take.
detail::TrkMeasurementCalibrator m_trkMeasCalibrator {}
 Pass through calibrator of the Trk::MeasurementBase objects from the TrackState container.
detail::TrkPrepRawDataCalibrator m_prdCalibrator {}
 Calibrator of the uncalibrated Trk::PrepRawData objects to RIO_OnTrack objects.
detail::TrkMeasSurfaceAccessor m_trkMeasSurfAcc {}
 Surface accessor delegate for Trk::MeasurementBase objects.
detail::TrkPrepRawDataSurfaceAcc m_prdSurfaceAcc {}
 Surface accessor delegate for Trk::PrepRawData objects.
detail::xAODUncalibMeasSurfAcc m_unalibMeasSurfAcc {}
 Surface accessor delegate for xAOD::UncalibratedMeasurement objects.
detail::xAODUncalibMeasCalibrator m_uncalibMeasCalibrator {}
 Calibrator for the uncalibrated xAOD::UnCalibratedMeasurement objects.
xAODItkCalibrator_t m_idCalibrator {}
std::array< Gx2FitterExtension_t, s_nExtensionsm_gx2fExtensions {}
std::unique_ptr< CurvedFitter_tm_fitter {nullptr}
 The underlying curved Acts fitter.
std::unique_ptr< StraightFitter_tm_slFitter {nullptr}
 The underlying straight line Acts fitter.
detail::FitterHelperFunctions::ATLASOutlierFinder m_outlierFinder {0}
std::unique_ptr< const Acts::Logger > m_logger
 logging instance

Static Private Attributes

static constexpr unsigned s_nExtensions = static_cast<unsigned>(detail::SourceLinkType::nTypes)
 Array of all configured fitter extensions depending on which source link type is in use.

Detailed Description

Definition at line 65 of file GlobalChiSquareFitterTool.h.

Member Typedef Documentation

◆ CurvedFitter_t

◆ CurvedPropagator_t

using ActsTrk::GlobalChiSquareFitterTool::CurvedPropagator_t = Acts::Propagator<Acts::EigenStepper<>, Acts::Navigator>

Definition at line 150 of file GlobalChiSquareFitterTool.h.

◆ Gx2FitterExtension_t

Abbrivation of the fitter extensions.

Definition at line 158 of file GlobalChiSquareFitterTool.h.

◆ Gx2FitterOptions_t

Abbrivation of the configuration to launch the fit.

Definition at line 156 of file GlobalChiSquareFitterTool.h.

◆ StraightFitter_t

◆ StraightPropagator_t

using ActsTrk::GlobalChiSquareFitterTool::StraightPropagator_t = Acts::Propagator<Acts::StraightLineStepper, Acts::Navigator>

Type erased track fitter function.

Definition at line 149 of file GlobalChiSquareFitterTool.h.

◆ TrackFitResult_t

◆ TrackState_t

using ActsTrk::GlobalChiSquareFitterTool::TrackState_t = MutableTrackStateBackend::TrackStateProxy
private

Abrivate the track state proxy.

Definition at line 162 of file GlobalChiSquareFitterTool.h.

◆ xAODItkCalibrator_t

Constructor & Destructor Documentation

◆ ~GlobalChiSquareFitterTool()

virtual ActsTrk::GlobalChiSquareFitterTool::~GlobalChiSquareFitterTool ( )
virtualdefault

Member Function Documentation

◆ configureFit()

GlobalChiSquareFitterTool::Gx2FitterOptions_t ActsTrk::GlobalChiSquareFitterTool::configureFit ( const Acts::GeometryContext & tgContext,
const Acts::MagneticFieldContext & mfContext,
const Acts::CalibrationContext & calContext,
const Acts::Surface * surface,
detail::SourceLinkType slType ) const
private

Helper method to pack the last information (Calibration, Alignment, B-Field, etc.) for the fit.

The parsed context objects need to prevail the call of the fit

Parameters
tgContextReference to the geometry context
mfContextReference to the passed magnetic field context
calContextReference to the calibration context
surfaceTarget surface on which the fit result is expressed.
slTypeSwitch of which source link type shall be used to access the surfaces from the measurements & for calibration

Definition at line 134 of file GlobalChiSquareFitterTool.cxx.

138 {
139 Acts::PropagatorPlainOptions propagationOption{tgContext, mfContext};
140 propagationOption.maxSteps = m_option_maxPropagationStep;
141 propagationOption.maxTargetSkipping = m_option_maxNavSurfaces;
142 // Set the Gx2Fitter options
143 return Gx2FitterOptions_t{tgContext, mfContext, calContext,
144 m_gx2fExtensions[Acts::toUnderlying(slType)],
145 std::move(propagationOption),
146 surface, m_option_includeScat,
148 Acts::FreeToBoundCorrection{m_doJacobianCorr},
149 m_nIterMax};
150}
Acts::Experimental::Gx2FitterOptions< MutableTrackStateBackend > Gx2FitterOptions_t
Abbrivation of the configuration to launch the fit.
Gaudi::Property< bool > m_doJacobianCorr
Account for non linear effects from free -> bound jacobian.
std::array< Gx2FitterExtension_t, s_nExtensions > m_gx2fExtensions
Gaudi::Property< unsigned > m_option_maxPropagationStep
Maximum number of steps per propagation call.
Gaudi::Property< bool > m_option_includeScat
Consider multiple scattering of the particle.
Gaudi::Property< bool > m_option_includeELoss
Consider particle's energy loss in the fit.
Gaudi::Property< unsigned > m_option_maxNavSurfaces
Number of maximum surfaces to be tried before the navigrator aborts.
Gaudi::Property< unsigned > m_nIterMax
Number of iterations a fit may take.

◆ fit() [1/10]

StatusCode ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const TrackContainer::ConstTrackProxy & track,
MutableTrackContainer & trackContainer,
const Acts::PerigeeSurface & pSurface ) const
overridevirtual

Definition at line 508 of file GlobalChiSquareFitterTool.cxx.

513{
514 ATH_MSG_ERROR("Track refit method not implemented in GlobalChiSquareFitterTool yet");
515 return StatusCode::FAILURE;
516}
#define ATH_MSG_ERROR(x)

◆ fit() [2/10]

std::unique_ptr< Trk::Track > ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const Trk::MeasurementSet & inputMeasSet,
const Trk::TrackParameters & estimatedStartParameters,
const Trk::RunOutlierRemoval runOutlier = false,
const Trk::ParticleHypothesis matEffects = Trk::nonInteracting ) const
overridevirtual

fit a set of MeasurementBase objects

Definition at line 213 of file GlobalChiSquareFitterTool.cxx.

217 {
218
219 // protection against not having measurements on the input track
220 if (inputMeasSet.size() < 2) {
221 ATH_MSG_DEBUG("Called to refit empty measurement set or a measurement set with too "
222 <<"little information, reject fit");
223 return nullptr;
224 }
225
226 // Construct a perigee surface as the target surface
227 auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
228
229 const Acts::GeometryContext tgContext{m_trackingGeometryTool->getGeometryContext(ctx).context()};
230 const Acts::MagneticFieldContext mfContext{m_extrapolationTool->getMagneticFieldContext(ctx)};
231 const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
232
233
234
235 std::vector<Acts::SourceLink> trackSourceLinks;
236 detail::MeasurementCalibratorBase::pack(inputMeasSet, trackSourceLinks);
237 // protection against error in the conversion from Atlas measurement to ACTS
238 // source link
239 if (trackSourceLinks.empty()) {
240 ATH_MSG_DEBUG("input contain measurement but no source link created, probable issue "
241 <<"with the converter, reject fit ");
242 return nullptr;
243 }
244
245 const auto initialParams = m_geometryConvTool->convertTrackParametersToActs(ctx, estimatedStartParameters);
246
247 ActsTrk::MutableTrackBackend trackContainerBackEnd;
248 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
249 ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
250 std::move(multiTrajBackEnd));
251
252 Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
254 // Perform the fit
255 auto result = fit(trackSourceLinks, initialParams, gx2fOptions, tracks);
256 return m_ATLASConverterTool->convertFitResult(ctx, result,
258}
#define ATH_MSG_DEBUG(x)
ToolHandle< IExtrapolationTool > m_extrapolationTool
ToolHandle< ITrackConverterTool > m_ATLASConverterTool
PublicToolHandle< ITrackingGeometryTool > m_trackingGeometryTool
PublicToolHandle< IGeometryRealmConvTool > m_geometryConvTool
Gx2FitterOptions_t configureFit(const Acts::GeometryContext &tgContext, const Acts::MagneticFieldContext &mfContext, const Acts::CalibrationContext &calContext, const Acts::Surface *surface, detail::SourceLinkType slType) const
Helper method to pack the last information (Calibration, Alignment, B-Field, etc.) for the fit.
virtual std::unique_ptr< Trk::Track > fit(const EventContext &ctx, const Trk::Track &, const Trk::RunOutlierRemoval runOutlier=false, const Trk::ParticleHypothesis matEffects=Trk::nonInteracting) const override
refit a track
static Acts::SourceLink pack(const Ptr_t &measurement)
Pack the measurement type pointer to an Acts::SourceLink including the intermediate conversion into a...
@ GlobalChi2Fitter
Track's from Thijs' global chi^2 fitter.
Acts::VectorMultiTrajectory MutableTrackStateBackend
Acts::TrackContainer< MutableTrackBackend, MutableTrackStateBackend, Acts::detail::ValueHolder > MutableTrackContainer
Acts::CalibrationContext getCalibrationContext(const EventContext &ctx)
The Acts::Calibration context is piped through the Acts fitters to (re)calibrate the Acts::SourceLink...
Acts::VectorTrackContainer MutableTrackBackend

◆ fit() [3/10]

std::unique_ptr< Trk::Track > ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const Trk::PrepRawDataSet & inputPRDColl,
const Trk::TrackParameters & estimatedStartParameters,
const Trk::RunOutlierRemoval runOutlier = false,
const Trk::ParticleHypothesis matEffects = Trk::nonInteracting ) const
overridevirtual

fit a set of PrepRawData objects

Definition at line 262 of file GlobalChiSquareFitterTool.cxx.

266 {
267
268 ATH_MSG_DEBUG("--> entering GlobalChiSquareFitterTool::fit(PRDS,TP,)");
269
270 // Construct a perigee surface as the target surface
271 auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
272
273 const Acts::GeometryContext tgContext = m_trackingGeometryTool->getGeometryContext(ctx).context();
274 const Acts::MagneticFieldContext mfContext = m_extrapolationTool->getMagneticFieldContext(ctx);
275 const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
276
277 std::vector<Acts::SourceLink> trackSourceLinks;
278 detail::MeasurementCalibratorBase::pack(inputPRDColl, trackSourceLinks);
279
280 // protection against error in the conversion from Atlas measurement to ACTS
281 // source link
282 if (trackSourceLinks.empty()) {
283 ATH_MSG_WARNING("input contain measurement but no source link created, probable issue "
284 "with the converter, reject fit ");
285 return nullptr;
286 }
287
288 const auto initialParams = m_geometryConvTool->convertTrackParametersToActs(ctx, estimatedStartParameters);
289
290
291 Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
293
294
295 ActsTrk::MutableTrackBackend trackContainerBackEnd;
296 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
297 ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
298 std::move(multiTrajBackEnd));
299 // Perform the fit
300 auto result = fit(trackSourceLinks, initialParams, gx2fOptions, tracks);
301
302 return m_ATLASConverterTool->convertFitResult(ctx, result,
304}
#define ATH_MSG_WARNING(x)
@ TrkPrepRawData
Calibrated Trk::MeasurementBase objects.

◆ fit() [4/10]

std::unique_ptr< Trk::Track > ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const Trk::Track & inputTrack,
const Trk::MeasurementSet & addMeasColl,
const Trk::RunOutlierRemoval runOutlier = false,
const Trk::ParticleHypothesis matEffects = Trk::nonInteracting ) const
overridevirtual

extend a track fit including a new set of MeasurementBase objects

Definition at line 351 of file GlobalChiSquareFitterTool.cxx.

355 {
356 ATH_MSG_VERBOSE("--> enter GlobalChiSquareFitterTool::fit(Track,Meas'BaseSet,,)");
357 ATH_MSG_VERBOSE(" with Track from author = " << inputTrack.info().dumpInfo());
358
359 // protection, if empty MeasurementSet
360 if (addMeasColl.empty()) {
361 ATH_MSG_DEBUG("client tries to add an empty MeasurementSet to the track fit.");
362 return fit(ctx, inputTrack);
363 }
364
365 // protection against not having measurements on the input track
366 if (!inputTrack.measurementsOnTrack() || (inputTrack.measurementsOnTrack()->size() < 2 && addMeasColl.empty())) {
367 ATH_MSG_DEBUG("Called to refit empty track or track with too little information, reject fit");
368 return nullptr;
369 }
370
371 // protection against not having track parameters on the input track
372 if (!inputTrack.trackParameters() || inputTrack.trackParameters()->empty()) {
373 ATH_MSG_DEBUG("input fails to provide track parameters for seeding the GX2F, reject fit");
374 return nullptr;
375 }
376
377 // Construct a perigee surface as the target surface
378 auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
379
380 const Acts::GeometryContext tgContext{m_trackingGeometryTool->getGeometryContext(ctx).context()};
381 const Acts::MagneticFieldContext mfContext{m_extrapolationTool->getMagneticFieldContext(ctx)};
382 const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
383
384 std::vector<Acts::SourceLink> trackSourceLinks = m_ATLASConverterTool->trkTrackToSourceLinks(inputTrack);
385 detail::MeasurementCalibratorBase::pack(addMeasColl, trackSourceLinks);
386 // protection against error in the conversion from Atlas measurement to ACTS
387 // source link
388 if (trackSourceLinks.empty()) {
389 ATH_MSG_DEBUG("input contain measurement but no source link created, probable issue "
390 <<"with the converter, reject fit ");
391 return nullptr;
392 }
393 const auto initialParams = m_geometryConvTool->convertTrackParametersToActs(ctx, *inputTrack.perigeeParameters());
394
395 ActsTrk::MutableTrackBackend trackContainerBackEnd;
396 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
397 ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
398 std::move(multiTrajBackEnd));
399
400 Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
402 // Perform the fit
403 auto result = fit(trackSourceLinks, initialParams, gx2fOptions, tracks);
404 return m_ATLASConverterTool->convertFitResult(ctx, result,
406}
#define ATH_MSG_VERBOSE(x)
std::string dumpInfo() const
Returns a string with the name of the fitter of this track (i.e.
const DataVector< const MeasurementBase > * measurementsOnTrack() const
return a pointer to a vector of MeasurementBase (NOT including any that come from outliers).
const DataVector< const TrackParameters > * trackParameters() const
Return a pointer to a vector of TrackParameters.
const TrackInfo & info() const
Returns a const ref to info of a const tracks.
const Perigee * perigeeParameters() const
return Perigee.

◆ fit() [5/10]

std::unique_ptr< Trk::Track > ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const Trk::Track & ,
const Trk::PrepRawDataSet & ,
const Trk::RunOutlierRemoval runOutlier = false,
const Trk::ParticleHypothesis matEffects = Trk::nonInteracting ) const
overridevirtual

extend a track fit including a new set of PrepRawData objects

Definition at line 410 of file GlobalChiSquareFitterTool.cxx.

414 {
416 "Fit of Track with additional PrepRawDataSet not yet implemented");
417 return nullptr;
418}

◆ fit() [6/10]

std::unique_ptr< Trk::Track > ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const Trk::Track & inputTrack,
const Trk::RunOutlierRemoval runOutlier = false,
const Trk::ParticleHypothesis matEffects = Trk::nonInteracting ) const
overridevirtual

refit a track

Definition at line 154 of file GlobalChiSquareFitterTool.cxx.

157 {
158
159 ATH_MSG_VERBOSE("--> enter GlobalChiSquareFitterTool::fit(Track,,) with Track from author = "
160 << inputTrack.info().dumpInfo());
161
162 // protection against not having measurements on the input track
163 if (!inputTrack.measurementsOnTrack() || inputTrack.measurementsOnTrack()->size() < 2) {
164 ATH_MSG_DEBUG("called to refit empty track or track with too little information, reject fit");
165 return nullptr;
166 }
167
168 // protection against not having track parameters on the input track
169 if (!inputTrack.trackParameters() || inputTrack.trackParameters()->empty()) {
170 ATH_MSG_DEBUG("input fails to provide track parameters for seeding the GX2F, reject fit");
171 return nullptr;
172 }
173
174 // Construct a perigee surface as the target surface
175 auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
176
177 std::vector<Acts::SourceLink> trackSourceLinks = m_ATLASConverterTool->trkTrackToSourceLinks(inputTrack);
178 // protection against error in the conversion from Atlas measurement to ACTS
179 // source link
180 if (trackSourceLinks.empty()) {
181 ATH_MSG_DEBUG("input contain measurement but no source link created, probable issue "
182 <<"with the converter, reject fit ");
183 return nullptr;
184 }
185
186 const Acts::GeometryContext tgContext{m_trackingGeometryTool->getGeometryContext(ctx).context()};
187 const Acts::MagneticFieldContext mfContext{m_extrapolationTool->getMagneticFieldContext(ctx)};
188 const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
189 const auto initialParams = m_geometryConvTool->convertTrackParametersToActs(ctx, *inputTrack.perigeeParameters());
190
191
192 const Acts::BoundTrackParameters initialParamsWithHypothesis(
193 initialParams.referenceSurface().getSharedPtr(),
194 initialParams.parameters(), initialParams.covariance(),
195 ParticleHypothesis::convert(hypothesis));
196
197 Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
199
200 ActsTrk::MutableTrackBackend trackContainerBackEnd;
201 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
202 ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
203 std::move(multiTrajBackEnd));
204 // Perform the fit
205 auto result = fit(trackSourceLinks, initialParamsWithHypothesis, gx2fOptions, tracks);
206
207 return m_ATLASConverterTool->convertFitResult(ctx, result,
209}
xAOD::ParticleHypothesis convert(Acts::ParticleHypothesis h)

◆ fit() [7/10]

std::unique_ptr< Trk::Track > ActsTrk::GlobalChiSquareFitterTool::fit ( const EventContext & ctx,
const Trk::Track & intrk1,
const Trk::Track & intrk2,
const Trk::RunOutlierRemoval runOutlier = false,
const Trk::ParticleHypothesis matEffects = Trk::nonInteracting ) const
overridevirtual

combined track fit

Definition at line 422 of file GlobalChiSquareFitterTool.cxx.

425 {
426 ATH_MSG_VERBOSE("--> enter GlobalChiSquareFitterTool::fit(Track,Track,)");
427 ATH_MSG_VERBOSE(" with Tracks from #1 = " << intrk1.info().dumpInfo()
428 << " and #2 = "
429 << intrk2.info().dumpInfo());
430
431 // protection, if empty track2
432 if (!intrk2.measurementsOnTrack()) {
433 ATH_MSG_DEBUG("input #2 is empty try to fit track 1 alone");
434 return fit(ctx, intrk1);
435 }
436
437 // protection, if empty track1
438 if (!intrk1.measurementsOnTrack()) {
439 ATH_MSG_DEBUG("input #1 is empty try to fit track 2 alone");
440 return fit(ctx, intrk2);
441 }
442
443 // protection against not having track parameters on the input track
444 if (!intrk1.trackParameters() || intrk1.trackParameters()->empty()) {
445 ATH_MSG_DEBUG("input #1 fails to provide track parameters for seeding the GX2F, reject fit");
446 return nullptr;
447 }
448
449 // Construct a perigee surface as the target surface
450 auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
451
452 const Acts::GeometryContext tgContext{m_trackingGeometryTool->getGeometryContext(ctx).context()};
453 const Acts::MagneticFieldContext mfContext{m_extrapolationTool->getMagneticFieldContext(ctx)};
454 const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
455
456 std::vector<Acts::SourceLink> trackSourceLinks = m_ATLASConverterTool->trkTrackToSourceLinks(intrk1);
457 std::vector<Acts::SourceLink> trackSourceLinks2 = m_ATLASConverterTool->trkTrackToSourceLinks(intrk2);
458 trackSourceLinks.insert(trackSourceLinks.end(), std::make_move_iterator(trackSourceLinks2.begin()),
459 std::make_move_iterator(trackSourceLinks2.end()));
460 // protection against error in the conversion from Atlas measurement to ACTS
461 // source link
462 if (trackSourceLinks.empty()) {
463 ATH_MSG_DEBUG("input contain measurement but no source link created, probable issue "
464 <<"with the converter, reject fit ");
465 return nullptr;
466 }
467
468 const auto initialParams = m_geometryConvTool->convertTrackParametersToActs(ctx, *intrk1.perigeeParameters());
469
470
471 const Acts::BoundTrackParameters initialParamsWithHypothesis(
472 initialParams.referenceSurface().getSharedPtr(),
473 initialParams.parameters(), initialParams.covariance(),
474 ParticleHypothesis::convert(matEffects));
475
476 ActsTrk::MutableTrackBackend trackContainerBackEnd;
477 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
478 ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
479 std::move(multiTrajBackEnd));
480
481 Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
483 // Perform the fit
484 auto result = fit(trackSourceLinks, initialParamsWithHypothesis, gx2fOptions, tracks);
485
486 return m_ATLASConverterTool->convertFitResult(ctx, result,
488}

◆ fit() [8/10]

std::unique_ptr< MutableTrackContainer > ActsTrk::GlobalChiSquareFitterTool::fit ( const Seed & seed,
const Acts::BoundTrackParameters & initialParams,
const Acts::GeometryContext & tgContext,
const Acts::MagneticFieldContext & mfContext,
const Acts::CalibrationContext & calContext,
const Acts::Surface & targetSurface ) const
overridevirtual

Acts seed fit.

Definition at line 490 of file GlobalChiSquareFitterTool.cxx.

496 {
497
498 std::vector<const xAOD::UncalibratedMeasurement*> sourceLinks;
499 sourceLinks.reserve(6);
500
501 for (const xAOD::SpacePoint* sp : seed.sp()) {
502 sourceLinks.insert(sourceLinks.end(), sp->measurements().begin(), sp->measurements().end());
503 }
504 return fit(sourceLinks, initialParams, tgContext, mfContext, calContext, &targetSurface);
505}
static Double_t sp

◆ fit() [9/10]

GlobalChiSquareFitterTool::TrackFitResult_t ActsTrk::GlobalChiSquareFitterTool::fit ( const std::vector< Acts::SourceLink > & soureLinks,
const Acts::BoundTrackParameters & initialPars,
const Gx2FitterOptions_t & gx2fOptions,
MutableTrackContainer & tracks ) const
inlineprivate

Calls the underlying Acts::Gx2Fitter for a given configuration of measurements.

Parameters
sourceLinksList of measurements to fit
initialParsInitial estimate of the track parameters
gx2fOptionsConfiguration options needed to execute the fit
tracksTrack container into which the new track is appended

Definition at line 124 of file GlobalChiSquareFitterTool.cxx.

127 {
128 return ATH_LIKELY(m_fitter) ?
129 m_fitter->fit(soureLinks.begin(), soureLinks.end(), initialPars, gx2fOptions, tracks) :
130 m_slFitter->fit(soureLinks.begin(), soureLinks.end(), initialPars, gx2fOptions, tracks);
131}
#define ATH_LIKELY(x)
std::unique_ptr< StraightFitter_t > m_slFitter
The underlying straight line Acts fitter.
std::unique_ptr< CurvedFitter_t > m_fitter
The underlying curved Acts fitter.

◆ fit() [10/10]

std::unique_ptr< MutableTrackContainer > ActsTrk::GlobalChiSquareFitterTool::fit ( const std::vector< const xAOD::UncalibratedMeasurement * > & clusterList,
const Acts::BoundTrackParameters & initialParams,
const Acts::GeometryContext & tgContext,
const Acts::MagneticFieldContext & mfContext,
const Acts::CalibrationContext & calContext,
const Acts::Surface * targetSurface = nullptr ) const
overridevirtual

fit a set of xAOD uncalibrated Measurements

Definition at line 308 of file GlobalChiSquareFitterTool.cxx.

314 {
315
316 if (measList.empty()) {
317 ATH_MSG_DEBUG("No measurements given. Nothing to do");
318 return nullptr;
319 }
320 // Construct a perigee surface as the target surface
321 std::shared_ptr<Acts::Surface> pSurface{};
322 if (!targetSurface) {
323 pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
324 targetSurface = pSurface.get();
325 }
326
327 std::vector<Acts::SourceLink> sourceLinks{};
328 detail::MeasurementCalibratorBase::pack(measList, sourceLinks);
329
330 Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
332
333
334 ActsTrk::MutableTrackBackend trackContainerBackEnd;
335 ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
336 auto tracks = std::make_unique<MutableTrackContainer>( std::move(trackContainerBackEnd),
337 std::move(multiTrajBackEnd) );
338 // Perform the fit
339 auto result = fit(sourceLinks, initialParams, gx2fOptions, *tracks);
340 if (not result.ok()) {
341 ATH_MSG_VERBOSE("Global chi2 fit failed");
342 return nullptr;
343 }
344 return tracks;
345}
@ xAODUnCalibMeas
UnCalibrated Trk::PrepRawData objects.

◆ initialize()

StatusCode ActsTrk::GlobalChiSquareFitterTool::initialize ( )
overridevirtual

Configure the fit extensions for Trk::MeasuremenBase pass through fits.

Configure the fit extensions for Trk::PrepRawData fits

Needs to be filled with live.

Connect the muon types with the muon calibrator

Definition at line 44 of file GlobalChiSquareFitterTool.cxx.

44 {
45
46 ATH_MSG_DEBUG(name() << "::" << __FUNCTION__);
50 ATH_CHECK(m_ROTcreator.retrieve(EnableTool{m_doReFitFromPRD}));
51 ATH_CHECK(m_geometryConvTool.retrieve());
52 ATH_CHECK(m_muonCalibrator.retrieve(EnableTool{!m_muonCalibrator.empty()}));
53
54 m_logger = makeActsAthenaLogger(this, "Gx2fRefit");
55 if (!m_doStraightLine){
56 // Fitter
57 CurvedPropagator_t::Stepper stepper{std::make_shared<ATLASMagneticFieldWrapper>()};
58 Acts::Navigator::Config navConfig{m_trackingGeometryTool->trackingGeometry()};
59 Acts::Navigator navigator(std::move(navConfig), logger().cloneWithSuffix("Navigator"));
60 CurvedPropagator_t propagator{stepper, std::move(navigator), logger().cloneWithSuffix("Prop")};
61
62 m_fitter = std::make_unique<CurvedFitter_t>(std::move(propagator),
63 logger().cloneWithSuffix("GlobalChiSquareFitter"));
64 } else {
65 Acts::StraightLineStepper stepper{};
66 Acts::Navigator::Config navConfig{m_trackingGeometryTool->trackingGeometry()};
67 Acts::Navigator navigator(std::move(navConfig), logger().cloneWithSuffix("Navigator"));
68 StraightPropagator_t propagator{stepper, std::move(navigator), logger().cloneWithSuffix("Prop")};
69
70 m_slFitter = std::make_unique<StraightFitter_t>(std::move(propagator),
71 logger().cloneWithSuffix("GlobalChiSquareFitter"));
72 }
73
74
75 m_outlierFinder.StateChiSquaredPerNumberDoFCut = m_option_outlierChi2Cut;
76
77 Gx2FitterExtension_t extensionTemplate{};
78 extensionTemplate.outlierFinder.connect<&detail::FitterHelperFunctions::ATLASOutlierFinder::operator()
81
83 {
84 m_trkMeasCalibrator = detail::TrkMeasurementCalibrator{};
85 m_trkMeasSurfAcc = detail::TrkMeasSurfaceAccessor{m_geometryConvTool.get()};
86
88 configureMe = extensionTemplate;
90 configureMe.surfaceAccessor.connect<&detail::TrkMeasSurfaceAccessor::operator()>(&m_trkMeasSurfAcc);
91 }
93 {
94 m_prdCalibrator = detail::TrkPrepRawDataCalibrator{m_geometryConvTool.get(), m_ROTcreator.get()};
95 m_prdSurfaceAcc = detail::TrkPrepRawDataSurfaceAcc{m_geometryConvTool.get()};
97 configureMe = extensionTemplate;
99 configureMe.surfaceAccessor.connect<&detail::TrkPrepRawDataSurfaceAcc::operator()>(&m_prdSurfaceAcc);
100 }
101 {
102 m_unalibMeasSurfAcc = detail::xAODUncalibMeasSurfAcc{m_trackingGeometryTool.get()};
105 configureMe = extensionTemplate;
106 configureMe.surfaceAccessor.connect<&detail::xAODUncalibMeasSurfAcc::operator()>(&m_unalibMeasSurfAcc);
110 using enum xAOD::UncalibMeasType;
111 if (m_muonCalibrator.isEnabled()) {
114 }
115 }
116 for (const auto idType: {PixelClusterType, StripClusterType, Other, HGTDClusterType}) {
118 }
119
120 }
121 return StatusCode::SUCCESS;
122}
#define ATH_CHECK
Evaluate an expression and check for errors.
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
Gaudi::Property< double > m_option_outlierChi2Cut
Chi2 cut used by the outlier finder.
std::unique_ptr< const Acts::Logger > m_logger
logging instance
detail::TrkMeasSurfaceAccessor m_trkMeasSurfAcc
Surface accessor delegate for Trk::MeasurementBase objects.
detail::TrkPrepRawDataCalibrator m_prdCalibrator
Calibrator of the uncalibrated Trk::PrepRawData objects to RIO_OnTrack objects.
Acts::Propagator< Acts::StraightLineStepper, Acts::Navigator > StraightPropagator_t
Type erased track fitter function.
const Acts::Logger & logger() const
Private access to the logger.
ToolHandle< MuonR4::ISpacePointCalibrator > m_muonCalibrator
Acts::Experimental::Gx2FitterExtensions< MutableTrackStateBackend > Gx2FitterExtension_t
Abbrivation of the fitter extensions.
detail::FitterHelperFunctions::ATLASOutlierFinder m_outlierFinder
detail::TrkPrepRawDataSurfaceAcc m_prdSurfaceAcc
Surface accessor delegate for Trk::PrepRawData objects.
ToolHandle< Trk::IRIO_OnTrackCreator > m_ROTcreator
detail::TrkMeasurementCalibrator m_trkMeasCalibrator
Pass through calibrator of the Trk::MeasurementBase objects from the TrackState container.
detail::xAODUncalibMeasSurfAcc m_unalibMeasSurfAcc
Surface accessor delegate for xAOD::UncalibratedMeasurement objects.
Acts::Propagator< Acts::EigenStepper<>, Acts::Navigator > CurvedPropagator_t
Gaudi::Property< bool > m_doStraightLine
Option to toggle whether a straight line fitter shall be used.
detail::xAODUncalibMeasCalibrator m_uncalibMeasCalibrator
Calibrator for the uncalibrated xAOD::UnCalibratedMeasurement objects.
void calibrate(const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, TrackStateProxy state) const
static OnTrackCalibrator NoCalibration(const ActsTrk::ITrackingGeometryTool *trackGeoTool)
void calibrate(const Acts::GeometryContext &gctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &sl, proxy_t trackState) const
Calibrator delegate implementation to calibrate the ActsTrk fit from Trk::MeasurementBase objects.
void calibrate(const Acts::GeometryContext &gctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &sl, proxy_t trackState) const
Calibrator delegate implementation to calibrate the ActsTrk fit from Trk::PrepRawData objects.
void calibrate(const Acts::GeometryContext &gctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &sl, const MutableTrackStateBackend::TrackStateProxy trackState) const
: Interface method for the Acts fitter to calibrate the trajectory track states from the source link ...
virtual void calibrateSourceLink(const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, ActsTrk::MutableTrackStateBackend::TrackStateProxy state) const =0
Function that's hooked to the calibration delegate of the implemented Acts fitters.
Acts::Result< void > gainMatrixUpdate(const Acts::GeometryContext &gctx, typename trajectory_t::TrackStateProxy trackState, const Acts::Logger &logger)
UncalibMeasType
Define the type of the uncalibrated measurement.

◆ logger()

const Acts::Logger & ActsTrk::GlobalChiSquareFitterTool::logger ( ) const
inlineprivate

Private access to the logger.

Definition at line 242 of file GlobalChiSquareFitterTool.h.

242{ return *m_logger; }

Member Data Documentation

◆ m_ATLASConverterTool

ToolHandle<ITrackConverterTool> ActsTrk::GlobalChiSquareFitterTool::m_ATLASConverterTool {this, "ATLASConverterTool", ""}
private

Definition at line 191 of file GlobalChiSquareFitterTool.h.

191{this, "ATLASConverterTool", ""};

◆ m_doJacobianCorr

Gaudi::Property<bool> ActsTrk::GlobalChiSquareFitterTool::m_doJacobianCorr {this, "DoFreeToBoundCorrection", false }
private

Account for non linear effects from free -> bound jacobian.

Definition at line 212 of file GlobalChiSquareFitterTool.h.

212{this, "DoFreeToBoundCorrection", false };

◆ m_doReFitFromPRD

Gaudi::Property<bool> ActsTrk::GlobalChiSquareFitterTool::m_doReFitFromPRD {this, "DoReFitFromPRD", false}
private

Convert the PRD to a ROT during the calibration.

Definition at line 208 of file GlobalChiSquareFitterTool.h.

208{this, "DoReFitFromPRD", false};

◆ m_doStraightLine

Gaudi::Property<bool> ActsTrk::GlobalChiSquareFitterTool::m_doStraightLine {this, "DoStraightLine" , false}
private

Option to toggle whether a straight line fitter shall be used.

Definition at line 210 of file GlobalChiSquareFitterTool.h.

210{this, "DoStraightLine" , false};

◆ m_extrapolationTool

ToolHandle<IExtrapolationTool> ActsTrk::GlobalChiSquareFitterTool::m_extrapolationTool {this, "ExtrapolationTool", ""}
private

Definition at line 188 of file GlobalChiSquareFitterTool.h.

188{this, "ExtrapolationTool", ""};

◆ m_fitter

std::unique_ptr<CurvedFitter_t> ActsTrk::GlobalChiSquareFitterTool::m_fitter {nullptr}
private

The underlying curved Acts fitter.

Definition at line 235 of file GlobalChiSquareFitterTool.h.

235{nullptr};

◆ m_geometryConvTool

PublicToolHandle<IGeometryRealmConvTool> ActsTrk::GlobalChiSquareFitterTool::m_geometryConvTool {this, "GeometryRealmConvTool", ""}
private

Definition at line 190 of file GlobalChiSquareFitterTool.h.

190{this, "GeometryRealmConvTool", ""};

◆ m_gx2fExtensions

std::array<Gx2FitterExtension_t, s_nExtensions> ActsTrk::GlobalChiSquareFitterTool::m_gx2fExtensions {}
private

Definition at line 233 of file GlobalChiSquareFitterTool.h.

233{};

◆ m_idCalibrator

xAODItkCalibrator_t ActsTrk::GlobalChiSquareFitterTool::m_idCalibrator {}
private

Definition at line 229 of file GlobalChiSquareFitterTool.h.

229{};

◆ m_logger

std::unique_ptr<const Acts::Logger> ActsTrk::GlobalChiSquareFitterTool::m_logger
private

logging instance

Definition at line 245 of file GlobalChiSquareFitterTool.h.

◆ m_muonCalibrator

ToolHandle<MuonR4::ISpacePointCalibrator> ActsTrk::GlobalChiSquareFitterTool::m_muonCalibrator {this, "MuonCalibrationTool", ""}
private

Definition at line 193 of file GlobalChiSquareFitterTool.h.

193{this, "MuonCalibrationTool", ""};

◆ m_nIterMax

Gaudi::Property<unsigned> ActsTrk::GlobalChiSquareFitterTool::m_nIterMax {this, "MaxIterations", 5}
private

Number of iterations a fit may take.

Definition at line 214 of file GlobalChiSquareFitterTool.h.

214{this, "MaxIterations", 5};

◆ m_option_includeELoss

Gaudi::Property<bool> ActsTrk::GlobalChiSquareFitterTool::m_option_includeELoss {this, "IncludeELoss", true}
private

Consider particle's energy loss in the fit.

Definition at line 204 of file GlobalChiSquareFitterTool.h.

204{this, "IncludeELoss", true};

◆ m_option_includeScat

Gaudi::Property<bool> ActsTrk::GlobalChiSquareFitterTool::m_option_includeScat {this, "IncludeScattering", true}
private

Consider multiple scattering of the particle.

Definition at line 206 of file GlobalChiSquareFitterTool.h.

206{this, "IncludeScattering", true};

◆ m_option_maxNavSurfaces

Gaudi::Property<unsigned> ActsTrk::GlobalChiSquareFitterTool::m_option_maxNavSurfaces {this, "MaxSurfacesPerNavStep", 100}
private

Number of maximum surfaces to be tried before the navigrator aborts.

Definition at line 202 of file GlobalChiSquareFitterTool.h.

202{this, "MaxSurfacesPerNavStep", 100};

◆ m_option_maxPropagationStep

Gaudi::Property<unsigned> ActsTrk::GlobalChiSquareFitterTool::m_option_maxPropagationStep {this, "MaxPropagationStep", 5000}
private

Maximum number of steps per propagation call.

Definition at line 200 of file GlobalChiSquareFitterTool.h.

200{this, "MaxPropagationStep", 5000};

◆ m_option_outlierChi2Cut

Gaudi::Property<double> ActsTrk::GlobalChiSquareFitterTool::m_option_outlierChi2Cut {this, "OutlierChi2Cut", 12.5}
private

Chi2 cut used by the outlier finder.

Definition at line 198 of file GlobalChiSquareFitterTool.h.

198{this, "OutlierChi2Cut", 12.5};

◆ m_outlierFinder

detail::FitterHelperFunctions::ATLASOutlierFinder ActsTrk::GlobalChiSquareFitterTool::m_outlierFinder {0}
private

Definition at line 239 of file GlobalChiSquareFitterTool.h.

239{0};

◆ m_prdCalibrator

detail::TrkPrepRawDataCalibrator ActsTrk::GlobalChiSquareFitterTool::m_prdCalibrator {}
private

Calibrator of the uncalibrated Trk::PrepRawData objects to RIO_OnTrack objects.

Definition at line 218 of file GlobalChiSquareFitterTool.h.

218{};

◆ m_prdSurfaceAcc

detail::TrkPrepRawDataSurfaceAcc ActsTrk::GlobalChiSquareFitterTool::m_prdSurfaceAcc {}
private

Surface accessor delegate for Trk::PrepRawData objects.

Definition at line 222 of file GlobalChiSquareFitterTool.h.

222{};

◆ m_ROTcreator

ToolHandle<Trk::IRIO_OnTrackCreator> ActsTrk::GlobalChiSquareFitterTool::m_ROTcreator {this, "RotCreatorTool", ""}
private

Definition at line 195 of file GlobalChiSquareFitterTool.h.

195{this, "RotCreatorTool", ""};

◆ m_slFitter

std::unique_ptr<StraightFitter_t> ActsTrk::GlobalChiSquareFitterTool::m_slFitter {nullptr}
private

The underlying straight line Acts fitter.

Definition at line 237 of file GlobalChiSquareFitterTool.h.

237{nullptr};

◆ m_trackingGeometryTool

PublicToolHandle<ITrackingGeometryTool> ActsTrk::GlobalChiSquareFitterTool::m_trackingGeometryTool {this, "TrackingGeometryTool", ""}
private

Definition at line 189 of file GlobalChiSquareFitterTool.h.

189{this, "TrackingGeometryTool", ""};

◆ m_trkMeasCalibrator

detail::TrkMeasurementCalibrator ActsTrk::GlobalChiSquareFitterTool::m_trkMeasCalibrator {}
private

Pass through calibrator of the Trk::MeasurementBase objects from the TrackState container.

Definition at line 216 of file GlobalChiSquareFitterTool.h.

216{};

◆ m_trkMeasSurfAcc

detail::TrkMeasSurfaceAccessor ActsTrk::GlobalChiSquareFitterTool::m_trkMeasSurfAcc {}
private

Surface accessor delegate for Trk::MeasurementBase objects.

Definition at line 220 of file GlobalChiSquareFitterTool.h.

220{};

◆ m_unalibMeasSurfAcc

detail::xAODUncalibMeasSurfAcc ActsTrk::GlobalChiSquareFitterTool::m_unalibMeasSurfAcc {}
private

Surface accessor delegate for xAOD::UncalibratedMeasurement objects.

Definition at line 224 of file GlobalChiSquareFitterTool.h.

224{};

◆ m_uncalibMeasCalibrator

detail::xAODUncalibMeasCalibrator ActsTrk::GlobalChiSquareFitterTool::m_uncalibMeasCalibrator {}
private

Calibrator for the uncalibrated xAOD::UnCalibratedMeasurement objects.

Definition at line 226 of file GlobalChiSquareFitterTool.h.

226{};

◆ s_nExtensions

unsigned ActsTrk::GlobalChiSquareFitterTool::s_nExtensions = static_cast<unsigned>(detail::SourceLinkType::nTypes)
staticconstexprprivate

Array of all configured fitter extensions depending on which source link type is in use.

Definition at line 232 of file GlobalChiSquareFitterTool.h.


The documentation for this class was generated from the following files: