ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkVertexFitter
TrkVertexFitterInterfaces
TrkVertexFitterInterfaces
IVertexUpdator.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// IVertexUpdator, (c) ATLAS Detector software 2006
8
9
#ifndef TRKVERTEXFITTERINTERFACE_IVERTEXUPDATOR_H
10
#define TRKVERTEXFITTERINTERFACE_IVERTEXUPDATOR_H
11
12
#include "GaudiKernel/IAlgTool.h"
13
#include "
xAODTracking/Vertex.h
"
14
35
36
37
namespace
Trk
38
{
39
40
static
const
InterfaceID
IID_IVertexUpdator
(
"IVertexUpdator"
, 1, 0);
41
42
class
VxTrackAtVertex
;
43
class
LinearizedTrack
;
44
45
class
IVertexUpdator
:
virtual
public
IAlgTool {
46
47
public
:
51
virtual
~IVertexUpdator
(){};
52
56
static
const
InterfaceID&
interfaceID
() {
return
IID_IVertexUpdator
; };
57
58
// Slim struct used to transport the (temporary) result of positionUpdate.
59
// Significantly faster than using an xAOD::Vertex for this purpose.
60
struct
positionUpdateOutcome
{
61
Amg::Vector3D
position
;
// vertex position
62
AmgSymMatrix
(3) covariancePosition;
// position covariance
63
AmgSymMatrix
(5) trkParametersWeight;
// inverse track parameter covariance,
64
// cached to avoid re-calculation
65
};
66
67
// operating mode for positionUpdate.
68
typedef enum{
69
removeTrack
=-1,
70
addTrack
=1
71
}
updateMode
;
72
76
virtual
xAOD::Vertex
*
add
(
xAOD::Vertex
&,
VxTrackAtVertex
&)
const
=0;
77
81
virtual
xAOD::Vertex
*
remove
(
xAOD::Vertex
&,
VxTrackAtVertex
&)
const
= 0;
82
88
virtual
positionUpdateOutcome
positionUpdate
(
const
xAOD::Vertex
& vtx,
const
LinearizedTrack
* trk,
double
trackWeight,
updateMode
mode)
const
= 0;
89
94
virtual
float
trackParametersChi2
(
const
xAOD::Vertex
& new_vtx,
const
LinearizedTrack
* trk)
const
= 0;
95
virtual
float
trackParametersChi2
(
const
positionUpdateOutcome
& new_vtx ,
const
LinearizedTrack
* trk)
const
= 0;
96
101
virtual
float
vertexPositionChi2
(
const
xAOD::Vertex
& old_vtx,
const
xAOD::Vertex
& new_vtx)
const
= 0;
102
virtual
float
vertexPositionChi2
(
const
xAOD::Vertex
& old_vtx,
const
positionUpdateOutcome
& new_vtx)
const
= 0;
103
104
};
105
}
106
#endif
Vertex.h
Trk::IVertexUpdator
An abstract base class for the vertex updators.
Definition
IVertexUpdator.h:45
Trk::IVertexUpdator::vertexPositionChi2
virtual float vertexPositionChi2(const xAOD::Vertex &old_vtx, const positionUpdateOutcome &new_vtx) const =0
Trk::IVertexUpdator::remove
virtual xAOD::Vertex * remove(xAOD::Vertex &, VxTrackAtVertex &) const =0
Remove method: removes one track from a vertex.
Trk::IVertexUpdator::interfaceID
static const InterfaceID & interfaceID()
AlgTool interface methods.
Definition
IVertexUpdator.h:56
Trk::IVertexUpdator::~IVertexUpdator
virtual ~IVertexUpdator()
Virtual destructor.
Definition
IVertexUpdator.h:51
Trk::IVertexUpdator::trackParametersChi2
virtual float trackParametersChi2(const positionUpdateOutcome &new_vtx, const LinearizedTrack *trk) const =0
Trk::IVertexUpdator::updateMode
updateMode
Definition
IVertexUpdator.h:68
Trk::IVertexUpdator::removeTrack
@ removeTrack
Definition
IVertexUpdator.h:69
Trk::IVertexUpdator::addTrack
@ addTrack
Definition
IVertexUpdator.h:70
Trk::IVertexUpdator::add
virtual xAOD::Vertex * add(xAOD::Vertex &, VxTrackAtVertex &) const =0
Add method: adds one track to a vertex.
Trk::IVertexUpdator::trackParametersChi2
virtual float trackParametersChi2(const xAOD::Vertex &new_vtx, const LinearizedTrack *trk) const =0
Method calculating the interstep Chi2 increment.
Trk::IVertexUpdator::vertexPositionChi2
virtual float vertexPositionChi2(const xAOD::Vertex &old_vtx, const xAOD::Vertex &new_vtx) const =0
Method calculating the vertex displacement-related part of the chi2 Can also be called using the ou...
Trk::IVertexUpdator::positionUpdate
virtual positionUpdateOutcome positionUpdate(const xAOD::Vertex &vtx, const LinearizedTrack *trk, double trackWeight, updateMode mode) const =0
Position update method.
Trk::LinearizedTrack
Definition
LinearizedTrack.h:43
Trk::VxTrackAtVertex
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
Definition
VxTrackAtVertex.h:77
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::IID_IVertexUpdator
static const InterfaceID IID_IVertexUpdator("IVertexUpdator", 1, 0)
xAOD::Vertex
Vertex_v1 Vertex
Define the latest version of the vertex class.
Definition
Event/xAOD/xAODTracking/xAODTracking/Vertex.h:16
Trk::IVertexUpdator::positionUpdateOutcome
Definition
IVertexUpdator.h:60
Trk::IVertexUpdator::positionUpdateOutcome::AmgSymMatrix
AmgSymMatrix(3) covariancePosition
Trk::IVertexUpdator::positionUpdateOutcome::position
Amg::Vector3D position
Definition
IVertexUpdator.h:61
Generated on
for ATLAS Offline Software by
1.17.0