13#ifndef TrkGaussianSumFitter_H
14#define TrkGaussianSumFitter_H
35#include "GaudiKernel/EventContext.h"
36#include "GaudiKernel/ToolHandle.h"
56 virtual StatusCode
initialize() override final;
76 const EventContext& ctx,
86 const EventContext& ctx,
94 const EventContext& ctx,
101 const EventContext& ctx,
109 const EventContext& ctx,
117 const EventContext& ctx,
136 const EventContext& ctx,
149 template <typename T>
151 const EventContext& ctx,
157 template <typename T>
159 const EventContext& ctx,
162 const T* measurement,
177 this,
"ToolForExtrapolation",
"Trk::GsfExtrapolator/GsfExtrapolator",
""};
180 this,
"ToolForROTCreation",
"",
181 "Tool for converting Raw Data to measurements"};
184 "Reintegrate Outliers"};
187 this,
"RefitOnMeasurementBase",
true,
"Refit On Measurement Base"};
190 this,
"CombineStateWithFitter",
false,
191 "Combine with forwards state during Smoothing"};
194 this,
"useMode",
true,
195 "Collapse MultiComponent States using Mode rather than Mean"};
198 this,
"slimTransientMTSOS",
true,
199 "Slim the transient MTSOS . Keeping just the combined state and not all "
203 this,
"StateChi2PerNDOFCut", 50.,
"Cut on Chi2 per NDOF"};
206 this,
"MaximumNumberOfComponents", 12,
"Maximum number of components"};
210 "smootherStartCovFactors",
211 {15., 5., 15., 5., 15.},
212 "Inflation factors for the covariance at the start of smoothing [LocX, LocY, phi, "
Code for performing kalman filter update step on multi-component states for the gaussian-sum filter.
DataVector< const Trk::MultiComponentStateOnSurface > MultiComponentStateOnSurfaceDV
Class to handle Cluster On Tracks (ROT) for CaloClusters, it inherits from the common MeasurementBase...
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
GSFTrajectory forwardFit(const EventContext &ctx, IMultiStateExtrapolator::Cache &cache, const T &inputSet, const TrackParameters &estimatedTrackParametersNearOrigin) const
Forward GSF fit.
std::unique_ptr< MultiComponentStateOnSurfaceDV > convertTrajToTrack(GSFTrajectory &trajectory) const
Helper to convert the GSFTrajectory to a Trk::Track.
ToolHandle< IMultiStateExtrapolator > m_extrapolator
Trk::ParticleHypothesis m_particleHypothesis
GSFTrajectory smootherFit(const EventContext &ctx, Trk::IMultiStateExtrapolator::Cache &, GSFTrajectory &forwardTrajectory, const CaloCluster_OnTrack *ccot=nullptr) const
Gsf smoothed trajectory.
GaussianSumFitter(const std::string &, const std::string &, const IInterface *)
Constructor with parameters to be passed to AlgTool.
bool addCCOT(const EventContext &ctx, const Trk::CaloCluster_OnTrack *ccot, GSFTrajectory &smoothedTrajectory) const
Methof to add the CaloCluster onto the track.
Gaudi::Property< bool > m_refitOnMeasurementBase
ToolHandle< IRIO_OnTrackCreator > m_rioOnTrackCreator
virtual StatusCode initialize() override final
AlgTool initialise method.
Gaudi::Property< unsigned int > m_maximumNumberOfComponents
Gaudi::Property< double > m_cutChiSquaredPerNumberDOF
GSFTsos makePerigee(const EventContext &ctx, Trk::IMultiStateExtrapolator::Cache &, const GSFTrajectory &smoothedTrajectory) const
Produces a perigee from a smoothed trajectory.
Gaudi::Property< bool > m_useMode
TrkParametersComparisonFunction m_trkParametersComparisonFunction
std::vector< GSFTsos > GSFTrajectory
DoubleArrayProperty m_smootherCovFactors
virtual std::unique_ptr< Track > fit(const EventContext &ctx, const PrepRawDataSet &, const TrackParameters &, const RunOutlierRemoval, const ParticleHypothesis) const override final
Fit a collection of 'PrepRawData' objects using the Gaussian Sum Filter.
Gaudi::Property< bool > m_slimTransientMTSOS
Gaudi::Property< bool > m_reintegrateOutliers
virtual ~GaussianSumFitter()=default
Virtual destructor.
bool stepForwardFit(const EventContext &ctx, IMultiStateExtrapolator::Cache &, GSFTrajectory &forwardTrajectory, const T *measurement, const Surface &surface, MultiComponentState &updatedState) const
Progress one step along the forward fit.
Gaudi::Property< bool > m_combineWithFitter
Provides the abstract interface for track fitting in the common ATLAS Tracking EDM.
Abstract Base Class for tracking surfaces.
Ensure that the ATLAS eigen extensions are properly loaded.
std::vector< const MeasurementBase * > MeasurementSet
vector of fittable measurements
std::vector< ComponentParameters > MultiComponentState
ComparisonFunction< TrackParameters > TrkParametersComparisonFunction
bool RunOutlierRemoval
switch to toggle quality processing after fit
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
ParametersBase< TrackParametersDim, Charged > TrackParameters
std::vector< const PrepRawData * > PrepRawDataSet
vector of clusters and drift circles