Belle II Software  release-08-01-10
FitParams.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 #include <Eigen/Core>
13 #include <vector>
14 
15 namespace TreeFitter {
16 
17  class ParticleBase;
18 
20  class FitParams {
21 
22  public:
23 
25  explicit FitParams(const int dim);
26 
28  ~FitParams() {};
29 
31  FitParams(const FitParams& toCopy)
32  : m_dim(toCopy.m_dim),
33  m_chiSquare(toCopy.m_chiSquare),
36  m_globalState(Eigen::Matrix < double, -1, 1, 0, MAX_MATRIX_SIZE, 1 > (toCopy.m_globalState)),
37  m_globalCovariance(Eigen::Matrix < double, -1, -1, 0, MAX_MATRIX_SIZE, MAX_MATRIX_SIZE > (toCopy.m_globalCovariance))
38  { }
39 
42  {
43  m_dim = other.m_dim;
44  m_chiSquare = other.m_chiSquare;
49  return *this;
50  }
51 
53  Eigen::Matrix < double, -1, -1, 0, MAX_MATRIX_SIZE, MAX_MATRIX_SIZE > & getCovariance()
54  {
55  return m_globalCovariance;
56  }
57 
59  const Eigen::Matrix < double, -1, -1, 0, MAX_MATRIX_SIZE, MAX_MATRIX_SIZE > & getCovariance() const
60  {
61  return m_globalCovariance;
62  }
63 
65  Eigen::Matrix < double, -1, 1, 0, MAX_MATRIX_SIZE, 1 > & getStateVector() {return m_globalState;}
66 
68  const Eigen::Matrix < double, -1, 1, 0, MAX_MATRIX_SIZE, 1 > & getStateVector() const
69  {
70  return m_globalState;
71  }
72 
74  void resetStateVector();
75 
77  void resetCovariance();
78 
80  int getDimensionOfState() const {return m_dim;};
81 
83  bool testCovariance() const;
84 
86  double chiSquare() const {return m_chiSquare;};
87 
89  int nDof() const;
90 
92  void addChiSquare(double chisq, int nconstraints)
93  {
94  m_chiSquare += chisq;
95  m_nConstraints += nconstraints;
96  }
97 
100  {
101  m_chiSquare = 0;
102  m_nConstraints = 0;
103  }
104 
106  typedef std::vector< std::pair<const ParticleBase*, int> > indexmap;
107 
108  protected:
109 
112 
113  private:
114 
116  int m_dim;
117 
119  double m_chiSquare;
120 
123 
126 
128  std::vector<int> m_nConstraintsVec;
129 
131  Eigen::Matrix < double, -1, 1, 0, MAX_MATRIX_SIZE, 1 > m_globalState;
132 
134  Eigen::Matrix < double, -1, -1, 0, MAX_MATRIX_SIZE, MAX_MATRIX_SIZE > m_globalCovariance;
135 
136  };
137 }
Class to store and manage fitparams (statevector)
Definition: FitParams.h:20
Eigen::Matrix< double, -1, 1, 0, MAX_MATRIX_SIZE, 1 > m_globalState
vector holding all parameters of this fit
Definition: FitParams.h:131
~FitParams()
Destructor.
Definition: FitParams.h:28
void addChiSquare(double chisq, int nconstraints)
increment global chi2
Definition: FitParams.h:92
int m_dim
dimension of statevector
Definition: FitParams.h:116
FitParams()
constructor
Definition: FitParams.h:111
Eigen::Matrix< double, -1, -1, 0, MAX_MATRIX_SIZE, MAX_MATRIX_SIZE > & getCovariance()
getter for the states covariance
Definition: FitParams.h:53
std::vector< int > m_nConstraintsVec
vector with the number of constraints per parameter
Definition: FitParams.h:128
bool testCovariance() const
test if the covariance makes sense
Definition: FitParams.cc:46
Eigen::Matrix< double, -1, 1, 0, MAX_MATRIX_SIZE, 1 > & getStateVector()
getter for the fit parameters/statevector
Definition: FitParams.h:65
double chiSquare() const
get chi2 of statevector
Definition: FitParams.h:86
FitParams & operator=(const FitParams &other)
Assignment operator.
Definition: FitParams.h:41
const Eigen::Matrix< double, -1, -1, 0, MAX_MATRIX_SIZE, MAX_MATRIX_SIZE > & getCovariance() const
const getter for the states covariance
Definition: FitParams.h:59
int nDof() const
get numer of degrees of freedom
Definition: FitParams.cc:56
int getDimensionOfState() const
get the states dimension
Definition: FitParams.h:80
const Eigen::Matrix< double, -1, 1, 0, MAX_MATRIX_SIZE, 1 > & getStateVector() const
const getter for the fit parameters/statevector
Definition: FitParams.h:68
int m_dimensionReduction
reduce the ndf used in the chi2 by this count
Definition: FitParams.h:125
double m_chiSquare
chi2
Definition: FitParams.h:119
std::vector< std::pair< const ParticleBase *, int > > indexmap
index map
Definition: FitParams.h:106
void resetStateVector()
reset the staevector
Definition: FitParams.cc:31
void resetChiSquare()
reset chi2
Definition: FitParams.h:99
int m_nConstraints
number of conatraints
Definition: FitParams.h:122
Eigen::Matrix< double, -1, -1, 0, MAX_MATRIX_SIZE, MAX_MATRIX_SIZE > m_globalCovariance
covariance of the global state
Definition: FitParams.h:134
void resetCovariance()
reset the staevector
Definition: FitParams.cc:36
FitParams(const FitParams &toCopy)
copy constructor
Definition: FitParams.h:31