5#ifndef TRKADAPTIVEFITTERTOOLS_ADAPTIVEVERTEXFITTER_H
6#define TRKADAPTIVEFITTERTOOLS_ADAPTIVEVERTEXFITTER_H
9#include "GaudiKernel/ToolHandle.h"
113 virtual xAOD::Vertex*
fit(
const std::vector<const xAOD::TrackParticle*>& vectorTrk,
114 const std::vector<const xAOD::NeutralParticle*>& vectorNeut,
119 return fit(vectorTrk, std::vector<const xAOD::NeutralParticle*>(), startingPoint);
126 virtual xAOD::Vertex*
fit(
const std::vector<const xAOD::TrackParticle*>& vectorTrk,
127 const std::vector<const xAOD::NeutralParticle*>& vectorNeut,
132 return fit(vectorTrk, std::vector<const xAOD::NeutralParticle*>(), constraint);
138 virtual xAOD::Vertex*
fit(
const std::vector<const Trk::TrackParameters*>& perigeeList,
139 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList,
141 virtual xAOD::Vertex*
fit(
const std::vector<const Trk::TrackParameters*>& perigeeList,
147 virtual xAOD::Vertex*
fit(
const std::vector<const Trk::TrackParameters*>& perigeeList,
148 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList,
150 virtual xAOD::Vertex*
fit(
const std::vector<const Trk::TrackParameters*>& perigeeList,
165 xAOD::Vertex*
fit(
const std::vector<const Trk::TrackParameters*>& perigeeList,
166 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList,
169 xAOD::Vertex*
fit(
const std::vector<const Trk::TrackParameters*>& perigeeList,
178 const std::vector<const Trk::TrackParameters*>& perigeeList,
179 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList)
const override;
180 xAOD::Vertex*
fit(
const std::vector<const Trk::TrackParameters*>& perigeeList)
const override;
186 xAOD::Vertex*
fit(
const std::vector<const Trk::TrackParticleBase*>& perigeeList)
const;
193 xAOD::Vertex*
_fit(
const std::vector<const Trk::TrackParameters*>& perigeeList,
194 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList =
195 std::vector<const Trk::NeutralParameters*>(),
198 bool IsConstraint =
false,
199 bool IsStartingPoint =
false)
const;
200 xAOD::Vertex*
_fit(
const std::vector<const Trk::TrackParameters*>& perigeeList,
203 bool IsConstraint =
false,
204 bool IsStartingPoint =
false)
const;
214 bool IsConstraint =
false,
215 bool IsStartingPoint =
false)
const;
225 std::vector<VxTrackAtVertex>& myLinTracks)
const;
230 "Trk::CrossDistancesSeedFinder"
234 "LinearizedTrackFactory",
235 "Trk::FullLinearizedTrackFactory"
237 ToolHandle<Trk::IVertexTrackCompatibilityEstimator>
239 "TrackCompatibilityEstimato",
240 "Trk::Chi2TrackCompatibilityEstimator" };
243 "ImpactPoint3dEstimator",
244 "Trk::ImpactPoint3dEstimator/ImpactPoint3dEstimator"
248 "Trk::KalmanVertexUpdator" };
252 "Trk::DummyVertexSmoother"
257 "Trk::DetAnnealingMaker"
virtual ~AdaptiveVertexFitter()
destructor
ToolHandle< Trk::IVertexTrackCompatibilityEstimator > m_TrackCompatibilityEstimator
double m_initialError
Initial error in form of diagonal elements of the inverse of the covariance matrix (name is misleadin...
ToolHandle< Trk::IImpactPoint3dEstimator > m_ImpactPoint3dEstimator
bool m_doSmoothing
True if smoothing after fit iterations has to be performed: otherwise the Smoother AlgoTool provided ...
AdaptiveVertexFitter(const std::string &t, const std::string &n, const IInterface *p)
default constructor due to Athena interface
bool m_onlyzseed
Variable is true if seeding has to be performed only on the z direction.
ToolHandle< Trk::IVertexSmoother > m_VertexSmoother
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const xAOD::Vertex &constraint) const override
virtual StatusCode initialize() override
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const override
ToolHandle< Trk::IVertexAnnealingMaker > m_AnnealingMaker
ToolHandle< Trk::IVertexSeedFinder > m_SeedFinder
xAOD::Vertex * fit(const std::vector< const Trk::Track * > &Vectortrk, const xAOD::Vertex &constraint, const Amg::Vector3D &startingPoint) const
fit providing vector of tracks, constraint and startingPoint
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &vectorNeut, const Amg::Vector3D &startingPoint) const override
Interface for xAOD::TrackParticle with starting point.
xAOD::Vertex * fit(const std::vector< const Trk::TrackParticleBase * > &perigeeList) const
fit providing vector of TrackParticleBase
ToolHandle< Trk::IVertexUpdator > m_VertexUpdator
xAOD::Vertex * _fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList=std::vector< const Trk::NeutralParameters * >(), const xAOD::Vertex &constraint=xAOD::Vertex(), const Amg::Vector3D &startingPoint=Amg::Vector3D(), bool IsConstraint=false, bool IsStartingPoint=false) const
Internal method for fitting a list of TrackParameters and NeutralParameters, with or without constrai...
ToolHandle< Trk::IVertexLinearizedTrackFactory > m_LinearizedTrackFactory
xAOD::Vertex * dothefit(const xAOD::Vertex &ConstraintVertex, const Amg::Vector3D &SeedVertex, std::vector< VxTrackAtVertex > &myLinTracks) const
Internal method, called by the two _fit internal functions, in order to perform the fit,...
double m_maxDistToLinPoint
Maximum distance of linearization point of track to actual fitted vertex before needing to relineariz...
long int m_maxIterations
Number of maximum iterations.
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const
Interface for xAOD::TrackParticle with starting point Event Context aware interface.
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
Vertex_v1 Vertex
Define the latest version of the vertex class.