Belle II Software  release-08-01-10
Projection.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * External Contributor: Wouter Hulsbergen *
5  * *
6  * See git log for contributors and copyright holders. *
7  * This file is licensed under LGPL-3.0, see LICENSE.md. *
8  **************************************************************************/
9 #pragma once
10 
11 #include <analysis/VertexFitting/TreeFitter/EigenStackConfig.h>
12 
13 #include <Eigen/Dense>
14 
15 namespace TreeFitter {
16 
18  class Projection {
19 
20  public:
21 
23  Projection(int dimP, int dimC);
24 
26  virtual ~Projection() {};
27 
29  Eigen::Matrix < double, -1, -1, 0, 7, MAX_MATRIX_SIZE > & getH() {return m_H;}
30 
32  const Eigen::Matrix < double, -1, -1, 0, 7, MAX_MATRIX_SIZE > getH() const {return m_H;}
33 
35  Eigen::Matrix < double, -1, 1, 0, 7, 1 > & getResiduals() {return m_residual;}
36 
38  const Eigen::Matrix < double, -1, 1, 0, 7, 1 > getResiduals() const {return m_residual;}
39 
41  double getElementInResiduals(int row) { return m_residual(m_offset + row, 1); }
42 
44  Eigen::Matrix < double, -1, -1, 0, 7, 7 > & getV() {return m_V;}
45 
47  const Eigen::Matrix < double, -1, -1, 0, 7, 7 > & getV() const {return m_V;}
48 
50  void resetProjection();
51 
53  unsigned int getOffset() const { return m_offset; }
54 
56  void incrementOffset(unsigned int i) { m_offset += i; }
57 
59  unsigned int offset() const { return m_offset; }
60 
62  int getDim() const { return m_dimProj; }
63 
65  int getDimCov() const { return m_dimCov; }
66  private:
67 
69  Eigen::Matrix < double, -1, -1, 0, 7, MAX_MATRIX_SIZE > m_H;
70 
72  Eigen::Matrix < double, -1, -1, 0, 7, 7 > m_V;
73 
75  Eigen::Matrix < double, -1, 1, 0, 7, 1 > m_residual;
76 
78  int m_dimCov;
79 
81  int m_dimProj;
82 
84  unsigned int m_offset;
85  };
86 }
class to store the projected residuals and the corresponding jacobian as well as the covariance matri...
Definition: Projection.h:18
int m_dimProj
dimension of H
Definition: Projection.h:81
unsigned int offset() const
get offset
Definition: Projection.h:59
Projection(int dimP, int dimC)
constructor
Definition: Projection.cc:15
int getDim() const
get size
Definition: Projection.h:62
Eigen::Matrix< double, -1, 1, 0, 7, 1 > m_residual
residuals of constraint
Definition: Projection.h:75
unsigned int m_offset
offset for constraint index.
Definition: Projection.h:84
const Eigen::Matrix< double, -1, 1, 0, 7, 1 > getResiduals() const
get residuals
Definition: Projection.h:38
int getDimCov() const
get size
Definition: Projection.h:65
Eigen::Matrix< double, -1, -1, 0, 7, MAX_MATRIX_SIZE > & getH()
get projection matrix
Definition: Projection.h:29
Eigen::Matrix< double, -1, 1, 0, 7, 1 > & getResiduals()
get residuals
Definition: Projection.h:35
double getElementInResiduals(int row)
ge element in residuals
Definition: Projection.h:41
const Eigen::Matrix< double, -1, -1, 0, 7, MAX_MATRIX_SIZE > getH() const
get projection matrix
Definition: Projection.h:32
Eigen::Matrix< double, -1, -1, 0, 7, 7 > & getV()
get residuals cov matrix
Definition: Projection.h:44
int m_dimCov
dimension of the covariance
Definition: Projection.h:78
Eigen::Matrix< double, -1, -1, 0, 7, 7 > m_V
covariance matrix of this constraint (r')
Definition: Projection.h:72
void resetProjection()
reset projection
Definition: Projection.cc:23
void incrementOffset(unsigned int i)
increment offset
Definition: Projection.h:56
const Eigen::Matrix< double, -1, -1, 0, 7, 7 > & getV() const
get residuals cov matrix
Definition: Projection.h:47
virtual ~Projection()
destructor
Definition: Projection.h:26
Eigen::Matrix< double, -1, -1, 0, 7, MAX_MATRIX_SIZE > m_H
jacobian of the constraint, converts x,p,E<->system of residuals
Definition: Projection.h:69
unsigned int getOffset() const
get offset (for mergedcosntraints)
Definition: Projection.h:53