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

#include <GlobalChiSquareFitterTool.h>

Inheritance diagram for ActsTrk::GlobalChiSquareFitterTool:
Collaboration diagram for ActsTrk::GlobalChiSquareFitterTool:

Public Types

using StraightPropagator_t = Acts::Propagator< Acts::StraightLineStepper, Acts::Navigator >
 Type erased track fitter function. More...
 
using CurvedPropagator_t = Acts::Propagator< Acts::SympyStepper, 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
More...
 
using Gx2FitterExtension_t = Acts::Experimental::Gx2FitterExtensions< MutableTrackStateBackend >
 Abbrivation of the fitter extensions. More...
 

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

Private Types

using TrackFitResult_t = IActsToTrkConverterTool::TrackFitResult_t
 

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

Private Attributes

ToolHandle< IActsExtrapolationToolm_extrapolationTool {this, "ExtrapolationTool", ""}
 
PublicToolHandle< ITrackingGeometryToolm_trackingGeometryTool {this, "TrackingGeometryTool", ""}
 
ToolHandle< IActsToTrkConverterToolm_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. More...
 
Gaudi::Property< unsigned > m_option_maxPropagationStep {this, "MaxPropagationStep", 5000}
 Maximum number of steps per propagation call. More...
 
Gaudi::Property< unsigned > m_option_maxNavSurfaces {this, "MaxSurfacesPerNavStep", 100}
 Number of maximum surfaces to be tried before the navigrator aborts. More...
 
Gaudi::Property< bool > m_option_includeELoss {this, "IncludeELoss", true}
 Consider particle's energy loss in the fit
More...
 
Gaudi::Property< bool > m_option_includeScat {this, "IncludeScattering", true}
 Consider multiple scattering of the particle. More...
 
Gaudi::Property< bool > m_doReFitFromPRD {this, "DoReFitFromPRD", false}
 Convert the PRD to a ROT during the calibration. More...
 
Gaudi::Property< bool > m_doStraightLine {this, "DoStraightLine" , false}
 Option to toggle whether a straight line fitter shall be used. More...
 
detail::TrkMeasurementCalibrator m_trkMeasCalibrator {}
 Pass through calibrator of the Trk::MeasurementBase objects from the TrackState container. More...
 
detail::TrkPrepRawDataCalibrator m_prdCalibrator {}
 Calibrator of the uncalibrated Trk::PrepRawData objects to RIO_OnTrack objects. More...
 
detail::TrkMeasSurfaceAccessor m_trkMeasSurfAcc {}
 Surface accessor delegate for Trk::MeasurementBase objects. More...
 
detail::TrkPrepRawDataSurfaceAcc m_prdSurfaceAcc {}
 Surface accessor delegate for Trk::PrepRawData objects. More...
 
detail::xAODUncalibMeasSurfAcc m_unalibMeasSurfAcc {}
 Surface accessor delegate for xAOD::UncalibratedMeasurement objects. More...
 
detail::xAODUncalibMeasCalibrator m_uncalibMeasCalibrator {}
 Calibrator for the uncalibrated xAOD::UnCalibratedMeasurement objects. More...
 
std::array< Gx2FitterExtension_t, s_nExtensionsm_gx2fExtensions {}
 
std::unique_ptr< CurvedFitter_tm_fitter {nullptr}
 The underlying curved Acts fitter. More...
 
std::unique_ptr< StraightFitter_tm_slFitter {nullptr}
 The underlying straight line Acts fitter. More...
 
detail::FitterHelperFunctions::ATLASOutlierFinder m_outlierFinder {0}
 
std::unique_ptr< const Acts::Logger > m_logger
 logging instance More...
 

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 64 of file GlobalChiSquareFitterTool.h.

Member Typedef Documentation

◆ CurvedFitter_t

Definition at line 152 of file GlobalChiSquareFitterTool.h.

◆ CurvedPropagator_t

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

Definition at line 149 of file GlobalChiSquareFitterTool.h.

◆ Gx2FitterExtension_t

Abbrivation of the fitter extensions.

Definition at line 157 of file GlobalChiSquareFitterTool.h.

◆ Gx2FitterOptions_t

Abbrivation of the configuration to launch the fit

Definition at line 155 of file GlobalChiSquareFitterTool.h.

