ATLAS Offline Software
Loading...
Searching...
No Matches
IUpdator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
6// IUpdator.h
7// Header file for interface of Updator
9// (c) ATLAS Detector software
11// Markus.Elsing@cern.ch
13
14#ifndef TRK_IUPDATOR_H
15#define TRK_IUPDATOR_H
16
18#include "GaudiKernel/IAlgTool.h"
20#include "TrkParameters/TrackParameters.h" // typedef
21#include <memory>
22#include <vector>
23static const InterfaceID IID_IUpdator("Trk::IUpdator", 1, 0);
24
25namespace Trk {
26
27#ifndef CreateParDef
28#define CreateParDef
29#define CREATE_PARAMETERS(ref, x, cov) \
30 (ref).associatedSurface().createUniqueTrackParameters(x[Trk::loc1], \
31 x[Trk::loc2], \
32 x[Trk::phi], \
33 x[Trk::theta], \
34 x[Trk::qOverP], \
35 cov)
36#define CLONEWITHOUTCOV(ref) \
37 ref.associatedSurface().createUniqueTrackParameters( \
38 ref.parameters[Trk::loc1], \
39 ref.parameters[Trk::loc2], \
40 ref.parameters[Trk::phi], \
41 ref.parameters[Trk::theta], \
42 ref.parameters[Trk::qOverP])
43#endif
44
45class LocalParameters;
46
62
63class IUpdator : virtual public IAlgTool
64{
65public:
67 static const InterfaceID& interfaceID();
70 virtual std::unique_ptr<TrackParameters> addToState(
71 const TrackParameters&,
72 const Amg::Vector2D&,
73 const Amg::MatrixX&) const = 0;
77 virtual std::unique_ptr<TrackParameters> addToState(
78 const TrackParameters&,
79 const LocalParameters&,
80 const Amg::MatrixX&) const = 0;
84 virtual std::unique_ptr<TrackParameters> addToState(
85 const TrackParameters&,
86 const Amg::Vector2D&,
87 const Amg::MatrixX&,
88 FitQualityOnSurface*&) const = 0;
92 virtual std::unique_ptr<TrackParameters> addToState(
93 const TrackParameters&,
94 const LocalParameters&,
95 const Amg::MatrixX&,
96 FitQualityOnSurface*&) const = 0;
97
102 virtual std::unique_ptr<TrackParameters> removeFromState(
103 const TrackParameters&,
104 const Amg::Vector2D&,
105 const Amg::MatrixX&) const = 0;
111 virtual std::unique_ptr<TrackParameters> removeFromState(
112 const TrackParameters&,
113 const LocalParameters&,
114 const Amg::MatrixX&) const = 0;
120 virtual std::unique_ptr<TrackParameters> removeFromState(
121 const TrackParameters&,
122 const Amg::Vector2D&,
123 const Amg::MatrixX&,
124 FitQualityOnSurface*&) const = 0;
130 virtual std::unique_ptr<TrackParameters> removeFromState(
131 const TrackParameters&,
132 const LocalParameters&,
133 const Amg::MatrixX&,
134 FitQualityOnSurface*&) const = 0;
135
143 virtual std::unique_ptr<TrackParameters> combineStates(
144 const TrackParameters&,
145 const TrackParameters&) const = 0;
154 virtual std::unique_ptr<TrackParameters> combineStates(
155 const TrackParameters&,
156 const TrackParameters&,
157 FitQualityOnSurface*&) const = 0;
158
163 const AmgVector(5) &,
164 const AmgSymMatrix(5) &,
165 const Amg::VectorX&,
166 const Amg::MatrixX&,
167 int,
169 bool) const = 0;
170
178 const TrackParameters&,
179 const Amg::Vector2D&,
180 const Amg::MatrixX&) const = 0;
188 const TrackParameters&,
189 const LocalParameters&,
190 const Amg::MatrixX&) const = 0;
198 const TrackParameters&,
199 const Amg::Vector2D&,
200 const Amg::MatrixX&) const = 0;
208 const TrackParameters&,
209 const LocalParameters&,
210 const Amg::MatrixX&) const = 0;
216 const TrackParameters&,
217 const TrackParameters&) const = 0;
218
221 virtual std::vector<double> initialErrors() const = 0;
222};
223
224} // end of namespace
225
226inline const InterfaceID&
231
232#endif // TRK_IUPDATOR_H
#define AmgSymMatrix(dim)
#define AmgVector(rows)
static const InterfaceID IID_IUpdator("Trk::IUpdator", 1, 0)
Set of interfaces for methods operating on track states, mainly for Kalman filtering.
Definition IUpdator.h:64
virtual FitQualityOnSurface predictedStateFitQuality(const TrackParameters &, const LocalParameters &, const Amg::MatrixX &) const =0
estimator for FitQuality on Surface from a predicted track state, that is a state which does not cont...
virtual FitQualityOnSurface fullStateFitQuality(const TrackParameters &, const LocalParameters &, const Amg::MatrixX &) const =0
estimator for FitQuality on Surface from a full track state, that is a state which contains the curre...
virtual std::unique_ptr< TrackParameters > addToState(const TrackParameters &, const LocalParameters &, const Amg::MatrixX &) const =0
updator for Kalman-Filter based algorithms getting the measurement coordinates from LocalParameters (...
static const InterfaceID & interfaceID()
Algtool infrastructure.
Definition IUpdator.h:227
virtual std::unique_ptr< TrackParameters > addToState(const TrackParameters &, const Amg::Vector2D &, const Amg::MatrixX &) const =0
updator for Kalman-Filter based algorithms getting the measurement coordinates from Amg::Vector2D (us...
virtual std::vector< double > initialErrors() const =0
let the client tools know how the assumptions on the initial precision for non-measured track paramet...
virtual std::unique_ptr< TrackParameters > addToState(const TrackParameters &, const Amg::Vector2D &, const Amg::MatrixX &, FitQualityOnSurface *&) const =0
the updator interface with FitQualityOnSurface allows to save the chi2 in one step with the updating ...
virtual std::unique_ptr< TrackParameters > removeFromState(const TrackParameters &, const LocalParameters &, const Amg::MatrixX &) const =0
the reverse updating or inverse KalmanFilter removes a measurement from the track state,...
virtual std::unique_ptr< TrackParameters > combineStates(const TrackParameters &, const TrackParameters &, FitQualityOnSurface *&) const =0
adds to a track state the parameters from another state using a statistical combination and determine...
virtual std::unique_ptr< TrackParameters > addToState(const TrackParameters &, const LocalParameters &, const Amg::MatrixX &, FitQualityOnSurface *&) const =0
the updator interface with FitQualityOnSurface allows to save the chi2 in one step with the updating ...
virtual std::unique_ptr< TrackParameters > combineStates(const TrackParameters &, const TrackParameters &) const =0
adds to a track state the parameters from another state using a statistical combination - use with ca...
virtual std::unique_ptr< TrackParameters > removeFromState(const TrackParameters &, const Amg::Vector2D &, const Amg::MatrixX &, FitQualityOnSurface *&) const =0
the reverse updating or inverse KalmanFilter removes a measurement from the track state,...
virtual std::pair< AmgVector(5), AmgSymMatrix(5)> * updateParameterDifference(const AmgVector(5) &, const AmgSymMatrix(5) &, const Amg::VectorX &, const Amg::MatrixX &, int, Trk::FitQualityOnSurface *&, bool) const =0
pure AMG interface for reference-track KF, allowing update of parameter differences
virtual std::unique_ptr< TrackParameters > removeFromState(const TrackParameters &, const LocalParameters &, const Amg::MatrixX &, FitQualityOnSurface *&) const =0
the reverse updating or inverse KalmanFilter removes a measurement from the track state,...
virtual FitQualityOnSurface predictedStateFitQuality(const TrackParameters &, const Amg::Vector2D &, const Amg::MatrixX &) const =0
estimator for FitQuality on Surface from a predicted track state, that is a state which does not cont...
virtual std::unique_ptr< TrackParameters > removeFromState(const TrackParameters &, const Amg::Vector2D &, const Amg::MatrixX &) const =0
the reverse updating or inverse KalmanFilter removes a measurement from the track state,...
virtual FitQualityOnSurface fullStateFitQuality(const TrackParameters &, const Amg::Vector2D &, const Amg::MatrixX &) const =0
estimator for FitQuality on Surface from a full track state, that is a state which contains the curre...
virtual FitQualityOnSurface predictedStateFitQuality(const TrackParameters &, const TrackParameters &) const =0
estimator for FitQuality on Surface for the situation when a track is fitted to the parameters of ano...
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 2, 1 > Vector2D
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< TrackParametersDim, Charged > TrackParameters