5#ifndef TrkVertexFitters_SequentialVertexFitter_H
6#define TrkVertexFitters_SequentialVertexFitter_H
9#include "GaudiKernel/ToolHandle.h"
62 virtual StatusCode
finalize()
override;
79 virtual xAOD::Vertex *
fit(
const std::vector<const xAOD::TrackParticle*>& vectorTrk,
80 const std::vector<const xAOD::NeutralParticle*>& vectorNeut,
85 virtual xAOD::Vertex *
fit(
const std::vector<const xAOD::TrackParticle*>& vectorTrk,
87 {
return fit(vectorTrk, std::vector<const xAOD::NeutralParticle*>(), startingPoint);};
93 virtual xAOD::Vertex *
fit(
const std::vector<const xAOD::TrackParticle*>& vectorTrk,
94 const std::vector<const xAOD::NeutralParticle*>& vectorNeut,
102 {
return fit(vectorTrk, std::vector<const xAOD::NeutralParticle*>(), constraint);};
110 virtual xAOD::Vertex *
fit(
const std::vector<const Trk::TrackParameters*> & perigeeList,
111 const std::vector<const Trk::NeutralParameters*> & neutralPerigeeList,
117 virtual xAOD::Vertex *
fit(
const std::vector<const Trk::TrackParameters*> & paramList,
119 {
return fit(paramList, std::vector<const Trk::NeutralParameters*>(), startingPoint);};
125 virtual xAOD::Vertex *
fit(
const std::vector<const Trk::TrackParameters*> & perigeeList,
126 const std::vector<const Trk::NeutralParameters*> & neutralPerigeeList,
128 virtual xAOD::Vertex *
fit(
const std::vector<const Trk::TrackParameters*> & perigeeList,
130 {
return fit(perigeeList, std::vector<const Trk::NeutralParameters*>(), constraint);};
140 const std::vector<const Trk::TrackParameters*>& perigeeList,
141 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList)
144 const std::vector<const Trk::TrackParameters*>& perigeeList)
const override
145 {
return fit(perigeeList, std::vector<const Trk::NeutralParameters*>());};
155 const std::vector<const Trk::TrackParameters*>& perigeeList,
156 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList,
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.
An Abstract Base Class for the LinearizedTrackFactories.
An abstract base class for the vertex smoothers Update the tracks of type Trk::VxTrackAtVertex belong...
An abstract base class for the vertex updators.
bool m_doSmoothing
Flag controlling optional smoothing.
virtual StatusCode initialize() override
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const xAOD::Vertex &constraint) const override
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList) const override
bool m_useLooseConvergence
Use loose convergence criterium (maxShift) or hard (+maxDeltaChi2)
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 and xAOD::NeutralParticle with starting point.
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const override
Interface for xAOD::TrackParticle with starting point.
unsigned int m_maxStep
Max number of iterations to perform (in case of no convergence)
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > ¶mList, const Amg::Vector3D &startingPoint) const override
Vertex fit from list of track and parameters and a starting point.
ToolHandle< IVertexUpdator > m_Updator
SequentialVertexFitter(const std::string &t, const std::string &n, const IInterface *p)
constructor
ToolHandle< IVertexSmoother > m_Smoother
float m_maxShift
Max shift (represents the convergence criterion)
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const xAOD::Vertex &constraint) const override
Interface for xAOD::TrackParticle with vertex constraint the position of the constraint is ALWAYS the...
float m_maxDeltaChi2
Max DeltaChi2 allowed in hard convergence criterium.
void reLinearizeTracks(std::vector< Trk::VxTrackAtVertex > &tracks, const Amg::Vector3D &vrt) const
Relinearization on iterations.
ToolHandle< Trk::IVertexLinearizedTrackFactory > m_LinTrkFactory
virtual StatusCode finalize() override
std::vector< Trk::VxTrackAtVertex > linearizeTracks(const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &neutralPerigeeList, const xAOD::Vertex &vrt) const
Internal method related to the linearization of tracks (initial linearization)
virtual ~SequentialVertexFitter()
destructor
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.