FairRoot/PandaRoot
FitParams.h
Go to the documentation of this file.
1 // ******************************************************
2 // DecayTreeFitter Package
3 // We thank the original author Wouter Hulsbergen
4 // (BaBar, LHCb) for providing the sources.
5 // http://arxiv.org/abs/physics/0503191v1 (2005)
6 // Adaptation & Development for PANDA: Ralf Kliemt (2015)
7 // ******************************************************
8 #ifndef FITPARAMS_H
9 #define FITPARAMS_H 1
10 
11 #include <iostream>
12 #include <vector>
13 #include <cmath>
14 #include <map>
15 #include "TVectorD.h"
16 #include "TMatrixDSym.h"
17 #include "ChiSquare.h"
18 #include "Rtypes.h"
19 
20 namespace DecayTreeFitter
21 {
22  class ParticleBase ;
23 
24  class FitParams
25  {
26  public:
27  // Class that contains the parameters and covariance for the
28  // vertex fit.
29  FitParams(int dim) ;
30 
31  FitParams(const FitParams& par) ;
32  virtual ~FitParams() ;
33 
34  TMatrixDSym& cov() { return m_cov ; }
35  TVectorD& par() { return m_par ; }
36  double& par(int row) { return m_par(row) ; }
37 
38  TMatrixDSym cov(const std::vector<int>& indexVec) const ;
39  TVectorD par(const std::vector<int>& indexVec) const ;
40 
41  const TMatrixDSym& cov() const { return m_cov ; }
42  const TVectorD& par() const { return m_par ; }
43  const double& par(int row) const { return m_par(row) ; }
44 
45  //TMatrixDSym& scale() { return m_scale ; }
46 
47  int& nConstraintsVec(int row) { return m_nConstraintsVec[row/*-1*/] ; }
48 
49  //int dim() const { return m_par.num_row() ; }
50  int dim() const { return m_dim ; }
51  double chiSquare() const { return m_chiSquare ; }
52 
53  int nConstraints() const { return m_nConstraints ; }
54  int nDof() const { return nConstraints() - dim() ; }
55  double err(int row) const { return sqrt(m_cov(row,row)) ; }
56 
57  void resize(int newdim) ;
58  void reset(int newdim) ;
59  void resetPar() ;
60  void resetCov(double scale=100) ;
61  void print() const ;
62  bool testCov() const ;
63  void addChiSquare( double chi2, int nconstraints, const ParticleBase* p) ;
64  ChiSquare chiSquare( const ParticleBase& p) const ;
65 
66  protected:
67  FitParams() {};
68  private:
69  int m_dim ;
70  TVectorD m_par ;
71  TMatrixDSym m_cov ;
72  //TMatrixDSym m_scale ;
73  double m_chiSquare ;
75  std::vector<int> m_nConstraintsVec ; // vector with number of constraints per parameter
76  std::map<const ParticleBase*, ChiSquare> m_chiSquareMap ;
77  ClassDef ( FitParams,1 )
78  } ;
79 }
80 
81 #endif
int row
Definition: anaLmdDigi.C:67
int nConstraints() const
Definition: FitParams.h:53
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
const double & par(int row) const
Definition: FitParams.h:43
void addChiSquare(double chi2, int nconstraints, const ParticleBase *p)
Definition: FitParams.cxx:141
const TVectorD & par() const
Definition: FitParams.h:42
const TMatrixDSym & cov() const
Definition: FitParams.h:41
Double_t p
Definition: anasim.C:58
void resize(int newdim)
Definition: FitParams.cxx:112
double chiSquare() const
Definition: FitParams.h:51
std::map< const ParticleBase *, ChiSquare > m_chiSquareMap
Definition: FitParams.h:76
std::vector< int > m_nConstraintsVec
Definition: FitParams.h:75
void resetCov(double scale=100)
Definition: FitParams.cxx:43
int & nConstraintsVec(int row)
Definition: FitParams.h:47
double & par(int row)
Definition: FitParams.h:36
double err(int row) const
Definition: FitParams.h:55
void reset(int newdim)
Definition: FitParams.cxx:100
TMatrixDSym & cov()
Definition: FitParams.h:34