◆ StraightFitter_t

Definition at line 151 of file GlobalChiSquareFitterTool.h.

◆ StraightPropagator_t

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

Type erased track fitter function.

Definition at line 148 of file GlobalChiSquareFitterTool.h.

◆ TrackFitResult_t

Definition at line 160 of file GlobalChiSquareFitterTool.h.

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 130 of file GlobalChiSquareFitterTool.cxx.

134  {
135  Acts::PropagatorPlainOptions propagationOption{tgContext, mfContext};
136  propagationOption.maxSteps = m_option_maxPropagationStep;
137  propagationOption.maxTargetSkipping = m_option_maxNavSurfaces;
138  // Set the Gx2Fitter options
139  return Gx2FitterOptions_t{tgContext, mfContext, calContext,
140  m_gx2fExtensions[static_cast<int>(slType)],
141  std::move(propagationOption),
142  surface, m_option_includeScat,
144 }

◆ 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 512 of file GlobalChiSquareFitterTool.cxx.

517 {
518  ATH_MSG_ERROR("Track refit method not implemented in GlobalChiSquareFitterTool yet");
519  return StatusCode::FAILURE;
520 }

◆ 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 208 of file GlobalChiSquareFitterTool.cxx.

212  {
213 
214  // protection against not having measurements on the input track
215  if (inputMeasSet.size() < 2) {
216  ATH_MSG_DEBUG("Called to refit empty measurement set or a measurement set with too "
217  <<"little information, reject fit");
218  return nullptr;
219  }
220 
221  // Construct a perigee surface as the target surface
222  auto pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
223 
224  const Acts::GeometryContext tgContext{m_trackingGeometryTool->getGeometryContext(ctx).context()};
225  const Acts::MagneticFieldContext mfContext{m_extrapolationTool->getMagneticFieldContext(ctx)};
226  const Acts::CalibrationContext calContext{getCalibrationContext(ctx)};
227 
228 
229 
230  std::vector<Acts::SourceLink> trackSourceLinks;
231  m_ATLASConverterTool->toSourceLinks(inputMeasSet, trackSourceLinks);
232  // protection against error in the conversion from Atlas measurement to ACTS
233  // source link
234  if (trackSourceLinks.empty()) {
235  ATH_MSG_DEBUG("input contain measurement but no source link created, probable issue "
236  <<"with the converter, reject fit ");
237  return nullptr;
238  }
239 
240  const auto initialParams = m_ATLASConverterTool->trkTrackParametersToActsParameters(estimatedStartParameters, tgContext);
241 
242  ActsTrk::MutableTrackBackend trackContainerBackEnd;
243  ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
244  ActsTrk::MutableTrackContainer tracks( std::move(trackContainerBackEnd),
245  std::move(multiTrajBackEnd));
246 
247  Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
249  // Perform the fit
250  auto result = fit(trackSourceLinks, initialParams, gx2fOptions, tracks);
251  return m_ATLASConverterTool->convertFitResult(ctx, tracks, result,
254 }

◆ 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 258 of file GlobalChiSquareFitterTool.cxx.

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

◆ 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 352 of file GlobalChiSquareFitterTool.cxx.

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

◆ 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 413 of file GlobalChiSquareFitterTool.cxx.

417  {
419  "Fit of Track with additional PrepRawDataSet not yet implemented");
420  return nullptr;
421 }

◆ 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 148 of file GlobalChiSquareFitterTool.cxx.

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

◆ 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 425 of file GlobalChiSquareFitterTool.cxx.

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

◆ 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 494 of file GlobalChiSquareFitterTool.cxx.

500  {
501 
502  std::vector<ATLASUncalibSourceLink> sourceLinks;
503  sourceLinks.reserve(6);
504 
505  for (const xAOD::SpacePoint* sp : seed.sp()) {
506  sourceLinks.insert(sourceLinks.end(), sp->measurements().begin(), sp->measurements().end());
507  }
508  return fit(sourceLinks, initialParams, tgContext, mfContext, calContext, &targetSurface);
509 }

◆ 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 120 of file GlobalChiSquareFitterTool.cxx.

123  {
124  return ATH_LIKELY(m_fitter) ?
125  m_fitter->fit(soureLinks.begin(), soureLinks.end(), initialPars, gx2fOptions, tracks) :
126  m_slFitter->fit(soureLinks.begin(), soureLinks.end(), initialPars, gx2fOptions, tracks);
127 }

◆ fit() [10/10]

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

311  {
312 
313  if (measList.empty()) {
314  ATH_MSG_DEBUG("No measurements given. Nothing to do");
315  return nullptr;
316  }
317  // Construct a perigee surface as the target surface
318  std::shared_ptr<Acts::Surface> pSurface{};
319  if (!targetSurface) {
320  pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3::Zero());
321  targetSurface = pSurface.get();
322  }
323 
324  std::vector<Acts::SourceLink> sourceLinks;
325  sourceLinks.reserve(measList.size());
326  std::ranges::transform(measList, std::back_inserter(sourceLinks),
327  [](const xAOD::UncalibratedMeasurement* meas){
329  });
330 
331  Gx2FitterOptions_t gx2fOptions = configureFit(tgContext, mfContext, calContext,
333 
334 
335  ActsTrk::MutableTrackBackend trackContainerBackEnd;
336  ActsTrk::MutableTrackStateBackend multiTrajBackEnd;
337  auto tracks = std::make_unique<MutableTrackContainer>( std::move(trackContainerBackEnd),
338  std::move(multiTrajBackEnd) );
339  // Perform the fit
340  auto result = fit(sourceLinks, initialParams, gx2fOptions, *tracks);
341  if (not result.ok()) {
342  ATH_MSG_VERBOSE("Global chi2 fit failed");
343  return nullptr;
344  }
345  return tracks;
346 }

◆ 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 45 of file GlobalChiSquareFitterTool.cxx.

45  {
46 
47  ATH_MSG_DEBUG(name() << "::" << __FUNCTION__);
49  ATH_CHECK(m_extrapolationTool.retrieve());
50  ATH_CHECK(m_ATLASConverterTool.retrieve());
51  ATH_CHECK(m_ROTcreator.retrieve(EnableTool{m_doReFitFromPRD}));
52  ATH_CHECK(m_muonCalibrator.retrieve(EnableTool{!m_muonCalibrator.empty()}));
53 
54  m_logger = makeActsAthenaLogger(this, "Gx2fRefit");
55  if (!m_doStraightLine){
56  // Fitter
57  Acts::SympyStepper 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 
76 
77  Gx2FitterExtension_t extensionTemplate{};
78  extensionTemplate.outlierFinder.connect<&detail::FitterHelperFunctions::ATLASOutlierFinder::operator()
80  extensionTemplate.updater.connect<&detail::FitterHelperFunctions::gainMatrixUpdate<MutableTrackStateBackend>>();
81 
83  {
84  m_trkMeasCalibrator = detail::TrkMeasurementCalibrator{};
85  m_trkMeasSurfAcc = detail::TrkMeasSurfaceAccessor{m_ATLASConverterTool.get()};
86 
88  configureMe = extensionTemplate;
89  configureMe.calibrator.connect<&detail::TrkMeasurementCalibrator::calibrate<MutableTrackStateBackend>>(&m_trkMeasCalibrator);
90  configureMe.surfaceAccessor.connect<&detail::TrkMeasSurfaceAccessor::operator()>(&m_trkMeasSurfAcc);
91  }
93  {
94  m_prdCalibrator = detail::TrkPrepRawDataCalibrator{m_ATLASConverterTool.get(), m_ROTcreator.get()};
95  m_prdSurfaceAcc = detail::TrkPrepRawDataSurfaceAcc{m_ATLASConverterTool.get()};
97  configureMe = extensionTemplate;
98  configureMe.calibrator.connect<&detail::TrkPrepRawDataCalibrator::calibrate<MutableTrackStateBackend>>(&m_prdCalibrator);
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);
109  if (m_muonCalibrator.isEnabled()) {
114  }
115  }
116  }
117  return StatusCode::SUCCESS;
118 }

