ATLAS Offline Software
TrkFilteringNodes.cxx
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.cxx
7 // Source file for TrkFilteringNodes classes
9 // (c) ATLAS Detector software
11 // Author: Dmitry Emeliyanov, RAL
12 // D.Emeliyanov@rl.ac.uk
14 
23 #include "TrkSurfaces/Surface.h"
25 #include <cmath>
26 #include <cstdio>
27 #include <cstdlib>
28 
29 
30 
31 namespace Trk
32 {
34  return(m_resid * m_resid * m_D);
35  }
36 
38  int i, j, idx = 0;
39  double updState[5], updCov[15];
40 
41  for (i = 0; i < 5; i++) m_K[i] = m_D * m_B[i];
42  for (i = 0; i < 5; i++) updState[i] = m_K[i] * m_resid;
43  pTS->updateTrackState(updState);
44  for (i = 0; i < 5; i++) for (j = i; j < 5; j++) {
45  updCov[idx] = -m_K[i] * m_B[j];
46  idx++;
47  }
48  pTS->updateTrackCovariance(updCov);
49  }
50 
51  int TrkFilteringNode1D::getKalmanGain(double K[5][2]) {
52  int i;
53 
54  for (i = 0; i < 5; i++) K[i][0] = m_K[i];
55  return 1;
56  }
57 
59  r[0] = m_resid;
60  return 1;
61  }
62 
64  V[0][0] = m_D;
65  return 1;
66  }
67 
69  int i;
70 
71  for (i = 0; i < 5; i++) H[0][i] = m_H[i];
72  return 1;
73  }
74 
76  double dchi2;
77 
78  dchi2 = m_resid[0] * m_resid[0] * m_D[0][0] + 2 * m_resid[0] * m_resid[1] * m_D[0][1] +
79  m_resid[1] * m_resid[1] * m_D[1][1];
80  return dchi2;
81  }
82 
84  int i, j, idx = 0;
85  double updState[5], updCov[15];
86 
87  for (i = 0; i < 5; i++)
88  for (j = 0; j < 2; j++)
89  m_K[i][j] = m_B[i][0] * m_D[0][j] + m_B[i][1] * m_D[1][j];
90  for (i = 0; i < 5; i++)
91  updState[i] = m_K[i][0] * m_resid[0] + m_K[i][1] * m_resid[1];
92  pTS->updateTrackState(updState);
93  for (i = 0; i < 5; i++) for (j = i; j < 5; j++) {
94  updCov[idx] = -m_K[i][0] * m_B[j][0] - m_K[i][1] * m_B[j][1];
95  idx++;
96  }
97  pTS->updateTrackCovariance(updCov);
98  }
99 
100  int TrkFilteringNode2D::getKalmanGain(double K[5][2]) {
101  int i, j;
102 
103  for (i = 0; i < 5; i++) for (j = 0; j < 2; j++) K[i][j] = m_K[i][j];
104  return 2;
105  }
106 
108  r[0] = m_resid[0];
109  r[1] = m_resid[1];
110  return 2;
111  }
112 
114  int i, j;
115 
116  for (i = 0; i < 2; i++) for (j = 0; j < 2; j++) V[i][j] = m_D[i][j];
117  return 2;
118  }
119 
121  int i, j;
122 
123  for (j = 0; j < 2; j++) for (i = 0; i < 5; i++) H[j][i] = m_H[j][i];
124  return 2;
125  }
126 
127  TrkClusterNode::TrkClusterNode(TrkPlanarSurface* pS, double chi2Cut, const PrepRawData* pPRD) {
128  m_pSurface = pS;
129  m_chi2Cut = chi2Cut;
130  m_m = pPRD->localPosition()[0];
131  m_V = pPRD->localCovariance()(0, 0);
132  m_pPRD = pPRD;
133  m_nodeType = 2;
134  m_ndof = 1;
135  }
136 
137  TrkClusterNode::TrkClusterNode(TrkPlanarSurface* pS, double chi2Cut, double pos, double cov) {
138  m_pSurface = pS;
139  m_chi2Cut = chi2Cut;
140  m_m = pos;
141  m_V = cov;
142  m_pPRD = nullptr;
143  m_nodeType = 2;
144  m_ndof = 1;
145  }
146 
148  FILE* pFile;
149 
150  pFile = fopen(fileName, "a");
151  fclose(pFile);
152  }
153 
155  m_dChi2 = getChi2Distance(pTS);
156  m_nodeState = (m_dChi2 < m_chi2Cut) ? 1 : 0;
157  }
158 
160  for (int i = 0; i < 5; i++) m_B[i] = pTS->getTrackCovariance(0, i);
161  m_H[0] = 1.0;
162  m_H[1] = 0.0;
163  m_H[2] = 0.0;
164  m_H[3] = 0.0;
165  m_H[4] = 0.0;
166  m_D = 1.0 / (pTS->getTrackCovariance(0, 0) + m_V);
167  m_resid = m_m - pTS->getTrackState(0);
168  return calculateChi2();
169  }
170 
172  if (isValidated()) runKalmanFilter(pTS);
173  m_pTrackState = pTS;
174  }
175 
177  /*
178  printf("RIO update, SCT cluster: old m=%f new m=%f old V=%f new V=%f\n",
179  m_m,pRIO->localParameters()[Trk::locX],sqrt(m_V),
180  sqrt(pRIO->localErrorMatrix().localCovariance()[0][0]));
181  */
182  m_m = pRIO->localParameters()[Trk::locX];
183  m_V = pRIO->localCovariance()(0, 0);
184  }
185 
187  m_pSurface = pS;
188  m_chi2Cut = chi2Cut;
189  m_m = pPRD->localPosition()[0];
190  m_V = pPRD->localCovariance()(0, 0);
191  m_pPRD = pPRD;
192 
193  const Trk::SurfaceBounds& rBounds = pPRD->detectorElement()->surface().bounds();
194  const Trk::TrapezoidBounds& ecBounds = dynamic_cast<const Trk::TrapezoidBounds&>(rBounds);
195 
196  m_Rc = (ecBounds.maxHalflengthX() + ecBounds.minHalflengthX()) * ecBounds.halflengthY() /
197  (ecBounds.maxHalflengthX() - ecBounds.minHalflengthX());
198  m_nodeType = 2;
199  m_ndof = 1;
200 
201  double C[2][2];
202  C[0][0] = pPRD->localCovariance()(0, 0);
203  C[0][1] = C[1][0] = pPRD->localCovariance()(0, 1);
204  C[1][1] = pPRD->localCovariance()(1, 1);
205  m_V = (C[0][0] * m_Rc * m_Rc - 2 * m_m * m_Rc * C[0][1] + C[1][1] * m_m * m_m) / (m_Rc * m_Rc + m_m * m_m);
206  //printf("EC hit error=%f\n",m_V);
207  }
208 
210  double chi2Cut,
211  const PrepRawData* pPRD, double Rc)
212  : m_Rc(Rc) {
213  m_pSurface = pS;
214  m_chi2Cut = chi2Cut;
215  m_m = pPRD->localPosition()[0];
216  m_V = pPRD->localCovariance()(0, 0);
217  m_pPRD = pPRD;
218 
219  m_nodeType = 2;
220  m_ndof = 1;
221  double C[2][2];
222  C[0][0] = pPRD->localCovariance()(0, 0);
223  C[0][1] = C[1][0] = pPRD->localCovariance()(0, 1);
224  C[1][1] = pPRD->localCovariance()(1, 1);
225  m_V = (C[0][0] * m_Rc * m_Rc - 2 * m_m * m_Rc * C[0][1] + C[1][1] * m_m * m_m) / (m_Rc * m_Rc + m_m * m_m);
226  //printf("EC hit error=%f\n",m_V);
227  }
228 
230  double chi2Cut, double Rc,
231  double pos, double cov)
232  : m_Rc(Rc) {
233  m_pSurface = pS;
234  m_chi2Cut = chi2Cut;
235  m_m = pos;
236  m_V = cov;
237  m_pPRD = nullptr;
238 
239  m_nodeType = 2;
240  m_ndof = 1;
241  }
242 
244  FILE* pFile;
245 
246  pFile = fopen(fileName, "a");
247  fclose(pFile);
248  }
249 
251  m_dChi2 = getChi2Distance(pTS);
252  m_nodeState = (m_dChi2 < m_chi2Cut) ? 1 : 0;
253  }
254 
256  double corr;
257 
258  corr = 1.0 / (pTS->getTrackState(1) + m_Rc);
259  m_H[0] = m_Rc * corr;
260  m_H[1] = -pTS->getTrackState(0) * m_Rc * corr * corr;
261  m_H[2] = 0.0;
262  m_H[3] = 0.0;
263  m_H[4] = 0.0;
264 
265  m_B[0] = m_H[0] * pTS->getTrackCovariance(0, 0) + m_H[1] * pTS->getTrackCovariance(0, 1);
266  m_B[1] = m_H[0] * pTS->getTrackCovariance(0, 1) + m_H[1] * pTS->getTrackCovariance(1, 1);
267  m_B[2] = m_H[0] * pTS->getTrackCovariance(0, 2) + m_H[1] * pTS->getTrackCovariance(1, 2);
268  m_B[3] = m_H[0] * pTS->getTrackCovariance(0, 3) + m_H[1] * pTS->getTrackCovariance(1, 3);
269  m_B[4] = m_H[0] * pTS->getTrackCovariance(0, 4) + m_H[1] * pTS->getTrackCovariance(1, 4);
270  //corr=1.0+pTS->getTrackState(1)/m_Rc;
271  //m_D=1.0/(m_B[0]*m_H[0]+m_B[1]*m_H[1]+m_V*corr*corr);
272  m_D = 1.0 / (m_B[0] * m_H[0] + m_B[1] * m_H[1] + m_V);
273  m_resid = m_m - pTS->getTrackState(0) * m_Rc / (pTS->getTrackState(1) + m_Rc);
274  return calculateChi2();
275  }
276 
278  if (isValidated()) runKalmanFilter(pTS);
279  m_pTrackState = pTS;
280  }
281 
283  /*
284  printf("RIO update, EC cluster: old m=%f new m=%f old V=%f ",
285  m_m,pRIO->localParameters()[Trk::locX],sqrt(m_V));
286  */
287  m_m = pRIO->localParameters()[Trk::locX];
288  double C[2][2];
289  C[0][0] = pRIO->localCovariance()(0, 0);
290  C[0][1] = C[1][0] = pRIO->localCovariance()(0, 1);
291  C[1][1] = pRIO->localCovariance()(1, 1);
292  m_V = (C[0][0] * m_Rc * m_Rc - 2 * m_m * m_Rc * C[0][1] + C[1][1] * m_m * m_m) / (m_Rc * m_Rc + m_m * m_m);
293  //printf("new V=%f\n",sqrt(m_V));
294  }
295 
296  TrkPixelNode::TrkPixelNode(TrkPlanarSurface* pS, double chi2Cut, const PrepRawData* pPRD) {
297  int i, j;
298 
299  m_pSurface = pS;
300  m_chi2Cut = chi2Cut;
301  for (i = 0; i < 2; i++) {
302  m_m[i] = pPRD->localPosition()[i];
303  for (j = 0; j < 2; j++) m_V[i][j] = pPRD->localCovariance()(i, j);
304  }
305  m_pPRD = pPRD;
306  m_nodeType = 1;
307  m_ndof = 2;
308  }
309 
310  TrkPixelNode::TrkPixelNode(TrkPlanarSurface* pS, double chi2Cut, const double pos[2], const double cov[4]) {
311  m_pSurface = pS;
312  m_chi2Cut = chi2Cut;
313  m_m[0] = pos[0];
314  m_m[1] = pos[1];
315  m_V[0][0] = cov[0];
316  m_V[0][1] = cov[1];
317  m_V[1][0] = cov[2];
318  m_V[1][1] = cov[3];
319  m_pPRD = nullptr;
320  m_nodeType = 1;
321  m_ndof = 2;
322  }
323 
325  FILE* pFile;
326 
327  pFile = fopen(fileName, "a");
328  fclose(pFile);
329  }
330 
332  /*
333  printf("PIXEL NODE x=%f y=%f\n",m_m[0],m_m[1]);
334  */
335  m_pSurface->report();
336  }
337 
339  m_dChi2 = getChi2Distance(pTS);
340  m_nodeState = (m_dChi2 < m_chi2Cut) ? 1 : 0;
341  }
342 
344  double det;
345 
346  m_H[0][0] = 1.0;
347  m_H[1][1] = 1.0;
348  m_H[0][1] = 0.0;
349  m_H[0][2] = 0.0;
350  m_H[0][3] = 0.0;
351  m_H[0][4] = 0.0;
352  m_H[1][0] = 0.0;
353  m_H[1][2] = 0.0;
354  m_H[1][3] = 0.0;
355  m_H[1][4] = 0.0;
356 
357  m_B[0][0] = pTS->getTrackCovariance(0, 0);
358  m_B[0][1] = pTS->getTrackCovariance(0, 1);
359  m_B[1][0] = pTS->getTrackCovariance(0, 1);
360  m_B[1][1] = pTS->getTrackCovariance(1, 1);
361  m_B[2][0] = pTS->getTrackCovariance(0, 2);
362  m_B[2][1] = pTS->getTrackCovariance(1, 2);
363  m_B[3][0] = pTS->getTrackCovariance(0, 3);
364  m_B[3][1] = pTS->getTrackCovariance(1, 3);
365  m_B[4][0] = pTS->getTrackCovariance(0, 4);
366  m_B[4][1] = pTS->getTrackCovariance(1, 4);
367 
368  m_resid[0] = m_m[0] - pTS->getTrackState(0);
369  m_resid[1] = m_m[1] - pTS->getTrackState(1);
370 
371  double W[2][2];
372 
373  W[0][0] = pTS->getTrackCovariance(0, 0) + m_V[0][0];
374  W[1][0] = W[0][1] = pTS->getTrackCovariance(0, 1) + m_V[0][1];
375  W[1][1] = pTS->getTrackCovariance(1, 1) + m_V[1][1];
376  det = W[0][0] * W[1][1] - W[0][1] * W[0][1];
377  if (det == 0.0) return 1e8;
378  det = 1.0 / det;
379  m_D[0][0] = W[1][1] * det;
380  m_D[0][1] = -W[0][1] * det;
381  m_D[1][0] = m_D[0][1];
382  m_D[1][1] = W[0][0] * det;
383 
384  return calculateChi2();
385  }
386 
388  if (isValidated()) runKalmanFilter(pTS);
389  m_pTrackState = pTS;
390  }
391 
393  int i, j;
394 
395  /*
396  printf("RIO update, Pixel: old m %f %f new m %f %f\n",
397  m_m[0],m_m[1],pRIO->localParameters()[Trk::locX],pRIO->localParameters()[Trk::locY]);
398  */
399  m_m[0] = pRIO->localParameters()[Trk::locX];
400  m_m[1] = pRIO->localParameters()[Trk::locY];
401 
402  // printf("old errors: %f %f %f\n",sqrt(m_V[0][0]),m_V[0][1],sqrt(m_V[1][1]));
403 
404  for (i = 0; i < 2; i++) {
405  for (j = 0; j < 2; j++) m_V[i][j] = pRIO->localCovariance()(i, j);
406  }
407  // printf("new errors: %f %f %f\n",sqrt(m_V[0][0]),m_V[0][1],sqrt(m_V[1][1]));
408  }
409 
410  TrkTrtNode::TrkTrtNode(TrkPlanarSurface* pS, double chi2Cut, double lmin,
411  double lmax, const PrepRawData* pPRD)
412  : m_minBound(lmin), m_maxBound(lmax), m_lrSign(0), m_freezeLR(false) {
413  m_pSurface = pS;
414  m_chi2Cut = chi2Cut;
415  m_m = pPRD->localPosition()[0];
416  m_V = pPRD->localCovariance()(0, 0);
417 
418  m_pPRD = pPRD;
419  m_nodeType = 3;
420  m_ndof = 1;
421  }
422 
424  FILE* pFile;
425 
426  pFile = fopen(fileName, "a");
427  fclose(pFile);
428  }
429 
431  if ((pTS->getTrackState(1) > m_minBound) && (pTS->getTrackState(1) < m_maxBound)) {
432  m_dChi2 = getChi2Distance(pTS);
433  m_nodeState = (m_dChi2 < m_chi2Cut) ? 1 : 0;
434  } else m_nodeState = 0;
435  }
436 
438  int i;
439  double tx, lV[3], V[3], corr;
440 
441  //double lP[3],P[3];
442 
443  if (!m_freezeLR) m_lrSign = (pTS->getTrackState(0) < 0.0) ? -1 : 1;
444  V[0] = sin(pTS->getTrackState(3)) * cos(pTS->getTrackState(2));
445  V[1] = sin(pTS->getTrackState(3)) * sin(pTS->getTrackState(2));
446  V[2] = cos(pTS->getTrackState(3));
447  //lP[0]=pTS->getTrackState(0);
448  //lP[1]=pTS->getTrackState(1);
449  //lP[2]=0.0;
450  //pTS->getSurface()->transformPointToGlobal(lP,P);
451  pTS->getSurface()->rotateVectorToLocal(V, lV);
452  tx = lV[0] / lV[2];
453  corr = 1.0 / sqrt(1.0 + tx * tx);
454  for (i = 0; i < 5; i++) m_B[i] = corr * pTS->getTrackCovariance(0, i);
455  m_H[0] = corr;
456  m_H[1] = 0.0;
457  m_H[2] = 0.0;
458  m_H[3] = 0.0;
459  m_H[4] = 0.0;
460  m_D = 1.0 / (corr * corr * pTS->getTrackCovariance(0, 0) + m_V);
461  m_resid = m_lrSign * m_m - corr * pTS->getTrackState(0);
462  return calculateChi2();
463  }
464 
466  if (isValidated()) runKalmanFilter(pTS);
467  m_pTrackState = pTS;
468  }
469 
471  if (isValidated() && (m_pTrackState != nullptr)) {
472  m_freezeLR = true;
473  m_lrSign = (m_pTrackState->getTrackState(0) < 0.0) ? -1 : 1;
474  }
475  }
476 
478  }
479 }
Trk::TrkTrtNode::m_minBound
double m_minBound
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:125
Trk::TrkBaseNode::m_pSurface
TrkPlanarSurface * m_pSurface
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkBaseNode.h:54
Trk::TrkTrackState::getSurface
TrkPlanarSurface * getSurface()
Definition: TrkTrackState.cxx:106
TrapezoidBounds.h
Trk::TrapezoidBounds::maxHalflengthX
double maxHalflengthX() const
This method returns the maximal halflength in X (first coordinate of local surface frame)
beamspotman.r
def r
Definition: beamspotman.py:676
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
TrackParameters.h
Trk::locX
@ locX
Definition: ParamDefs.h:43
Trk::TrkTrtNode::updateTrackState
virtual void updateTrackState(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:465
Trk::locY
@ locY
local cartesian
Definition: ParamDefs.h:44
Surface.h
Trk::TrkPixelNode::report
virtual void report()
Definition: TrkFilteringNodes.cxx:331
Trk::TrkTrackState::updateTrackCovariance
void updateTrackCovariance(const double *)
Definition: TrkTrackState.cxx:118
JetTiledMap::W
@ W
Definition: TiledEtaPhiMap.h:44
Trk::TrkFilteringNode2D::calculateChi2
virtual double calculateChi2()
Definition: TrkFilteringNodes.cxx:75
Trk::SurfaceBounds
Definition: SurfaceBounds.h:47
Trk::TrkClusterNode::validateMeasurement
virtual void validateMeasurement(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:154
Trk::TrkTrackState
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkTrackState.h:24
Trk::TrapezoidBounds::halflengthY
double halflengthY() const
This method returns the halflength in Y (second coordinate of local surface frame)
Trk::PrepRawData::localCovariance
const Amg::MatrixX & localCovariance() const
return const ref to the error matrix
Trk::TrkTrtNode::getChi2Distance
virtual double getChi2Distance(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:437
Trk::TrkPlanarSurface
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkPlanarSurface.h:25
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:201
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
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
Trk::TrapezoidBounds::minHalflengthX
double minHalflengthX() const
This method returns the minimal halflength in X (first coordinate of local surface frame)
Trk::TrkFilteringNode2D::getKalmanGain
virtual int getKalmanGain(double[5][2])
Definition: TrkFilteringNodes.cxx:100
Trk::TrkTrtNode::validateMeasurement
virtual void validateMeasurement(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:430
ParamDefs.h
PrepRawData.h
Trk::TrkBaseNode::m_chi2Cut
double m_chi2Cut
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkBaseNode.h:52
Trk::TrkBaseNode::m_pTrackState
TrkTrackState * m_pTrackState
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkBaseNode.h:58
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
Trk::TrkPlanarSurface::rotateVectorToLocal
void rotateVectorToLocal(const double *, double *)
Definition: TrkPlanarSurface.cxx:99
H
#define H(x, y, z)
Definition: MD5.cxx:114
Trk::TrkFilteringNode1D::m_H
double m_H[5]
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:43
TrkTrackState.h
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
lumiFormat.i
int i
Definition: lumiFormat.py:92
Trk::TrkBaseNode::m_dChi2
double m_dChi2
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkBaseNode.h:56
TrkBaseNode.h
Trk::TrkFilteringNode2D::getResiduals
virtual int getResiduals(double[2])
Definition: TrkFilteringNodes.cxx:107
WritePulseShapeToCool.det
det
Definition: WritePulseShapeToCool.py:204
Trk::TrkBaseNode::m_nodeType
char m_nodeType
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkBaseNode.h:53
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::TrkDetElementBase::surface
virtual const Surface & surface() const =0
Return surface associated with this detector element.
Trk::TrkFilteringNode1D::m_m
double m_m
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:45
Trk::TrkBaseNode::isValidated
virtual bool isValidated()
Definition: TrkBaseNode.cxx:31
Trk::TrkBaseNode::m_ndof
int m_ndof
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkBaseNode.h:57
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::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::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::MeasurementBase::localCovariance
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
Definition: MeasurementBase.h:138
Trk::TrkFilteringNode2D::getMeasurementMatrix
virtual int getMeasurementMatrix(double[2][5])
Definition: TrkFilteringNodes.cxx:120
Trk::PrepRawData
Definition: PrepRawData.h:62
Trk::TrkPlanarSurface::report
void report()
Definition: TrkPlanarSurface.cxx:147
Trk::TrkBaseNode::m_nodeState
int m_nodeState
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkBaseNode.h:51
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::TrkBaseNode::m_pPRD
const PrepRawData * m_pPRD
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkBaseNode.h:55
Trk::Surface::bounds
virtual const SurfaceBounds & bounds() const =0
Surface Bounds method.
RIO_OnTrack.h
Trk::TrkEndCapClusterNode::validateMeasurement
virtual void validateMeasurement(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:250
Trk::PrepRawData::localPosition
const Amg::Vector2D & localPosition() const
return the local position reference
TrkFilteringNodes.h
Trk::TrkEndCapClusterNode::updateWithRIO
virtual void updateWithRIO(const RIO_OnTrack *)
Definition: TrkFilteringNodes.cxx:282
Trk::TrapezoidBounds
Definition: TrapezoidBounds.h:43
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
Trk::MeasurementBase::localParameters
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Definition: MeasurementBase.h:132
Trk::TrkFilteringNode1D::m_K
double m_K[5]
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkFilteringNodes.h:43
Trk::TrkTrackState::updateTrackState
void updateTrackState(const double *)
Definition: TrkTrackState.cxx:110
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
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
Trk::TrkPixelNode::validateMeasurement
virtual void validateMeasurement(TrkTrackState *)
Definition: TrkFilteringNodes.cxx:338
Trk::TrkTrackState::getTrackState
double getTrackState(int i)
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkTrackState.h:47
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
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
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
TrkPlanarSurface.h
TileDCSDataPlotter.tx
tx
Definition: TileDCSDataPlotter.py:878
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::TrkTrackState::getTrackCovariance
double getTrackCovariance(int i, int j)
Definition: Tracking/TrkFitter/TrkDistributedKalmanFilter/TrkDistributedKalmanFilter/TrkTrackState.h:51
Trk::PrepRawData::detectorElement
virtual const TrkDetElementBase * detectorElement() const =0
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...
Trk::TrkPixelNode::serialize
virtual void serialize(char fileName[])
Definition: TrkFilteringNodes.cxx:324