ATLAS Offline Software
Loading...
Searching...
No Matches
KalmanVertexOnJetAxisUpdator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
31
32
33
34#ifndef TrkVertexFitterUtils_KalmanVertexOnJetAxisUpdator_H
35#define TrkVertexFitterUtils_KalmanVertexOnJetAxisUpdator_H
36
40
41namespace Trk
42{
43 class VxJetCandidate;
44 class VxTrackAtVertex;
45 class LinearizedTrack;
48
49 typedef Eigen::Matrix<double, 3, Eigen::Dynamic> AmgMatrix3X;
50
51 static const InterfaceID IID_KalmanVertexOnJetAxisUpdator("Trk::KalmanVertexOnJetAxisUpdator", 1, 0);
52
53
55 {
56 public:
57
58 static const InterfaceID& interfaceID()
59 {
61 };
62
63
64 virtual StatusCode initialize() override;
65
69 KalmanVertexOnJetAxisUpdator(const std::string& t, const std::string& n, const IInterface* p);
70
80
81 void add(VxTrackAtVertex* trackToAdd,const VxVertexOnJetAxis* vertexToUpdate,VxJetCandidate* candidateToUpdate) const;
82 void addWithFastUpdate(VxTrackAtVertex* trackToAdd,const VxVertexOnJetAxis* vertexToUpdate,VxJetCandidate* candidateToUpdate) const;
83
94
95 void remove(VxTrackAtVertex* trackToRemove,const VxVertexOnJetAxis* vertexToUpdate,VxJetCandidate* candidateToUpdate) const;
96 void removeWithFastUpdate (VxTrackAtVertex* trackToRemove,const VxVertexOnJetAxis* vertexToUpdate,VxJetCandidate* candidateToUpdate) const;
97
104 void updateChi2NdfInfo(VxTrackAtVertex* trackToUpdate,
105 const VxVertexOnJetAxis* vertexToUpdate,
106 VxJetCandidate* vertexCandidate) const;
107
108
113 void updateVertexChi2(VxJetCandidate* vertexCandidate) const;
114
115
120
122 const LinearizedTrack * trk,
123 double trackWeight, int sign,
124 int numVertex,bool isPrimary,
125 bool doFastUpdate) const;
126
127
142
143 std::pair<Amg::Vector3D,Eigen::Matrix3Xd> createTransformJacobian(const Amg::VectorX & initialjetdir,
144 int numVertex, bool isPrimary,
145 bool truncate) const;
146
147 void smartInvert(Amg::MatrixX & new_vrt_cov) const;
148
149
150 private:
151
156
157 void update(VxTrackAtVertex* trackToUpdate,const VxVertexOnJetAxis* vertexToUpdate,VxJetCandidate* candidateToUpdate,int sign, bool doFastUpdate) const ;
158
163
164 double calculateTrackChi2 (const VxJetCandidate& vertexCandidate,
165 const LinearizedTrack * trk,
166 double trackWeight,
167 int numVertex,bool isPrimary=false) const;
168
169
170
171
172 private:
173
175
176 };//end of class definition
177}//end of namespace definition
178
179#endif
int sign(int a)
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
void updateChi2NdfInfo(VxTrackAtVertex *trackToUpdate, const VxVertexOnJetAxis *vertexToUpdate, VxJetCandidate *vertexCandidate) const
Obsolete (will be removed - not in use, however migrated to eigen before finding out -WL) Updates onl...
void addWithFastUpdate(VxTrackAtVertex *trackToAdd, const VxVertexOnJetAxis *vertexToUpdate, VxJetCandidate *candidateToUpdate) const
void remove(VxTrackAtVertex *trackToRemove, const VxVertexOnJetAxis *vertexToUpdate, VxJetCandidate *candidateToUpdate) const
Method removing already added track from the fit along the flight axis, where you specify from what v...
void add(VxTrackAtVertex *trackToAdd, const VxVertexOnJetAxis *vertexToUpdate, VxJetCandidate *candidateToUpdate) const
Method updating the fit along the flight axis (VxJetCandidate) with a track (VxTrackOnJetAxis) which ...
void updateVertexChi2(VxJetCandidate *vertexCandidate) const
Obsolete (will be removed - not in use, however moved to eigen before finding out -WL).
void smartInvert(Amg::MatrixX &new_vrt_cov) const
void removeWithFastUpdate(VxTrackAtVertex *trackToRemove, const VxVertexOnJetAxis *vertexToUpdate, VxJetCandidate *candidateToUpdate) const
KalmanVertexOnJetAxisUpdator(const std::string &t, const std::string &n, const IInterface *p)
Constructor.
void update(VxTrackAtVertex *trackToUpdate, const VxVertexOnJetAxis *vertexToUpdate, VxJetCandidate *candidateToUpdate, int sign, bool doFastUpdate) const
Internal method to do the Kalman Update.
Trk::RecVertexPositions positionUpdate(VxJetCandidate &vertexCandidate, const LinearizedTrack *trk, double trackWeight, int sign, int numVertex, bool isPrimary, bool doFastUpdate) const
Method to do the Kalman Update of the positions of the fit along the flight axis with a single new tr...
double calculateTrackChi2(const VxJetCandidate &vertexCandidate, const LinearizedTrack *trk, double trackWeight, int numVertex, bool isPrimary=false) const
Internal method where the chi2/ndf update is actually done.
std::pair< Amg::Vector3D, Eigen::Matrix3Xd > createTransformJacobian(const Amg::VectorX &initialjetdir, int numVertex, bool isPrimary, bool truncate) const
Method to create the Jacobian needed to go to the space of single vertices to the space of the variab...
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
VxVertexOnJetAxis inherits from Vertex.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Ensure that the ATLAS eigen extensions are properly loaded.
static const InterfaceID IID_KalmanVertexOnJetAxisUpdator("Trk::KalmanVertexOnJetAxisUpdator", 1, 0)
Eigen::Matrix< double, 3, Eigen::Dynamic > AmgMatrix3X