◆ logger()

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

Private access to the logger.

Definition at line 230 of file GlobalChiSquareFitterTool.h.

230 { return *m_logger; }

Member Data Documentation

◆ m_ATLASConverterTool

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

Definition at line 186 of file GlobalChiSquareFitterTool.h.

◆ 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 203 of file GlobalChiSquareFitterTool.h.

◆ 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 205 of file GlobalChiSquareFitterTool.h.

◆ m_extrapolationTool

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

Definition at line 184 of file GlobalChiSquareFitterTool.h.

◆ m_fitter

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

The underlying curved Acts fitter.

Definition at line 223 of file GlobalChiSquareFitterTool.h.

◆ m_gx2fExtensions

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

Definition at line 221 of file GlobalChiSquareFitterTool.h.

◆ m_logger

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

logging instance

Definition at line 233 of file GlobalChiSquareFitterTool.h.

◆ m_muonCalibrator

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

Definition at line 188 of file GlobalChiSquareFitterTool.h.

◆ 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 199 of file GlobalChiSquareFitterTool.h.

◆ m_option_includeScat

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

Consider multiple scattering of the particle.

Definition at line 201 of file GlobalChiSquareFitterTool.h.

◆ 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 197 of file GlobalChiSquareFitterTool.h.

◆ 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 195 of file GlobalChiSquareFitterTool.h.

