ATLAS Offline Software
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 
31 namespace 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
Trk::IVertexUpdator::updateMode
updateMode
Definition: IVertexUpdator.h:68
Trk::VxTrackAtVertex
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
Definition: VxTrackAtVertex.h:77
Trk::KalmanVertexUpdator::update
xAOD::Vertex * update(xAOD::Vertex &vtx, const VxTrackAtVertex &trk, IVertexUpdator::updateMode mode) const
Method where the fit is actually done.
Definition: KalmanVertexUpdator.cxx:48
Trk::KalmanVertexUpdator::initialize
virtual StatusCode initialize() override
Definition: KalmanVertexUpdator.cxx:23
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::KalmanVertexUpdator::~KalmanVertexUpdator
~KalmanVertexUpdator()
Destructor.
Trk::AmgSymMatrix
AmgSymMatrix(5) &GXFTrackState
Definition: GXFTrackState.h:156
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
Trk::KalmanVertexUpdator::KalmanVertexUpdator
KalmanVertexUpdator(const std::string &t, const std::string &n, const IInterface *p)
Constructor.
Definition: KalmanVertexUpdator.cxx:14
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
Trk::IVertexUpdator
Definition: IVertexUpdator.h:45
Trk::KalmanVertexUpdator
Definition: KalmanVertexUpdator.h:37
Preparation.mode
mode
Definition: Preparation.py:94
Trk::KalmanVertexUpdator::remove
virtual xAOD::Vertex * remove(xAOD::Vertex &vtx, VxTrackAtVertex &trk) const override
Method removing already added track from the vertex estimate.
Definition: KalmanVertexUpdator.cxx:42
Trk::KalmanVertexUpdator::positionUpdate
virtual IVertexUpdator::positionUpdateOutcome positionUpdate(const xAOD::Vertex &vtx, const LinearizedTrack *trk, double trackWeight, IVertexUpdator::updateMode mode) const override
Position update method.
Definition: KalmanVertexUpdator.cxx:126
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
IVertexUpdator.h
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::IVertexUpdator::positionUpdateOutcome
Definition: IVertexUpdator.h:60
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
Trk::KalmanVertexUpdator::trackParametersChi2
virtual float trackParametersChi2(const xAOD::Vertex &new_vtx, const LinearizedTrack *trk) const override
Method calculating the interstep Chi2 increment.
Definition: KalmanVertexUpdator.cxx:164
Trk::KalmanVertexUpdator::add
virtual xAOD::Vertex * add(xAOD::Vertex &vtx, VxTrackAtVertex &trk) const override
Method adding a single track to the vertex estimate.
Definition: KalmanVertexUpdator.cxx:36
Trk::KalmanVertexUpdator::vertexPositionChi2
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
Definition: KalmanVertexUpdator.cxx:169
AthAlgTool
Definition: AthAlgTool.h:26
Trk::LinearizedTrack
Definition: LinearizedTrack.h:43