simple-tof-analysis
 All Classes Namespaces Functions Variables Groups Pages
TSMinimizer.h
1 /*
2  * TSMinimizer.h
3  *
4  * Created on: Aug 12, 2014
5  * Author: Silvestro di Luise
6  * Silvestro.Di.Luise@cern.ch
7  *
8  *
9  * Minimize a function of the type TSMinimizationFunction
10  * over its parameters
11  *
12  *
13  *
14  */
15 
16 #ifndef TSMINIMIZER_H_
17 #define TSMINIMIZER_H_
18 
19 #include <vector>
20 #include <utility>
21 #include <map>
22 
23 #include <TString.h>
24 
25 #include <TVectorD.h>
26 #include <TMatrixD.h>
27 #include <TTree.h>
28 
29 #include <TStopwatch.h>
30 
31 #include "Minuit2/Minuit2Minimizer.h"
32 #include "Math/Functor.h"
33 #include "Math/Factory.h"
34 
35 #include "TVirtualFitter.h"
36 
37 #include "Math/IFunction.h"
38 #include "Math/Util.h"
39 
40 #include "TSArgList.h"
41 #include "TSParamList.h"
42 
43 #include "TSMinimizationFunction.h"
44 #include "TSChisquareCalculator.h"
45 
46 /*
47  * TODO: add name and title to the minimizer class?
48  *
49  *
50  */
51 
52 /*
53  *
54  */
55 
56 class TSMinimizer {
57 
58 
59 public:
60 
61  TSMinimizer(TString minimizer_type, TString algo_type);
62 
63  TGraph* BuildContourGraph(TString name_x, TString name_y, unsigned int npts=100);
64 
65 
66  void ClearContourGraphs();
67  void ClearContourParamList();
68  void ComputeContours();
69  void Configure();
70 
71  void FillCovarianceMatrix();
72 
73  ROOT::Math::Minimizer* GetMinimizer() const {return fMinimizer;}
74  TSMinimizationFunction* GetMinimizationFunction() const {return fMinFunction;}
75 
76  void FitScan(TSParamList &par_list);
77 
78  TSParamList* GetBestFitParamList() const {return fBestFitParamList;}
79 
80  void GetContourGraphs(TList &) const;
81  void GetCovMatrix(TMatrixD &) const;
82  void GetCorrMatrix(TMatrixD &) const;
83  void GetScanGraphs(TList &) const;
84  void GetHistoryTree(TTree *) const;
85 
86 
87  void Init();
88 
89  int Minimize();
90 
91 
92 
93  void SaveContour(const TSParameter &, const TSParameter &);
94  void SaveContours(const TSParamList &);
95 
96  void SetFunction(TSMinimizationFunction &minim_func);
97 
98  int SetNumOfContourPoints(int n) {fNptsContour=n;}
99 
100  virtual ~TSMinimizer();
101 
102 private:
103 
104  TSMinimizationFunction *fMinFunction;
105 
106  ROOT::Math::Minimizer *fMinimizer;
107 
108  TSParamList *fBestFitParamList;
109 
110  std::map<std::pair<TString,TString>, TGraph* > fContourGraphList;
111  std::vector< std::pair<TString,TString> > fContourParamPairs;
112 
113  std::map<TString,TGraph*> fScanGraphList;
114 
115  int fNptsContour;
116 
117  TMatrixD fCovMatrix;
118  TMatrixD fCorrMatrix;
119  TMatrixD fHesseMatrix;
120 
121  TStopwatch fWatch;
122 };
123 
124 #endif /* TSMINIMIZER_H_ */
Definition: TSMinimizer.h:56
Definition: TSParamList.h:29
int Minimize()
Definition: TSMinimizer.cc:501
void Configure()
Definition: TSMinimizer.cc:187
Definition: TSMinimizationFunction.h:46
Definition: TSParameter.h:39