◆ 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 193 of file GlobalChiSquareFitterTool.h.

◆ m_outlierFinder

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

Definition at line 227 of file GlobalChiSquareFitterTool.h.

◆ m_prdCalibrator

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

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

Definition at line 210 of file GlobalChiSquareFitterTool.h.

◆ m_prdSurfaceAcc

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

Surface accessor delegate for Trk::PrepRawData objects.

Definition at line 214 of file GlobalChiSquareFitterTool.h.

◆ m_ROTcreator

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

Definition at line 190 of file GlobalChiSquareFitterTool.h.

◆ m_slFitter

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

The underlying straight line Acts fitter.

Definition at line 225 of file GlobalChiSquareFitterTool.h.

◆ m_trackingGeometryTool

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

Definition at line 185 of file GlobalChiSquareFitterTool.h.

◆ m_trkMeasCalibrator

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

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

Definition at line 208 of file GlobalChiSquareFitterTool.h.

◆ m_trkMeasSurfAcc

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

Surface accessor delegate for Trk::MeasurementBase objects.

Definition at line 212 of file GlobalChiSquareFitterTool.h.

◆ m_unalibMeasSurfAcc

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

Surface accessor delegate for xAOD::UncalibratedMeasurement objects.

Definition at line 216 of file GlobalChiSquareFitterTool.h.

◆ m_uncalibMeasCalibrator

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

Calibrator for the uncalibrated xAOD::UnCalibratedMeasurement objects.

Definition at line 218 of file GlobalChiSquareFitterTool.h.

◆ s_nExtensions

