ATLAS Offline Software
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
ActsTrk::KalmanFitterTool Class Reference

#include <KalmanFitterTool.h>

Inheritance diagram for ActsTrk::KalmanFitterTool:
Collaboration diagram for ActsTrk::KalmanFitterTool:

Public Member Functions

virtual ~KalmanFitterTool ()=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 More...
 
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 More...
 
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 More...
 
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 More...
 
virtual std::unique_ptr< ActsTrk::MutableTrackContainerfit (const std::vector< ActsTrk::ATLASUncalibSourceLink > &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 More...
 
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 More...
 
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 More...
 
virtual std::unique_ptr< ActsTrk::MutableTrackContainerfit (const ActsTrk::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. More...
 
virtual StatusCode fit (const EventContext &ctx, const ActsTrk::TrackContainer::ConstTrackProxy &track, ActsTrk::MutableTrackContainer &trackContainer, const Acts::PerigeeSurface &pSurface) const override
 

Private Types

using FitterExtension_t = Acts::KalmanFitterExtensions< MutableTrackStateBackend >
 Abbrivation of the fitter extensions. More...
 
using FitterOptions_t = Acts::KalmanFitterOptions< MutableTrackStateBackend >
 Abbrivation of the configuration to launch the fit
More...
 
using xAODUnCalibrator_t = detail::OnTrackCalibrator< ActsTrk::MutableTrackStateBackend >
 Calibrator of the uncalibrated measurements. More...
 
using Fitter = Acts::KalmanFitter< Acts::Propagator< Acts::SympyStepper, Acts::Navigator >, ActsTrk::MutableTrackStateBackend >
 Type erased track fitter function. More...
 
using DirectFitter = Acts::KalmanFitter< Acts::Propagator< Acts::SympyStepper, Acts::DirectNavigator >, ActsTrk::MutableTrackStateBackend >
 

Private Member Functions

FitterOptions_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. More...
 
const Acts::Logger & logger () const
 Private access to the logger. More...
 

Private Attributes

ToolHandle< IActsExtrapolationToolm_extrapolationTool {this, "ExtrapolationTool", ""}
 
PublicToolHandle< ActsTrk::ITrackingGeometryToolm_trackingGeometryTool {this, "TrackingGeometryTool", ""}
 
ToolHandle< ActsTrk::IActsToTrkConverterToolm_ATLASConverterTool {this, "ATLASConverterTool", ""}
 
Gaudi::Property< double > m_option_outlierChi2Cut
 
Gaudi::Property< double > m_option_ReverseFilteringPt
 
Gaudi::Property< int > m_option_maxPropagationStep
 
Gaudi::Property< double > m_option_seedCovarianceScale
 
detail::TrkMeasurementCalibrator m_trkCalibrator {}
 Calibrator for the Trk::MeasurementBase track states (legacy EDM) More...
 
detail::TrkMeasSurfaceAccessor m_trkSurfAcc {}
 Accessor to fetch surfaces from the Trk::MeasurementBase track states (legacy EDM) More...
 
detail::TrkPrepRawDataCalibrator m_prdCalibrator {}
 Calibrator for the Trk::PrepRawData track states (legacy EDM) More...
 
detail::TrkPrepRawDataSurfaceAcc m_prdSurfAcc {}
 Surface accessor for the Trk::PrepRawData track states (legacy EDM) More...
 
detail::xAODUncalibMeasSurfAcc m_unalibMeasSurfAcc {}
 Accessor to fetch surfaces from the xAOD::UncalibratedMeasurements (Phase-II EDM) More...
 
xAODUnCalibrator_t m_uncalibMeasCalibrator {}
 
std::unique_ptr< Fitterm_fitter {nullptr}
 
std::unique_ptr< DirectFitterm_directFitter {nullptr}
 
std::array< FitterExtension_t, s_nExtensionsm_kfExtensions {}
 
ActsTrk::detail::FitterHelperFunctions::ATLASOutlierFinder m_outlierFinder {0}
 
ActsTrk::detail::FitterHelperFunctions::ReverseFilteringLogic m_reverseFilteringLogic {0}
 
std::unique_ptr< const Acts::Logger > m_logger
 logging instance More...
 
ToolHandle< Trk::IRIO_OnTrackCreatorm_ROTcreator {this, "RotCreatorTool", ""}
 
Gaudi::Property< bool > m_doReFitFromPRD {this, "DoReFitFromPRD", false, "Do Refit From PRD instead of ROT"}
 

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. More...
 

Detailed Description

Definition at line 60 of file KalmanFitterTool.h.

Member Typedef Documentation

◆ DirectFitter

using ActsTrk::KalmanFitterTool::DirectFitter = Acts::KalmanFitter<Acts::Propagator<Acts::SympyStepper, Acts::DirectNavigator>, ActsTrk::MutableTrackStateBackend>
private

Definition at line 201 of file KalmanFitterTool.h.

◆ Fitter

using ActsTrk::KalmanFitterTool::Fitter = Acts::KalmanFitter<Acts::Propagator<Acts::SympyStepper, Acts::Navigator>, ActsTrk::MutableTrackStateBackend>
private

Type erased track fitter function.

Definition at line 198 of file KalmanFitterTool.h.

◆ FitterExtension_t

using ActsTrk::KalmanFitterTool::FitterExtension_t = Acts::KalmanFitterExtensions<MutableTrackStateBackend>
private

Abbrivation of the fitter extensions.

Definition at line 151 of file KalmanFitterTool.h.

◆ FitterOptions_t

using ActsTrk::KalmanFitterTool::FitterOptions_t = Acts::KalmanFitterOptions<MutableTrackStateBackend>
private

Abbrivation of the configuration to launch the fit

Definition at line 153 of file KalmanFitterTool.h.

◆ xAODUnCalibrator_t

Calibrator of the uncalibrated measurements.

Definition at line 193 of file KalmanFitterTool.h.

Constructor & Destructor Documentation

◆ ~KalmanFitterTool()

virtual ActsTrk::KalmanFitterTool::~KalmanFitterTool ( )
virtualdefault

Member Function Documentation

◆ configureFit()

KalmanFitterTool::FitterOptions_t ActsTrk::KalmanFitterTool::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 136 of file KalmanFitterTool.cxx.

140  {
141 
142 
143  const auto& kfExtensions = m_kfExtensions[static_cast<int>(slType)];
144 
145  Acts::PropagatorPlainOptions propagationOption(tgContext, mfContext);
146  propagationOption.maxSteps = m_option_maxPropagationStep;
147  // Set the KalmanFitter options
148  return FitterOptions_t{tgContext, mfContext, calContext,
149  kfExtensions, propagationOption,
150  surface};
151 }

◆ fit() [1/9]

std::unique_ptr< MutableTrackContainer > ActsTrk::KalmanFitterTool::fit ( const ActsTrk::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 528 of file KalmanFitterTool.cxx.

533  {
534 
535  std::vector<ATLASUncalibSourceLink> sourceLinks;
536  sourceLinks.reserve(6);
537 
538  const auto& sps = seed.sp();
539  for (const xAOD::SpacePoint* sp : sps) {
540  const auto& measurements = sp->measurements();
541  for (const xAOD::UncalibratedMeasurement *umeas : measurements) {
542  sourceLinks.emplace_back(umeas);
543  }
544  }
545  return fit(sourceLinks, initialParams, tgContext, mfContext, calContext, &targetSurface);
546 }

◆ fit() [2/9]

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

◆ fit() [3/9]

std::unique_ptr< Trk::Track > ActsTrk::KalmanFitterTool::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 223 of file KalmanFitterTool.cxx.

227  {
228 
229  // protection against not having measurements on the input track
230  if (inputMeasSet.size() < 2) {
231  ATH_MSG_DEBUG("called to refit empty measurement set or a measurement set with too little information, reject fit");
232  return nullptr;
233  }
234 
235  // Construct a perigee surface as the target surface
236  auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
237 
238  const Acts::GeometryContext tgContext = m_trackingGeometryTool->getGeometryContext(ctx).context();
239  const Acts::MagneticFieldContext mfContext = m_extrapolationTool->getMagneticFieldContext(ctx);
240  const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
241 
242  Acts::KalmanFitterOptions kfOptions = configureFit(tgContext, mfContext, calContext, pSurface.get(),
244 
245  std::vector<Acts::SourceLink> trackSourceLinks;
246  m_ATLASConverterTool->toSourceLinks(inputMeasSet, trackSourceLinks);
247  // protection against error in the conversion from Atlas masurement to Acts source link
248  if (trackSourceLinks.empty()) {
249  ATH_MSG_DEBUG("input contain measurement but no source link created, probable issue with the converter, reject fit ");
250  return nullptr;
251  }
252 
253  const auto initialParams = m_ATLASConverterTool->trkTrackParametersToActsParameters(estimatedStartParameters, tgContext);
254 
255  ActsTrk::MutableTrackBackend trackContainerBackEnd;
256  ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
257  ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
258  std::move(multiTrajBackEnd));
259 
260  // Perform the fit
261  auto result = m_fitter->fit(trackSourceLinks.begin(), trackSourceLinks.end(),
262  initialParams, kfOptions, tracks);
263  return m_ATLASConverterTool->convertFitResult(ctx, tracks, result,
266 }

◆ fit() [4/9]

std::unique_ptr< Trk::Track > ActsTrk::KalmanFitterTool::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 271 of file KalmanFitterTool.cxx.

275  {
276  ATH_MSG_DEBUG("--> entering KalmanFitter::fit(PRDS,TP,)");
277 
278  // Construct a perigee surface as the target surface
279  auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
280 
281  const Acts::GeometryContext tgContext = m_trackingGeometryTool->getGeometryContext(ctx).context();
282  const Acts::MagneticFieldContext mfContext = m_extrapolationTool->getMagneticFieldContext(ctx);
283  const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
284 
285  Acts::KalmanFitterOptions kfOptions = configureFit(tgContext, mfContext, calContext, pSurface.get(),
287 
288  std::vector<Acts::SourceLink> trackSourceLinks;
289  m_ATLASConverterTool->toSourceLinks(inputPRDColl, trackSourceLinks);
290  // protection against error in the conversion from Atlas masurement to Acts source link
291  if (trackSourceLinks.empty()) {
292  ATH_MSG_WARNING("input contain measurement but no source link created, probable issue with the converter, reject fit ");
293  return nullptr;
294  }
295  //
296 
297  const auto initialParams = m_ATLASConverterTool->trkTrackParametersToActsParameters(estimatedStartParameters, tgContext);
298 
299  ActsTrk::MutableTrackBackend trackContainerBackEnd;
300  ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
301  ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
302  std::move(multiTrajBackEnd));
303 
304  // Perform the fit
305  auto result = m_fitter->fit(trackSourceLinks.begin(), trackSourceLinks.end(),
306  initialParams, kfOptions, tracks);
307  return m_ATLASConverterTool->convertFitResult(ctx, tracks, result,
310 }

◆ fit() [5/9]

std::unique_ptr< Trk::Track > ActsTrk::KalmanFitterTool::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 372 of file KalmanFitterTool.cxx.

377 {
378  ATH_MSG_VERBOSE ("--> enter KalmanFitter::fit(Track,Meas'BaseSet,,)");
379  ATH_MSG_VERBOSE (" with Track from author = " << inputTrack.info().dumpInfo());
380 
381  // protection, if empty MeasurementSet
382  if (addMeasColl.empty()) {
383  ATH_MSG_DEBUG( "client tries to add an empty MeasurementSet to the track fit." );
384  return fit(ctx,inputTrack);
385  }
386 
387  // protection against not having measurements on the input track
388  if (!inputTrack.measurementsOnTrack() || (inputTrack.measurementsOnTrack()->size() < 2 && addMeasColl.empty())) {
389  ATH_MSG_DEBUG("called to refit empty track or track with too little information, reject fit");
390  return nullptr;
391  }
392 
393  // protection against not having track parameters on the input track
394  if (!inputTrack.trackParameters() || inputTrack.trackParameters()->empty()) {
395  ATH_MSG_DEBUG("input fails to provide track parameters for seeding the KF, reject fit");
396  return nullptr;
397  }
398 
399 
400  // Construct a perigee surface as the target surface
401  auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
402 
403  const Acts::GeometryContext tgContext = m_trackingGeometryTool->getGeometryContext(ctx).context();
404  const Acts::MagneticFieldContext mfContext = m_extrapolationTool->getMagneticFieldContext(ctx);
405  const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
406 
407  // Set the KalmanFitter options
408  Acts::KalmanFitterOptions kfOptions = configureFit(tgContext, mfContext, calContext, pSurface.get(),
410 
411  std::vector<Acts::SourceLink> trackSourceLinks = m_ATLASConverterTool->trkTrackToSourceLinks(inputTrack);
412  m_ATLASConverterTool->toSourceLinks(addMeasColl, trackSourceLinks);
413 
414  // protection against error in the conversion from Atlas masurement to Acts source link
415  if (trackSourceLinks.empty()) {
416  ATH_MSG_DEBUG("input contain measurement but no source link created, probable issue with the converter, reject fit ");
417  return nullptr;
418  }
419  const auto initialParams = m_ATLASConverterTool->trkTrackParametersToActsParameters(*(inputTrack.perigeeParameters()), tgContext);
420 
421  ActsTrk::MutableTrackBackend trackContainerBackEnd;
422  ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
423  ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
424  std::move(multiTrajBackEnd));
425 
426  // Perform the fit
427  auto result = m_fitter->fit(trackSourceLinks.begin(), trackSourceLinks.end(),
428  initialParams, kfOptions, tracks);
429  return m_ATLASConverterTool->convertFitResult(ctx, tracks, result,
432 }

◆ fit() [6/9]

std::unique_ptr< Trk::Track > ActsTrk::KalmanFitterTool::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 437 of file KalmanFitterTool.cxx.

442 {
443  ATH_MSG_DEBUG("Fit of Track with additional PrepRawDataSet not yet implemented");
444  return nullptr;
445 }

◆ fit() [7/9]

std::unique_ptr< Trk::Track > ActsTrk::KalmanFitterTool::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 155 of file KalmanFitterTool.cxx.

158  {
159 
160  ATH_MSG_VERBOSE ("--> enter KalmanFitter::fit(Track,,) with Track from author = "
161  << inputTrack.info().dumpInfo()<<", "<<hypothesis);
162 
163  // protection against not having measurements on the input track
164  if (!inputTrack.measurementsOnTrack() || inputTrack.measurementsOnTrack()->size() < 2) {
165  ATH_MSG_DEBUG("called to refit empty track or track with too little information, reject fit");
166  return nullptr;
167  }
168 
169  // protection against not having track parameters on the input track
170  if (!inputTrack.trackParameters() || inputTrack.trackParameters()->empty()) {
171  ATH_MSG_DEBUG("input fails to provide track parameters for seeding the KF, reject fit");
172  return nullptr;
173  }
174 
175  // Construct a perigee surface as the target surface
176  auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
177 
178  const Acts::GeometryContext tgContext = m_trackingGeometryTool->getGeometryContext(ctx).context();
179  const Acts::MagneticFieldContext mfContext = m_extrapolationTool->getMagneticFieldContext(ctx);
180  const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
181  // Set the KalmanFitter options
182  Acts::KalmanFitterOptions kfOptions = configureFit(tgContext, mfContext, calContext, pSurface.get(),
184 
185  std::vector<Acts::SourceLink> trackSourceLinks = m_ATLASConverterTool->trkTrackToSourceLinks(inputTrack);
186  // protection against error in the conversion from Atlas masurement to Acts source link
187  if (trackSourceLinks.empty()) {
188  ATH_MSG_DEBUG("input contain measurement but no source link created, probable issue with the converter, reject fit ");
189  return nullptr;
190  }
191 
192  const auto initialParams = m_ATLASConverterTool->trkTrackParametersToActsParameters((*inputTrack.perigeeParameters()), tgContext);
193 
194  // The covariance from already fitted track are too small and would result an incorect smoothing.
195  // We scale up the input covaraiance to avoid this.
196  Acts::BoundSquareMatrix scaledCov = Acts::BoundSquareMatrix::Identity();
197  for (int i=0; i<6; ++i) {
199  (scaledCov)(i,i) = scale * initialParams.covariance().value()(i,i);
200  }
201 
202  const Acts::BoundTrackParameters scaledInitialParams(initialParams.referenceSurface().getSharedPtr(),
203  initialParams.parameters(),
204  scaledCov,
206 
207  ActsTrk::MutableTrackBackend trackContainerBackEnd;
208  ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
209  ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
210  std::move(multiTrajBackEnd));
211 
212  // Perform the fit
213  auto result = m_fitter->fit(trackSourceLinks.begin(), trackSourceLinks.end(),
214  scaledInitialParams, kfOptions, tracks);
215  return m_ATLASConverterTool->convertFitResult(ctx, tracks, result,
218 }

◆ fit() [8/9]

std::unique_ptr< Trk::Track > ActsTrk::KalmanFitterTool::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 450 of file KalmanFitterTool.cxx.

455 {
456  ATH_MSG_VERBOSE ("--> enter KalmanFitter::fit(Track,Track,)");
457  ATH_MSG_VERBOSE (" with Tracks from #1 = " << intrk1.info().dumpInfo()
458  << " and #2 = " << intrk2.info().dumpInfo()<<", "<<hypothesis);
459 
460  // protection, if empty track2
461  if (!intrk2.measurementsOnTrack()) {
462  ATH_MSG_DEBUG( "input #2 is empty try to fit track 1 alone" );
463  return fit(ctx,intrk1);
464  }
465 
466  // protection, if empty track1
467  if (!intrk1.measurementsOnTrack()) {
468  ATH_MSG_DEBUG( "input #1 is empty try to fit track 2 alone" );
469  return fit(ctx,intrk2);
470  }
471 
472  // protection against not having track parameters on the input track
473  if (!intrk1.trackParameters() || intrk1.trackParameters()->empty()) {
474  ATH_MSG_DEBUG("input #1 fails to provide track parameters for seeding the KF, reject fit");
475  return nullptr;
476  }
477 
478  // Construct a perigee surface as the target surface
479  auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
480 
481  const Acts::GeometryContext tgContext = m_trackingGeometryTool->getGeometryContext(ctx).context();
482  const Acts::MagneticFieldContext mfContext = m_extrapolationTool->getMagneticFieldContext(ctx);
483  const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
484 
485  // Set the KalmanFitter options
486  Acts::KalmanFitterOptions kfOptions = configureFit(tgContext, mfContext, calContext, pSurface.get(),
488 
489  std::vector<Acts::SourceLink> trackSourceLinks = m_ATLASConverterTool->trkTrackToSourceLinks(intrk1);
490  std::vector<Acts::SourceLink> trackSourceLinks2 = m_ATLASConverterTool->trkTrackToSourceLinks(intrk2);
491  trackSourceLinks.insert(trackSourceLinks.end(), std::make_move_iterator(trackSourceLinks2.begin()),
492  std::make_move_iterator(trackSourceLinks2.end()));
493  // protection against error in the conversion from Atlas masurement to Acts source link
494  if (trackSourceLinks.empty()) {
495  ATH_MSG_DEBUG("input contain measurement but no source link created, probable issue with the converter, reject fit ");
496  return nullptr;
497  }
498 
499  const auto &initialParams = m_ATLASConverterTool->trkTrackParametersToActsParameters(*(intrk1.perigeeParameters()), tgContext);
500 
501  // The covariance from already fitted track are too small and would result an incorect smoothing.
502  // We scale up the input covaraiance to avoid this.
503  Acts::BoundSquareMatrix scaledCov = Acts::BoundSquareMatrix::Identity();
504  for (int i=0; i<6; ++i) {
506  (scaledCov)(i,i) = scale * initialParams.covariance().value()(i,i);
507  }
508 
509  const Acts::BoundTrackParameters scaledInitialParams(initialParams.referenceSurface().getSharedPtr(),
510  initialParams.parameters(),
511  scaledCov, Acts::ParticleHypothesis::pion());
512 
513 
514  ActsTrk::MutableTrackBackend trackContainerBackEnd;
515  ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
516  ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
517  std::move(multiTrajBackEnd));
518 
519  // Perform the fit
520  auto result = m_fitter->fit(trackSourceLinks.begin(), trackSourceLinks.end(),
521  scaledInitialParams, kfOptions, tracks);
522  return m_ATLASConverterTool->convertFitResult(ctx, tracks, result,
525 }

◆ fit() [9/9]

std::unique_ptr< MutableTrackContainer > ActsTrk::KalmanFitterTool::fit ( const std::vector< ActsTrk::ATLASUncalibSourceLink > &  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 315 of file KalmanFitterTool.cxx.

320  {
321  ATH_MSG_DEBUG("--> entering KalmanFitter::fit(xAODMeasure...things,TP,)");
322 
323  std::vector<Acts::SourceLink> sourceLinks;
324  sourceLinks.reserve(clusterList.size());
325 
326  std::vector<const Acts::Surface*> surfaces;
327  surfaces.reserve(clusterList.size());
328 
329 
330  for (const ATLASUncalibSourceLink& el : clusterList) {
331  sourceLinks.emplace_back( el );
332  surfaces.push_back(m_unalibMeasSurfAcc.get(el));
333  }
334 
335  // Construct a perigee surface as the target surface if none is provided
336  std::shared_ptr<Acts::Surface> pSurface{nullptr};
337  if (!targetSurface){
338  pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
339  targetSurface = pSurface.get();
340  }
341 
342  // Set the KalmanFitter options
343 
344  Acts::KalmanFitterOptions kfOptions = configureFit(tgContext, mfContext, calContext, targetSurface,
346 
347  ActsTrk::MutableTrackBackend trackContainerBackEnd;
348  ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
349  std::unique_ptr< MutableTrackContainer > tracks = std::make_unique< MutableTrackContainer >( std::move(trackContainerBackEnd),
350  std::move(multiTrajBackEnd) );
351 
352 
353  auto result = m_directFitter->fit(sourceLinks.begin(),
354  sourceLinks.end(),
355  initialParams,
356  kfOptions,
357  surfaces,
358  *tracks.get());
359 
360  if (not result.ok()) {
361  ATH_MSG_VERBOSE("Kalman Fitter on Seed has failed");
362  return nullptr;
363  }
364  return tracks;
365 }

◆ initialize()

StatusCode ActsTrk::KalmanFitterTool::initialize ( )
overridevirtual

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

Configure the fit extensions for the Trk::PrepRawData fits

Configure the fit extensions for the uncalibrated measurement fits

Definition at line 58 of file KalmanFitterTool.cxx.

58  {
59 
60  ATH_MSG_DEBUG(name() << "::" << __FUNCTION__);
62  ATH_CHECK(m_extrapolationTool.retrieve());
63  ATH_CHECK(m_ATLASConverterTool.retrieve());
64  ATH_CHECK(m_ROTcreator.retrieve(EnableTool{m_doReFitFromPRD}));
65  m_logger = makeActsAthenaLogger(this, "KalmanRefit");
66 
67  auto field = std::make_shared<ATLASMagneticFieldWrapper>();
68 
69  // Fitter
70  Acts::SympyStepper stepper(field);
71  Acts::Navigator navigator( Acts::Navigator::Config{ m_trackingGeometryTool->trackingGeometry() },
72  logger().cloneWithSuffix("Navigator"));
73  Acts::Propagator<Acts::SympyStepper, Acts::Navigator> propagator(stepper,
74  std::move(navigator),
75  logger().cloneWithSuffix("Prop"));
76 
77  m_fitter = std::make_unique<Fitter>(std::move(propagator),
78  logger().cloneWithSuffix("KalmanFitter"));
79 
80  // Direct Fitter
81  Acts::DirectNavigator directNavigator( logger().cloneWithSuffix("DirectNavigator") );
82  Acts::Propagator<Acts::SympyStepper, Acts::DirectNavigator> directPropagator(std::move(stepper),
83  std::move(directNavigator),
84  logger().cloneWithSuffix("DirectPropagator"));
85 
86  m_directFitter = std::make_unique<DirectFitter>(std::move(directPropagator),
87  logger().cloneWithSuffix("DirectKalmanFitter"));
88 
90 
93 
94  FitterExtension_t extensionTemplate{};
95  extensionTemplate.outlierFinder.connect<&detail::FitterHelperFunctions::ATLASOutlierFinder::operator()<MutableTrackStateBackend>>(&m_outlierFinder);
96  extensionTemplate.reverseFilteringLogic.connect<&detail::FitterHelperFunctions::ReverseFilteringLogic::operator()<MutableTrackStateBackend>>(&m_reverseFilteringLogic);
97  extensionTemplate.updater.connect<&detail::FitterHelperFunctions::gainMatrixUpdate<MutableTrackStateBackend>>();
98  extensionTemplate.smoother.connect<&detail::FitterHelperFunctions::mbfSmoother<MutableTrackStateBackend>>();
99 
100  extensionTemplate.outlierFinder.connect<&detail::FitterHelperFunctions::ATLASOutlierFinder::operator()
102  extensionTemplate.updater.connect<&detail::FitterHelperFunctions::gainMatrixUpdate<MutableTrackStateBackend>>();
103 
105  {
106  m_trkSurfAcc = detail::TrkMeasSurfaceAccessor{m_ATLASConverterTool.get()};
107 
109  configureMe = extensionTemplate;
110  configureMe.calibrator.connect<&detail::TrkMeasurementCalibrator::calibrate<MutableTrackStateBackend>>(&m_trkCalibrator);
111  configureMe.surfaceAccessor.connect<&detail::TrkMeasSurfaceAccessor::operator()>(&m_trkSurfAcc);
112  }
114  {
115  m_prdCalibrator = detail::TrkPrepRawDataCalibrator{m_ATLASConverterTool.get(), m_ROTcreator.get()};
116  m_prdSurfAcc = detail::TrkPrepRawDataSurfaceAcc{m_ATLASConverterTool.get()};
118  configureMe = extensionTemplate;
119  configureMe.calibrator.connect<&detail::TrkPrepRawDataCalibrator::calibrate<MutableTrackStateBackend>>(&m_prdCalibrator);
120  configureMe.surfaceAccessor.connect<&detail::TrkPrepRawDataSurfaceAcc::operator()>(&m_prdSurfAcc);
121  }
123  {
124  m_unalibMeasSurfAcc = detail::xAODUncalibMeasSurfAcc{m_trackingGeometryTool.get()};
127  configureMe = extensionTemplate;
128  configureMe.surfaceAccessor.connect<&detail::xAODUncalibMeasSurfAcc::operator()>(&m_unalibMeasSurfAcc);
129  configureMe.calibrator.connect<&xAODUnCalibrator_t::calibrate>(&m_uncalibMeasCalibrator);
130  }
131  return StatusCode::SUCCESS;
132 }

◆ logger()

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

Private access to the logger.

Definition at line 212 of file KalmanFitterTool.h.

212  {
213  return *m_logger;
214  }

Member Data Documentation

◆ m_ATLASConverterTool

ToolHandle<ActsTrk::IActsToTrkConverterTool> ActsTrk::KalmanFitterTool::m_ATLASConverterTool {this, "ATLASConverterTool", ""}
private

Definition at line 171 of file KalmanFitterTool.h.

◆ m_directFitter

std::unique_ptr<DirectFitter> ActsTrk::KalmanFitterTool::m_directFitter {nullptr}
private

Definition at line 202 of file KalmanFitterTool.h.

◆ m_doReFitFromPRD

Gaudi::Property<bool> ActsTrk::KalmanFitterTool::m_doReFitFromPRD {this, "DoReFitFromPRD", false, "Do Refit From PRD instead of ROT"}
private

Definition at line 221 of file KalmanFitterTool.h.

◆ m_extrapolationTool

ToolHandle<IActsExtrapolationTool> ActsTrk::KalmanFitterTool::m_extrapolationTool {this, "ExtrapolationTool", ""}
private

Definition at line 169 of file KalmanFitterTool.h.

◆ m_fitter

std::unique_ptr<Fitter> ActsTrk::KalmanFitterTool::m_fitter {nullptr}
private

Definition at line 199 of file KalmanFitterTool.h.

◆ m_kfExtensions

std::array<FitterExtension_t, s_nExtensions> ActsTrk::KalmanFitterTool::m_kfExtensions {}
private

Definition at line 206 of file KalmanFitterTool.h.

◆ m_logger

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

logging instance

Definition at line 217 of file KalmanFitterTool.h.

◆ m_option_maxPropagationStep

Gaudi::Property< int > ActsTrk::KalmanFitterTool::m_option_maxPropagationStep
private
Initial value:
{this, "MaxPropagationStep", 5000,
"Maximum number of steps for one propagate call"}

Definition at line 177 of file KalmanFitterTool.h.

◆ m_option_outlierChi2Cut

Gaudi::Property< double > ActsTrk::KalmanFitterTool::m_option_outlierChi2Cut
private
Initial value:
{this, "OutlierChi2Cut", 12.5,
"Chi2 cut used by the outlier finder" }

Definition at line 173 of file KalmanFitterTool.h.

◆ m_option_ReverseFilteringPt

Gaudi::Property< double > ActsTrk::KalmanFitterTool::m_option_ReverseFilteringPt
private
Initial value:
{this, "ReverseFilteringPt", 1.0 * Acts::UnitConstants::GeV,
"Pt cut used for the ReverseFiltering logic"}

Definition at line 175 of file KalmanFitterTool.h.

◆ m_option_seedCovarianceScale

Gaudi::Property< double > ActsTrk::KalmanFitterTool::m_option_seedCovarianceScale
private
Initial value:
{this, "SeedCovarianceScale", 100.,
"Scale factor for the input seed covariance when doing refitting"}

Definition at line 179 of file KalmanFitterTool.h.

◆ m_outlierFinder

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

Definition at line 208 of file KalmanFitterTool.h.

◆ m_prdCalibrator

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

Calibrator for the Trk::PrepRawData track states (legacy EDM)

Definition at line 187 of file KalmanFitterTool.h.

◆ m_prdSurfAcc

detail::TrkPrepRawDataSurfaceAcc ActsTrk::KalmanFitterTool::m_prdSurfAcc {}
private

Surface accessor for the Trk::PrepRawData track states (legacy EDM)

Definition at line 189 of file KalmanFitterTool.h.

◆ m_reverseFilteringLogic

ActsTrk::detail::FitterHelperFunctions::ReverseFilteringLogic ActsTrk::KalmanFitterTool::m_reverseFilteringLogic {0}
private

Definition at line 209 of file KalmanFitterTool.h.

◆ m_ROTcreator

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

Definition at line 219 of file KalmanFitterTool.h.

◆ m_trackingGeometryTool

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

Definition at line 170 of file KalmanFitterTool.h.

◆ m_trkCalibrator

detail::TrkMeasurementCalibrator ActsTrk::KalmanFitterTool::m_trkCalibrator {}
private

Calibrator for the Trk::MeasurementBase track states (legacy EDM)

Definition at line 183 of file KalmanFitterTool.h.

◆ m_trkSurfAcc

detail::TrkMeasSurfaceAccessor ActsTrk::KalmanFitterTool::m_trkSurfAcc {}
private

Accessor to fetch surfaces from the Trk::MeasurementBase track states (legacy EDM)

Definition at line 185 of file KalmanFitterTool.h.

◆ m_unalibMeasSurfAcc

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

Accessor to fetch surfaces from the xAOD::UncalibratedMeasurements (Phase-II EDM)

Definition at line 191 of file KalmanFitterTool.h.

◆ m_uncalibMeasCalibrator

xAODUnCalibrator_t ActsTrk::KalmanFitterTool::m_uncalibMeasCalibrator {}
private

Definition at line 194 of file KalmanFitterTool.h.

◆ s_nExtensions

constexpr unsigned ActsTrk::KalmanFitterTool::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 205 of file KalmanFitterTool.h.


The documentation for this class was generated from the following files:
ActsTrk::getCalibrationContext
Acts::CalibrationContext getCalibrationContext(const EventContext &ctx)
The Acts::Calibration context is piped through the Acts fitters to (re)calibrate the Acts::SourceLink...
Definition: CalibrationContext.h:15
ActsTrk::detail::xAODUncalibMeasSurfAcc::get
const Acts::Surface * get(const xAOD::UncalibratedMeasurement *meas) const
Operator.
Definition: xAODUncalibMeasSurfAcc.cxx:19
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:18
ActsTrk::KalmanFitterTool::m_option_maxPropagationStep
Gaudi::Property< int > m_option_maxPropagationStep
Definition: KalmanFitterTool.h:177
get_generator_info.result
result
Definition: get_generator_info.py:21
ActsTrk::KalmanFitterTool::m_trackingGeometryTool
PublicToolHandle< ActsTrk::ITrackingGeometryTool > m_trackingGeometryTool
Definition: KalmanFitterTool.h:170
ActsTrk::KalmanFitterTool::logger
const Acts::Logger & logger() const
Private access to the logger.
Definition: KalmanFitterTool.h:212
ActsTrk::KalmanFitterTool::m_kfExtensions
std::array< FitterExtension_t, s_nExtensions > m_kfExtensions
Definition: KalmanFitterTool.h:206
ActsTrk::KalmanFitterTool::configureFit
FitterOptions_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.
Definition: KalmanFitterTool.cxx:136
ActsTrk::detail::Navigator
Acts::Navigator Navigator
Definition: Tracking/Acts/ActsTrackReconstruction/src/detail/Definitions.h:31
Trk::Track::info
const TrackInfo & info() const
Returns a const ref to info of a const tracks.
ActsTrk::MutableTrackBackend
Acts::VectorTrackContainer MutableTrackBackend
Definition: TrackContainer.h:15
ActsTrk::KalmanFitterTool::m_fitter
std::unique_ptr< Fitter > m_fitter
Definition: KalmanFitterTool.h:199
ActsTrk::detail::SourceLinkType::TrkPrepRawData
@ TrkPrepRawData
Calibrated Trk::MeasurementBase objects.
ActsTrk::MutableTrackContainer
Acts::TrackContainer< MutableTrackBackend, MutableTrackStateBackend, Acts::detail::ValueHolder > MutableTrackContainer
Definition: TrackContainer.h:26
xAOD::pion
@ pion
Definition: TrackingPrimitives.h:197
ActsTrk::detail::SourceLinkType::xAODUnCalibMeas
@ xAODUnCalibMeas
UnCalibrated Trk::PrepRawData objects.
xAOD::SpacePoint_v1
Definition: SpacePoint_v1.h:29
ActsTrk::KalmanFitterTool::m_ROTcreator
ToolHandle< Trk::IRIO_OnTrackCreator > m_ROTcreator
Definition: KalmanFitterTool.h:219
ActsTrk::KalmanFitterTool::FitterOptions_t
Acts::KalmanFitterOptions< MutableTrackStateBackend > FitterOptions_t
Abbrivation of the configuration to launch the fit
Definition: KalmanFitterTool.h:153
ReadOfcFromCool.field
field
Definition: ReadOfcFromCool.py:48
ActsTrk::detail::FitterHelperFunctions::ReverseFilteringLogic::momentumMax
double momentumMax
Definition: FitterHelperFunctions.h:90
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
ActsTrk::KalmanFitterTool::m_prdSurfAcc
detail::TrkPrepRawDataSurfaceAcc m_prdSurfAcc
Surface accessor for the Trk::PrepRawData track states (legacy EDM)
Definition: KalmanFitterTool.h:189
ActsTrk::KalmanFitterTool::m_directFitter
std::unique_ptr< DirectFitter > m_directFitter
Definition: KalmanFitterTool.h:202
ActsTrk::KalmanFitterTool::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
Definition: KalmanFitterTool.cxx:155
ActsTrk::KalmanFitterTool::m_outlierFinder
ActsTrk::detail::FitterHelperFunctions::ATLASOutlierFinder m_outlierFinder
Definition: KalmanFitterTool.h:208
makeActsAthenaLogger
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
Definition: Tracking/Acts/ActsInterop/src/Logger.cxx:64
ActsTrk::KalmanFitterTool::m_extrapolationTool
ToolHandle< IActsExtrapolationTool > m_extrapolationTool
Definition: KalmanFitterTool.h:169
xAOD::UncalibratedMeasurement_v1
Definition: UncalibratedMeasurement_v1.h:13
Generate_dsid_ranseed.seed
seed
Definition: Generate_dsid_ranseed.py:10
ActsTrk::KalmanFitterTool::m_logger
std::unique_ptr< const Acts::Logger > m_logger
logging instance
Definition: KalmanFitterTool.h:217
ActsTrk::detail::OnTrackCalibrator< ActsTrk::MutableTrackStateBackend >::calibrate
void calibrate(const Acts::GeometryContext &geoctx, const Acts::CalibrationContext &cctx, const Acts::SourceLink &link, TrackStateProxy state) const
Function that's hooked to the calibration delegate of the implemented Acts fitters.
lumiFormat.i
int i
Definition: lumiFormat.py:85
ActsTrk::KalmanFitterTool::m_uncalibMeasCalibrator
xAODUnCalibrator_t m_uncalibMeasCalibrator
Definition: KalmanFitterTool.h:194
ActsTrk::ATLASUncalibSourceLink
const xAOD::UncalibratedMeasurement * ATLASUncalibSourceLink
Definition: ATLASSourceLink.h:24
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
ActsTrk::KalmanFitterTool::m_trkCalibrator
detail::TrkMeasurementCalibrator m_trkCalibrator
Calibrator for the Trk::MeasurementBase track states (legacy EDM)
Definition: KalmanFitterTool.h:183
ActsTrk::KalmanFitterTool::m_option_outlierChi2Cut
Gaudi::Property< double > m_option_outlierChi2Cut
Definition: KalmanFitterTool.h:173
ActsTrk::KalmanFitterTool::m_option_seedCovarianceScale
Gaudi::Property< double > m_option_seedCovarianceScale
Definition: KalmanFitterTool.h:179
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
ActsTrk::KalmanFitterTool::FitterExtension_t
Acts::KalmanFitterExtensions< MutableTrackStateBackend > FitterExtension_t
Abbrivation of the fitter extensions.
Definition: KalmanFitterTool.h:151
ActsTrk::KalmanFitterTool::m_ATLASConverterTool
ToolHandle< ActsTrk::IActsToTrkConverterTool > m_ATLASConverterTool
Definition: KalmanFitterTool.h:171
Trk::Track::trackParameters
const DataVector< const TrackParameters > * trackParameters() const
Return a pointer to a vector of TrackParameters.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:97
ActsTrk::KalmanFitterTool::m_trkSurfAcc
detail::TrkMeasSurfaceAccessor m_trkSurfAcc
Accessor to fetch surfaces from the Trk::MeasurementBase track states (legacy EDM)
Definition: KalmanFitterTool.h:185
Trk::Track::perigeeParameters
const Perigee * perigeeParameters() const
return Perigee.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:163
xAOD::KalmanFitter
@ KalmanFitter
tracks produced by the Kalman Fitter
Definition: TrackingPrimitives.h:48
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
Trk::TrackInfo::dumpInfo
std::string dumpInfo() const
Returns a string with the name of the fitter of this track (i.e.
Definition: Tracking/TrkEvent/TrkTrack/src/TrackInfo.cxx:45
ActsTrk::KalmanFitterTool::m_reverseFilteringLogic
ActsTrk::detail::FitterHelperFunctions::ReverseFilteringLogic m_reverseFilteringLogic
Definition: KalmanFitterTool.h:209
ActsTrk::MutableTrackStateBackend
Acts::VectorMultiTrajectory MutableTrackStateBackend
Definition: TrackContainer.h:17
ActsTrk::detail::OnTrackCalibrator< ActsTrk::MutableTrackStateBackend >::NoCalibration
static OnTrackCalibrator NoCalibration(const ActsTrk::ITrackingGeometryTool *trackGeoTool)
Constructs a calibrator which copies the local position & covariance of the ITk measurements onto the...
Trk::Track::measurementsOnTrack
const DataVector< const MeasurementBase > * measurementsOnTrack() const
return a pointer to a vector of MeasurementBase (NOT including any that come from outliers).
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:178
ActsTrk::KalmanFitterTool::m_unalibMeasSurfAcc
detail::xAODUncalibMeasSurfAcc m_unalibMeasSurfAcc
Accessor to fetch surfaces from the xAOD::UncalibratedMeasurements (Phase-II EDM)
Definition: KalmanFitterTool.h:191
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
ActsTrk::detail::FitterHelperFunctions::ATLASOutlierFinder::StateChiSquaredPerNumberDoFCut
double StateChiSquaredPerNumberDoFCut
Definition: FitterHelperFunctions.h:50
ActsTrk::detail::SourceLinkType::TrkMeasurement
@ TrkMeasurement
ActsTrk::KalmanFitterTool::m_option_ReverseFilteringPt
Gaudi::Property< double > m_option_ReverseFilteringPt
Definition: KalmanFitterTool.h:175
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32
ActsTrk::KalmanFitterTool::m_prdCalibrator
detail::TrkPrepRawDataCalibrator m_prdCalibrator
Calibrator for the Trk::PrepRawData track states (legacy EDM)
Definition: KalmanFitterTool.h:187