ATLAS Offline Software
Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.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 // TrkFilteringNodes.h
7 // Header file for classes representing filtering nodes
9 // (c) ATLAS Detector software
11 // Author: Dmitry Emeliyanov, RAL
12 // D.Emeliyanov@rl.ac.uk
14 
15 #ifndef TRKDISTRIBUTEDKALMANFILTER_TRK_FILTERING_NODES_H
16 #define TRKDISTRIBUTEDKALMANFILTER_TRK_FILTERING_NODES_H
17 
19 
20 
21 
22 namespace Trk {
26  class TrkTrackState;
27  class TrkPlanarSurface;
28 
29  class PrepRawData;
30 
32  {
33  public:
35  virtual ~TrkFilteringNode1D(){};
36  virtual int getKalmanGain(double[5][2]);
37  virtual int getResiduals(double[2]);
38  virtual int getInverseResidualVariance(double[2][2]);
39  virtual int getMeasurementMatrix(double[2][5]);
40  virtual void runKalmanFilter(TrkTrackState*);
41  virtual double calculateChi2();
42  protected:
43  double m_B[5],m_D,m_H[5],m_K[5];
44  double m_resid;
45  double m_m;
46  double m_V;
47  };
48 
50  {
51  public:
53  virtual ~TrkFilteringNode2D(){};
54  virtual int getKalmanGain(double[5][2]);
55  virtual int getResiduals(double[2]);
56  virtual int getInverseResidualVariance(double[2][2]);
57  virtual int getMeasurementMatrix(double[2][5]);
58  virtual void runKalmanFilter(TrkTrackState*);
59  virtual double calculateChi2();
60  protected:
61  double m_B[5][2],m_D[2][2],m_H[2][5],m_K[5][2];
62  double m_resid[2];
63  double m_m[2];
64  double m_V[2][2];
65  };
66 
68  {
69  public:
71  TrkClusterNode(TrkPlanarSurface*,double,double,double);
72  virtual ~TrkClusterNode(){};
73  virtual void validateMeasurement(TrkTrackState*);
74  virtual void updateTrackState(TrkTrackState*);
75  virtual double getChi2Distance(TrkTrackState*);
76  virtual void serialize(char fileName[]);
77  virtual void report(){};
78  virtual void updateWithRIO(const RIO_OnTrack*);
79  };
80 
82  {
83  public:
85  TrkEndCapClusterNode(TrkPlanarSurface*,double,const PrepRawData*,double);
86  TrkEndCapClusterNode(TrkPlanarSurface*,double,double,double,double);
87  virtual ~TrkEndCapClusterNode(){};
88  virtual void validateMeasurement(TrkTrackState*);
89  virtual void updateTrackState(TrkTrackState*);
90  virtual double getChi2Distance(TrkTrackState*);
91  virtual void serialize(char fileName[]);
92  virtual void report(){};
93  virtual void updateWithRIO(const RIO_OnTrack*);
94  protected:
95  double m_Rc;
96  };
97 
99  {
100  public:
101  TrkPixelNode(TrkPlanarSurface*,double,const PrepRawData*);
102  TrkPixelNode(TrkPlanarSurface*,double,const double[2],const double[4]);
103  virtual ~TrkPixelNode(){};
104  virtual void validateMeasurement(TrkTrackState*);
105  virtual void updateTrackState(TrkTrackState*);
106  virtual double getChi2Distance(TrkTrackState*);
107  virtual void serialize(char fileName[]);
108  virtual void report();
109  virtual void updateWithRIO(const RIO_OnTrack*);
110  };
111 
113  {
114  public:
115  TrkTrtNode(TrkPlanarSurface*,double,double,double,const PrepRawData*);
116  virtual ~TrkTrtNode(){};
117  virtual void validateMeasurement(TrkTrackState*);
118  virtual void updateTrackState(TrkTrackState*);
119  virtual double getChi2Distance(TrkTrackState*);
120  virtual void serialize(char fileName[]);
121  virtual void updateInternal();
122  virtual void report(){};
123  virtual void updateWithRIO(const RIO_OnTrack*);
124  protected:
126  char m_lrSign;
128  };
129 
130 }
131 
132 #endif
Trk::TrkTrtNode::m_minBound
double m_minBound
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:125
Trk::TrkEndCapClusterNode
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:82
Trk::TrkTrtNode::serialize
virtual void serialize(char fileName[])
Definition: TrkFilteringNodes.cxx:423
Trk::TrkPixelNode::updateWithRIO
virtual void updateWithRIO(const RIO_OnTrack *)
Definition: TrkFilteringNodes.cxx:392
Trk::TrkTrtNode::m_maxBound
double m_maxBound
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:125
Trk::TrkFilteringNode2D::getInverseResidualVariance
virtual int getInverseResidualVariance(double[2][2])
Definition: TrkFilteringNodes.cxx:113
Trk::TrkTrtNode::updateWithRIO
virtual void updateWithRIO(const RIO_OnTrack *)
Definition: TrkFilteringNodes.cxx:477
Trk::TrkFilteringNode1D::m_V
double m_V
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:46
Trk::TrkEndCapClusterNode::updateTrackState
virtual void updateTrackState(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:277
Trk::TrkClusterNode
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:68
Trk::TrkPixelNode::~TrkPixelNode
virtual ~TrkPixelNode()
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:103
Trk::TrkTrtNode::report
virtual void report()
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:122
Trk::TrkTrtNode::updateTrackState
virtual void updateTrackState(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:465
Trk::TrkPixelNode::report
virtual void report()
Definition: TrkFilteringNodes.cxx:331
TrkTrackState
Definition: Trigger/TrigAccel/TrigCudaFitter/src/TrkTrackState.h:17
Trk::TrkFilteringNode2D::calculateChi2
virtual double calculateChi2()
Definition: TrkFilteringNodes.cxx:75
Trk::TrkFilteringNode1D
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:32
Trk::TrkClusterNode::validateMeasurement
virtual void validateMeasurement(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:154
Trk::TrkTrackState
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkTrackState.h:24
Trk::TrkTrtNode::getChi2Distance
virtual double getChi2Distance(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:437
Trk::TrkPlanarSurface
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkPlanarSurface.h:25
Trk::TrkFilteringNode2D::m_D
double m_D[2][2]
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:61
Trk::TrkEndCapClusterNode::serialize
virtual void serialize(char fileName[])
Definition: TrkFilteringNodes.cxx:243
Trk::TrkClusterNode::TrkClusterNode
TrkClusterNode(TrkPlanarSurface *, double, const PrepRawData *)
Definition: TrkFilteringNodes.cxx:127
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
Trk::TrkTrtNode::m_freezeLR
bool m_freezeLR
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:127
Trk::TrkFilteringNode2D::getKalmanGain
virtual int getKalmanGain(double[5][2])
Definition: TrkFilteringNodes.cxx:100
Trk::TrkTrtNode::validateMeasurement
virtual void validateMeasurement(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:430
Trk::TrkEndCapClusterNode::report
virtual void report()
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:92
Trk::TrkTrtNode
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:113
Trk::TrkTrtNode::~TrkTrtNode
virtual ~TrkTrtNode()
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:116
Trk::TrkFilteringNode1D::getResiduals
virtual int getResiduals(double[2])
Definition: TrkFilteringNodes.cxx:58
Trk::TrkFilteringNode2D::runKalmanFilter
virtual void runKalmanFilter(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:83
Trk::TrkFilteringNode1D::getInverseResidualVariance
virtual int getInverseResidualVariance(double[2][2])
Definition: TrkFilteringNodes.cxx:63
Trk::TrkEndCapClusterNode::m_Rc
double m_Rc
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:95
Trk::TrkFilteringNode2D::m_m
double m_m[2]
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:63
TrkPlanarSurface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/TrkPlanarSurface.h:15
Trk::TrkFilteringNode1D::m_H
double m_H[5]
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:43
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
Trk::TrkFilteringNode1D::getKalmanGain
virtual int getKalmanGain(double[5][2])
Definition: TrkFilteringNodes.cxx:51
Trk::TrkClusterNode::updateTrackState
virtual void updateTrackState(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:171
Trk::TrkPixelNode::getChi2Distance
virtual double getChi2Distance(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:343
TrkBaseNode.h
Trk::TrkClusterNode::report
virtual void report()
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:77
Trk::TrkBaseNode
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkBaseNode.h:23
Trk::TrkFilteringNode2D::getResiduals
virtual int getResiduals(double[2])
Definition: TrkFilteringNodes.cxx:107
Trk::TrkFilteringNode2D::m_V
double m_V[2][2]
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:64
Trk::TrkFilteringNode1D::m_B
double m_B[5]
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:43
Trk::TrkClusterNode::serialize
virtual void serialize(char fileName[])
Definition: TrkFilteringNodes.cxx:147
Trk::TrkFilteringNode1D::m_m
double m_m
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:45
Trk::TrkFilteringNode2D::m_B
double m_B[5][2]
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:61
Trk::TrkClusterNode::updateWithRIO
virtual void updateWithRIO(const RIO_OnTrack *)
Definition: TrkFilteringNodes.cxx:176
Trk::TrkFilteringNode1D::TrkFilteringNode1D
TrkFilteringNode1D()
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:34
Trk::TrkClusterNode::getChi2Distance
virtual double getChi2Distance(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:159
Trk::TrkFilteringNode1D::m_D
double m_D
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:43
Trk::TrkPixelNode
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:99
Trk::TrkFilteringNode2D::m_resid
double m_resid[2]
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:62
Trk::TrkTrtNode::updateInternal
virtual void updateInternal()
Definition: TrkFilteringNodes.cxx:470
Trk::TrkEndCapClusterNode::getChi2Distance
virtual double getChi2Distance(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:255
Trk::TrkFilteringNode2D::getMeasurementMatrix
virtual int getMeasurementMatrix(double[2][5])
Definition: TrkFilteringNodes.cxx:120
Trk::PrepRawData
Definition: PrepRawData.h:62
Trk::TrkFilteringNode1D::runKalmanFilter
virtual void runKalmanFilter(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:37
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::TrkEndCapClusterNode::validateMeasurement
virtual void validateMeasurement(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:250
Trk::TrkFilteringNode2D
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:50
Trk::TrkEndCapClusterNode::updateWithRIO
virtual void updateWithRIO(const RIO_OnTrack *)
Definition: TrkFilteringNodes.cxx:282
Trk::TrkFilteringNode1D::m_K
double m_K[5]
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:43
Trk::TrkEndCapClusterNode::~TrkEndCapClusterNode
virtual ~TrkEndCapClusterNode()
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:87
Trk::TrkFilteringNode2D::m_H
double m_H[2][5]
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:61
Trk::TrkPixelNode::updateTrackState
virtual void updateTrackState(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:387
Trk::TrkPixelNode::validateMeasurement
virtual void validateMeasurement(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:338
Trk::TrkTrtNode::TrkTrtNode
TrkTrtNode(TrkPlanarSurface *, double, double, double, const PrepRawData *)
Definition: TrkFilteringNodes.cxx:410
Trk::TrkFilteringNode2D::m_K
double m_K[5][2]
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:61
Trk::TrkFilteringNode1D::calculateChi2
virtual double calculateChi2()
Definition: TrkFilteringNodes.cxx:33
Trk::TrkFilteringNode1D::m_resid
double m_resid
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:44
Trk::TrkFilteringNode2D::TrkFilteringNode2D
TrkFilteringNode2D()
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:52
Trk::TrkClusterNode::~TrkClusterNode
virtual ~TrkClusterNode()
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:72
Trk::TrkFilteringNode1D::~TrkFilteringNode1D
virtual ~TrkFilteringNode1D()
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:35
Trk::TrkEndCapClusterNode::TrkEndCapClusterNode
TrkEndCapClusterNode(TrkPlanarSurface *, double, const PrepRawData *)
Definition: TrkFilteringNodes.cxx:186
Trk::TrkPixelNode::TrkPixelNode
TrkPixelNode(TrkPlanarSurface *, double, const PrepRawData *)
Definition: TrkFilteringNodes.cxx:296
Trk::TrkTrtNode::m_lrSign
char m_lrSign
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:126
Trk::TrkFilteringNode1D::getMeasurementMatrix
virtual int getMeasurementMatrix(double[2][5])
Definition: TrkFilteringNodes.cxx:68
Trk::TrkFilteringNode2D::~TrkFilteringNode2D
virtual ~TrkFilteringNode2D()
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:53
Trk::TrkPixelNode::serialize
virtual void serialize(char fileName[])
Definition: TrkFilteringNodes.cxx:324