constexpr 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 220 of file GlobalChiSquareFitterTool.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::GlobalChiSquareFitterTool::m_ATLASConverterTool
ToolHandle< IActsToTrkConverterTool > m_ATLASConverterTool
Definition: GlobalChiSquareFitterTool.h:186
get_generator_info.result
result
Definition: get_generator_info.py:21
ActsTrk::GlobalChiSquareFitterTool::m_trkMeasCalibrator
detail::TrkMeasurementCalibrator m_trkMeasCalibrator
Pass through calibrator of the Trk::MeasurementBase objects from the TrackState container.
Definition: GlobalChiSquareFitterTool.h:208
ActsTrk::GlobalChiSquareFitterTool::m_extrapolationTool
ToolHandle< IActsExtrapolationTool > m_extrapolationTool
Definition: GlobalChiSquareFitterTool.h:184
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::ParticleHypothesis::convert
xAOD::ParticleHypothesis convert(Acts::ParticleHypothesis h)
Definition: ParticleHypothesisEncoding.cxx:12
ActsTrk::detail::SourceLinkType::TrkPrepRawData
@ TrkPrepRawData
Calibrated Trk::MeasurementBase objects.
ActsTrk::MutableTrackContainer
Acts::TrackContainer< MutableTrackBackend, MutableTrackStateBackend, Acts::detail::ValueHolder > MutableTrackContainer
Definition: TrackContainer.h:26
xAOD::UncalibMeasType::MMClusterType
@ MMClusterType
ActsTrk::GlobalChiSquareFitterTool::m_logger
std::unique_ptr< const Acts::Logger > m_logger
logging instance
Definition: GlobalChiSquareFitterTool.h:233
ActsTrk::detail::SourceLinkType::xAODUnCalibMeas
@ xAODUnCalibMeas
UnCalibrated Trk::PrepRawData objects.
xAOD::SpacePoint_v1
Definition: SpacePoint_v1.h:29
ActsTrk::GlobalChiSquareFitterTool::m_gx2fExtensions
std::array< Gx2FitterExtension_t, s_nExtensions > m_gx2fExtensions
Definition: GlobalChiSquareFitterTool.h:221
ActsTrk::GlobalChiSquareFitterTool::logger
const Acts::Logger & logger() const
Private access to the logger.
Definition: GlobalChiSquareFitterTool.h:230
ActsTrk::detail::xAODUncalibMeasCalibrator::connect
void connect(const xAOD::UncalibMeasType type, const Type *instance)
Register a calibrator implementation instance for a given measurement type.
Definition: xAODUncalibMeasCalibrator.h:36
xAOD::GlobalChi2Fitter
@ GlobalChi2Fitter
Track's from Thijs' global chi^2 fitter or the ACTS implementation.
Definition: TrackingPrimitives.h:52
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
xAOD::UncalibMeasType::sTgcStripType
@ sTgcStripType
ActsTrk::detail::xAODUncalibMeasCalibrator::pack
static Acts::SourceLink pack(const xAOD::UncalibratedMeasurement *meas)
Helper method to pack an uncalibrated measurement to an Acts source link.
Definition: xAODUncalibMeasCalibrator.cxx:9
ActsTrk::GlobalChiSquareFitterTool::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: GlobalChiSquareFitterTool.cxx:148
ActsTrk::GlobalChiSquareFitterTool::m_option_outlierChi2Cut
Gaudi::Property< double > m_option_outlierChi2Cut
Chi2 cut used by the outlier finder.
Definition: GlobalChiSquareFitterTool.h:193
xAOD::UncalibMeasType::TgcStripType
@ TgcStripType
ActsTrk::GlobalChiSquareFitterTool::m_uncalibMeasCalibrator
detail::xAODUncalibMeasCalibrator m_uncalibMeasCalibrator
Calibrator for the uncalibrated xAOD::UnCalibratedMeasurement objects.
Definition: GlobalChiSquareFitterTool.h:218
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::GlobalChiSquareFitterTool::m_prdSurfaceAcc
detail::TrkPrepRawDataSurfaceAcc m_prdSurfaceAcc
Surface accessor delegate for Trk::PrepRawData objects.
Definition: GlobalChiSquareFitterTool.h:214
ActsTrk::GlobalChiSquareFitterTool::StraightPropagator_t
Acts::Propagator< Acts::StraightLineStepper, Acts::Navigator > StraightPropagator_t
Type erased track fitter function.
Definition: GlobalChiSquareFitterTool.h:148
xAOD::UncalibratedMeasurement_v1
Definition: UncalibratedMeasurement_v1.h:13
Generate_dsid_ranseed.seed
seed
Definition: Generate_dsid_ranseed.py:10
ActsTrk::GlobalChiSquareFitterTool::m_option_maxNavSurfaces
Gaudi::Property< unsigned > m_option_maxNavSurfaces
Number of maximum surfaces to be tried before the navigrator aborts.
Definition: GlobalChiSquareFitterTool.h:197
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ActsTrk::GlobalChiSquareFitterTool::m_trackingGeometryTool
PublicToolHandle< ITrackingGeometryTool > m_trackingGeometryTool
Definition: GlobalChiSquareFitterTool.h:185
ActsTrk::GlobalChiSquareFitterTool::m_muonCalibrator
ToolHandle< MuonR4::ISpacePointCalibrator > m_muonCalibrator
Definition: GlobalChiSquareFitterTool.h:188
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
ActsTrk::GlobalChiSquareFitterTool::m_prdCalibrator
detail::TrkPrepRawDataCalibrator m_prdCalibrator
Calibrator of the uncalibrated Trk::PrepRawData objects to RIO_OnTrack objects.
Definition: GlobalChiSquareFitterTool.h:210
ActsTrk::GlobalChiSquareFitterTool::m_option_maxPropagationStep
Gaudi::Property< unsigned > m_option_maxPropagationStep
Maximum number of steps per propagation call.
Definition: GlobalChiSquareFitterTool.h:195
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
ActsTrk::GlobalChiSquareFitterTool::m_trkMeasSurfAcc
detail::TrkMeasSurfaceAccessor m_trkMeasSurfAcc
Surface accessor delegate for Trk::MeasurementBase objects.
Definition: GlobalChiSquareFitterTool.h:212
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
Trk::Track::perigeeParameters
const Perigee * perigeeParameters() const
return Perigee.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:163
ActsTrk::GlobalChiSquareFitterTool::m_ROTcreator
ToolHandle< Trk::IRIO_OnTrackCreator > m_ROTcreator
Definition: GlobalChiSquareFitterTool.h:190
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::GlobalChiSquareFitterTool::m_option_includeScat
Gaudi::Property< bool > m_option_includeScat
Consider multiple scattering of the particle.
Definition: GlobalChiSquareFitterTool.h:201
ActsTrk::GlobalChiSquareFitterTool::m_fitter
std::unique_ptr< CurvedFitter_t > m_fitter
The underlying curved Acts fitter.
Definition: GlobalChiSquareFitterTool.h:223
ActsTrk::MutableTrackStateBackend
Acts::VectorMultiTrajectory MutableTrackStateBackend
Definition: TrackContainer.h:17
ActsTrk::GlobalChiSquareFitterTool::m_slFitter
std::unique_ptr< StraightFitter_t > m_slFitter
The underlying straight line Acts fitter.
Definition: GlobalChiSquareFitterTool.h:225
ActsTrk::GlobalChiSquareFitterTool::Gx2FitterExtension_t
Acts::Experimental::Gx2FitterExtensions< MutableTrackStateBackend > Gx2FitterExtension_t
Abbrivation of the fitter extensions.
Definition: GlobalChiSquareFitterTool.h:157
ActsTrk::detail::xAODUncalibMeasCalibrator::calibrate
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 ...
Definition: xAODUncalibMeasCalibrator.cxx:58
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::GlobalChiSquareFitterTool::m_unalibMeasSurfAcc
detail::xAODUncalibMeasSurfAcc m_unalibMeasSurfAcc
Surface accessor delegate for xAOD::UncalibratedMeasurement objects.
Definition: GlobalChiSquareFitterTool.h:216
MuonR4::ISpacePointCalibrator::calibrateSourceLink
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.
ATH_LIKELY
#define ATH_LIKELY(x)
Definition: AthUnlikelyMacros.h:16
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
ActsTrk::GlobalChiSquareFitterTool::Gx2FitterOptions_t
Acts::Experimental::Gx2FitterOptions< MutableTrackStateBackend > Gx2FitterOptions_t
Abbrivation of the configuration to launch the fit
Definition: GlobalChiSquareFitterTool.h:155
ActsTrk::GlobalChiSquareFitterTool::configureFit
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.
Definition: GlobalChiSquareFitterTool.cxx:130
ActsTrk::detail::FitterHelperFunctions::ATLASOutlierFinder::StateChiSquaredPerNumberDoFCut
double StateChiSquaredPerNumberDoFCut
Definition: FitterHelperFunctions.h:50
ActsTrk::detail::SourceLinkType::TrkMeasurement
@ TrkMeasurement
ActsTrk::GlobalChiSquareFitterTool::m_doStraightLine
Gaudi::Property< bool > m_doStraightLine
Option to toggle whether a straight line fitter shall be used.
Definition: GlobalChiSquareFitterTool.h:205
xAOD::UncalibMeasType::RpcStripType
@ RpcStripType
xAOD::UncalibMeasType::MdtDriftCircleType
@ MdtDriftCircleType
ActsTrk::GlobalChiSquareFitterTool::m_outlierFinder
detail::FitterHelperFunctions::ATLASOutlierFinder m_outlierFinder
Definition: GlobalChiSquareFitterTool.h:227
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32
ActsTrk::GlobalChiSquareFitterTool::m_option_includeELoss
Gaudi::Property< bool > m_option_includeELoss
Consider particle's energy loss in the fit
Definition: GlobalChiSquareFitterTool.h:199
ActsTrk::GlobalChiSquareFitterTool::CurvedPropagator_t
Acts::Propagator< Acts::SympyStepper, Acts::Navigator > CurvedPropagator_t
Definition: GlobalChiSquareFitterTool.h:149