ATLAS Offline Software
Loading...
Searching...
No Matches
LinearizedTrack.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5/***************************************************************************
6 LinearizedTrack.cxx - Description
7 -------------------
8 begin : 11/2006
9 comments:
10 changes :
11
12 ***************************************************************************/
13
15#include "GaudiKernel/MsgStream.h"
16
17namespace Trk {
18
19LinearizedTrack::LinearizedTrack(const AmgVector(5) & expectedParametersAtPCA,
20 const AmgSymMatrix(5) & expectedParErrorAtPCA,
21 const Amg::Vector3D& linPoint,
22 const AmgMatrix(5, 3) & positionJacobian,
23 const AmgMatrix(5, 3) & momentumJacobian,
26 const AmgVector(5) & constantTerm)
27 : m_ExpectedParametersAtPOCA(expectedParametersAtPCA)
28 , m_ExpectedCovarianceAtPOCA(expectedParErrorAtPCA)
29 , m_linPoint(linPoint)
30 , m_PositionJacobian(positionJacobian)
31 , m_MomentumJacobian(momentumJacobian)
34 , m_ConstantTerm(constantTerm)
35 , m_vl(true)
36{}
37
38// clone method implemetation
41{
42 if (m_vl) {
43 return new LinearizedTrack(m_ExpectedParametersAtPOCA,
44 m_ExpectedCovarianceAtPOCA,
46 m_PositionJacobian,
47 m_MomentumJacobian,
50 m_ConstantTerm);
51 }
52 return new LinearizedTrack();
53} // end of clone method
54
55const AmgSymMatrix(5) & LinearizedTrack::expectedCovarianceAtPCA() const
56{
57 return m_ExpectedCovarianceAtPOCA;
58}
59
60AmgSymMatrix(5) LinearizedTrack::expectedWeightAtPCA() const
61{
62 // the m_ExpectedCovarianceAtPOCA stores a covariance matrix, need to invert
63 // to get weight matrix note: no check if matrix is invertible
64 return m_ExpectedCovarianceAtPOCA.inverse();
65}
66
67const AmgVector(5) & LinearizedTrack::expectedParametersAtPCA() const
68{
69 return m_ExpectedParametersAtPOCA;
70}
71
72MsgStream&
73LinearizedTrack::dump(MsgStream& sl) const
74{
75 sl << "Printing Trk::LinearizedTrack" << endmsg;
76 sl << " Expected Position at POCA: " << m_ExpectedPositionAtPOCA << endmsg;
77 sl << " Expected Momentum at POCA: " << m_ExpectedMomentumAtPOCA << endmsg;
78 sl << " Expected parameters at POCA: " << m_ExpectedParametersAtPOCA
79 << endmsg;
80 sl << " Expected covariance at POCA: " << m_ExpectedCovarianceAtPOCA
81 << endmsg;
82 sl << " Position jacobian: " << m_PositionJacobian << endmsg;
83 sl << " Momentum jacobian: " << m_MomentumJacobian << endmsg;
84 sl << " Constant term: " << m_ConstantTerm << endmsg;
85 return sl;
86}
87
88std::ostream&
89LinearizedTrack::dump(std::ostream& sl) const
90{
91 sl << "Printing Trk::LinearizedTrack" << std::endl;
92 sl << " Expected Position at POCA: " << m_ExpectedPositionAtPOCA
93 << std::endl;
94 sl << " Expected Momentum at POCA: " << m_ExpectedMomentumAtPOCA
95 << std::endl;
96 sl << " Expected parameters at POCA: " << m_ExpectedParametersAtPOCA
97 << std::endl;
98 sl << " Expected covariance at POCA: " << m_ExpectedCovarianceAtPOCA
99 << std::endl;
100 sl << " Position jacobian: " << m_PositionJacobian << std::endl;
101 sl << " Momentum jacobian: " << m_MomentumJacobian << std::endl;
102 sl << " Constant term: " << m_ConstantTerm << std::endl;
103 return sl;
104}
105
106MsgStream&
107operator<<(MsgStream& sl, const LinearizedTrack& sf)
108{
109 return sf.dump(sl);
110}
111
112std::ostream&
113operator<<(std::ostream& sl, const LinearizedTrack& sf)
114{
115 return sf.dump(sl);
116}
117
118} // end of namespace
#define endmsg
#define AmgSymMatrix(dim)
#define AmgVector(rows)
#define AmgMatrix(rows, cols)
MsgStream & dump(MsgStream &sl) const
Output Method for MsgStream, to be overloaded by child classes.
Amg::Vector3D m_ExpectedPositionAtPOCA
LinearizedTrack * clone() const
const Amg::Vector3D & expectedPositionAtPCA() const
Access to the expected position at point of closet approach.
LinearizedTrack()=default
default operations
Amg::Vector3D m_ExpectedMomentumAtPOCA
const Amg::Vector3D & expectedMomentumAtPCA() const
Access to the expected momentum at point of closet approach.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output