simple-tof-analysis
 All Classes Namespaces Functions Variables Groups Pages
TSCovMatrixMgr.h
1 /*
2  * TSCovMatrixMgr.h
3  *
4  * Created on: Sep 25, 2014
5  * Author: Silvestro di Luise
6  * Silvestro.Di.Luise@cern.ch
7  *
8  */
9 
10 #ifndef TSCOVMATRIXMGR_H_
11 #define TSCOVMATRIXMGR_H_
12 
13 #include <vector>
14 #include <utility>
15 
16 #include <TObjArray.h>
17 #include <TH2.h>
18 #include <TH2F.h>
19 
20 
21 #include <TVectorD.h>
22 #include <TMatrixTSym.h>
23 #include <TMatrixT.h>
24 #include <TDecompChol.h>
25 #include <TRandom.h>
26 
27 #include <RooMultiVarGaussian.h>
28 
29 #include "TSNamed.h"
30 
31 #include "TSParamList.h"
32 
33 #include "TSNuiParam.h"
34 #include "TSNuiParamSet.h"
35 
36 /*
37  *
38  */
39 
40 class TSCovMatrixMgr: public TSNamed {
41 
42 public:
43 
45  TSCovMatrixMgr(TString name, TString title);
46  virtual ~TSCovMatrixMgr();
47 
48  void Add(const TMatrixT<double> &, TString opt="");
49 
50  void AggregateMatrix(const TMatrixT<double> &);
51 
52  void Decompose();
53 
54 
55  void ImportSubMatrix(const TMatrixT<double> &, int first_ele=0, int last_ele=0);
56  void ImportSubMatrix(const TMatrixT<double> &, std::vector<std::pair<int,int> > &);
57 
58  void ImportSubMatrix(const TH2 &, int first_ele=0, int last_ele=0);
59  void ImportSubMatrix(const TH2 &, std::vector<std::pair<int,int> > &);
60 
61  void ImportSubMatrixDiag(const TH1 &, int first_ele=0, int last_ele=0);
62 
63 
64 
65  int GetDimension() const {return fDimension;}
66  double GetElement(int,int) const;
67 
68  const TMatrixTSym<double>& GetTMatrixTSym() const {return fMatrix;}
69 
70  void Init();
71 
72  void Print();
73 
74  void Randomize();
75 
76  void SetElement(int,int,double);
77  void SetElements(TSNuiParamSet &,TString opt="");
78  void SetParameters(TSNuiParamSet &,TString opt="");
79 
80  void Update();
81 
82 private:
83 
84  int fDimension;
85 
86  bool fMatHasChanged;
87 
88  TMatrixTSym<double> fMatrix;
89  TMatrixTSym<double> fCorr;
90 
91 
92  TDecompChol fDecompChol;
93 
94  TMatrixTSym<double> fMatrixU;
95  TMatrixTSym<double> fMatrixL;
96 
97  TRandom fRandom;
98  //
99  double *fExtracted;
100  TVectorD fExt;
101 
102  //
103  TSNuiParamSet *fParList;
104 
105  TObjArray fParArray;
106 
107  bool fHasParList;
108 
109  TH2F hMatHisto;
110 
111  void fBuildHisto();
112 };
113 
114 #endif /* TSCOVMATRIXMGR_H_ */
Definition: TSCovMatrixMgr.h:40
Definition: TSNuiParamSet.h:36
Definition: TSNamed.h:38
void AggregateMatrix(const TMatrixT< double > &)
Definition: TSCovMatrixMgr.cc:73