ATLAS Offline Software
Loading...
Searching...
No Matches
KalmanVertexUpdator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TrkVertexFitterUtils_KalmanVertexUpdator_H
6#define TrkVertexFitterUtils_KalmanVertexUpdator_H
7
10
30
31namespace Trk
32{
33 class VxTrackAtVertex;
34 class LinearizedTrack;
35
36 class KalmanVertexUpdator : public AthAlgTool, virtual public IVertexUpdator
37 {
38 public:
39
40 virtual StatusCode initialize() override;
44 KalmanVertexUpdator(const std::string& t, const std::string& n, const IInterface* p);
45
50
54 virtual xAOD::Vertex * add(xAOD::Vertex& vtx, VxTrackAtVertex& trk) const override;
55
59 virtual xAOD::Vertex * remove(xAOD::Vertex& vtx, VxTrackAtVertex& trk) const override;
60
64 virtual IVertexUpdator::positionUpdateOutcome positionUpdate (const xAOD::Vertex& vtx, const LinearizedTrack * trk, double trackWeight, IVertexUpdator::updateMode mode) const override;
65
69 virtual float trackParametersChi2(const xAOD::Vertex& new_vtx, const LinearizedTrack * trk) const override;
70 virtual float trackParametersChi2(const IVertexUpdator::positionUpdateOutcome& new_vtx, const LinearizedTrack * trk) const override;
71
75 virtual float vertexPositionChi2(const xAOD::Vertex& old_vtx, const xAOD::Vertex& new_vtx) const override;
76 virtual float vertexPositionChi2(const xAOD::Vertex& old_vtx, const IVertexUpdator::positionUpdateOutcome& new_vtx) const override;
77
78 private:
79
80 // internal methods performing the actual calculations
81 static float trackParametersChi2(const Amg::Vector3D & new_position, const LinearizedTrack * trk, const AmgSymMatrix(5) & trkParametersWeight) ;
82 static float vertexPositionChi2(const xAOD::Vertex& old_vtx, const Amg::Vector3D & new_position) ;
83
88
89 };//end of class definition
90}//end of namespace definition
91
92#endif
#define AmgSymMatrix(dim)
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
An abstract base class for the vertex updators.
KalmanVertexUpdator(const std::string &t, const std::string &n, const IInterface *p)
Constructor.
xAOD::Vertex * update(xAOD::Vertex &vtx, const VxTrackAtVertex &trk, IVertexUpdator::updateMode mode) const
Method where the fit is actually done.
virtual float vertexPositionChi2(const xAOD::Vertex &old_vtx, const xAOD::Vertex &new_vtx) const override
Method calculating the vertex displacement-related part of the chi2.
virtual xAOD::Vertex * add(xAOD::Vertex &vtx, VxTrackAtVertex &trk) const override
Method adding a single track to the vertex estimate.
virtual IVertexUpdator::positionUpdateOutcome positionUpdate(const xAOD::Vertex &vtx, const LinearizedTrack *trk, double trackWeight, IVertexUpdator::updateMode mode) const override
Position update method.
~KalmanVertexUpdator()
Destructor.
virtual StatusCode initialize() override
virtual xAOD::Vertex * remove(xAOD::Vertex &vtx, VxTrackAtVertex &trk) const override
Method removing already added track from the vertex estimate.
virtual float trackParametersChi2(const xAOD::Vertex &new_vtx, const LinearizedTrack *trk) const override
Method calculating the interstep Chi2 increment.
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.