5#ifndef TrkVertexFitters_SequentialVertexFitter_H
6#define TrkVertexFitters_SequentialVertexFitter_H
9#include "GaudiKernel/ToolHandle.h"
62 virtual StatusCode
finalize()
override;
79 virtual std::unique_ptr<xAOD::Vertex>
fit(
const EventContext& ctx,
80 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
81 const std::vector<const xAOD::NeutralParticle*>& vectorNeut,
86 virtual std::unique_ptr<xAOD::Vertex>
fit(
const EventContext& ctx,
87 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
89 {
return fit(ctx, vectorTrk, std::vector<const xAOD::NeutralParticle*>(), startingPoint);};
95 virtual std::unique_ptr<xAOD::Vertex>
fit(
const EventContext& ctx,
96 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
97 const std::vector<const xAOD::NeutralParticle*>& vectorNeut,
103 virtual std::unique_ptr<xAOD::Vertex>
fit(
const EventContext& ctx,
104 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
106 {
return fit(ctx, vectorTrk, std::vector<const xAOD::NeutralParticle*>(), constraint);};
114 virtual std::unique_ptr<xAOD::Vertex>
fit(
const EventContext& ctx,
115 const std::vector<const Trk::TrackParameters*> & perigeeList,
116 const std::vector<const Trk::NeutralParameters*> & neutralPerigeeList,
122 virtual std::unique_ptr<xAOD::Vertex>
fit(
const EventContext& ctx,
123 const std::vector<const Trk::TrackParameters*> & paramList,
125 {
return fit(ctx, paramList, std::vector<const Trk::NeutralParameters*>(), startingPoint);};
131 virtual std::unique_ptr<xAOD::Vertex>
fit(
const EventContext& ctx,
132 const std::vector<const Trk::TrackParameters*> & perigeeList,
133 const std::vector<const Trk::NeutralParameters*> & neutralPerigeeList,
136 virtual std::unique_ptr<xAOD::Vertex>
fit(
const EventContext& ctx,
137 const std::vector<const Trk::TrackParameters*> & perigeeList,
139 {
return fit(ctx, perigeeList, std::vector<const Trk::NeutralParameters*>(), constraint);};
148 virtual std::unique_ptr<xAOD::Vertex>
fit(
149 const EventContext& ctx,
150 const std::vector<const Trk::TrackParameters*>& perigeeList,
151 const std::vector<const Trk::NeutralParameters*>& neutralPerigeeList)
154 virtual std::unique_ptr<xAOD::Vertex>
fit(
155 const EventContext& ctx,
156 const std::vector<const Trk::TrackParameters*>& perigeeList)
const override
157 {
return fit(ctx, perigeeList, std::vector<const Trk::NeutralParameters*>());};
167 const std::vector<const Trk::TrackParameters*>& perigeeList,
168 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 =0
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 std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, 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.
bool m_useLooseConvergence
Use loose convergence criterium (maxShift) or hard (+maxDeltaChi2).
unsigned int m_maxStep
Max number of iterations to perform (in case of no convergence).
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const override
Interface for xAOD::TrackParticle with 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 std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList) const override
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, 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...
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList, const xAOD::Vertex &constraint) const override
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, 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.
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.