AmpGen 2.1
Loading...
Searching...
No Matches
FitResult.h
Go to the documentation of this file.
1#ifndef AMPGEN_FITRESULT_H
2#define AMPGEN_FITRESULT_H
3
4#include <TMatrixD.h>
5
8#include "AmpGen/Utilities.h"
9
10namespace AmpGen
11{
12 class Minimiser;
14
16 {
17 public:
20 explicit FitResult( const FitResult& other );
21 explicit FitResult( const std::string& filename );
22 explicit FitResult( const Minimiser& mini );
23 FitResult( MinuitParameterSet& mps, const TMatrixD& covMini );
24
25 void addObservable( const std::string& name, const double& F );
26 void addChi2( const double& chi2, const double& nBins );
27 void addFractions( const std::vector<FitFraction>& fractions );
28 void addFraction( const std::string& name, const double& frac, const double& err );
29 void setCov( const size_t& x, const size_t& y, const double& F );
30 void writeToFile( const std::string& fname );
32
33 bool readFile( const std::string& fname );
34
35 double chi2() const;
36 double LL() const;
37 double Edm() const;
38 double NCalls() const;
39 double dof() const;
40 double cov(const size_t& x, const size_t& y ) const;
41 double cov(const std::string& x, const std::string& y ) const;
42 double correlation( const std::string& x, const std::string& y ) const;
43
44 int status() const;
45 int nParam() const;
46 int nBins() const;
47
48 std::map<std::string, double> observables() const;
50
51 std::vector<FitFraction> fitFractions() const;
52 std::vector<MinuitParameter*> parameters() const;
53 std::vector<MinuitParameter*> floating(const bool& extended = false) const;
54 TMatrixD cov() const;
55
56 void print() const;
57
58 TMatrixD getReducedCovariance( const bool& extended = false ) const;
59 LinearErrorPropagator getErrorPropagator( const bool& extended = false ) const;
60
61 void writeOptions( const std::string& output, const std::string& input = "" );
62 void writeOptions( std::ostream&, const std::string& input = "");
63 private:
64 MinuitParameterSet* m_mps = {nullptr};
65 double m_chi2 = {0};
66 double m_LL = {-999};
67 double m_Edm = {-999};
68 double m_NCalls = {-999};
69 double m_nBins = {0};
70 double m_nParam = {0};
71 int m_status = {-1};
72 bool m_fitted = {false};
73 std::map<std::string, double> m_observables;
74 std::vector<FitFraction> m_fitFractions;
75 TMatrixD m_covarianceMatrix;
76 std::map<std::string, unsigned int> m_covMapping;
77
78 void addToParameters( const std::string& line );
79 void addToObservables( const std::string& line );
80 void setFitQuality( const std::string& line );
81 };
82} // namespace AmpGen
83
84#endif
std::vector< MinuitParameter * > parameters() const
double chi2() const
void print() const
int status() const
TMatrixD cov() const
double dof() const
void addObservable(const std::string &name, const double &F)
void writeOptions(const std::string &output, const std::string &input="")
std::map< std::string, double > observables() const
double cov(const size_t &x, const size_t &y) const
std::vector< MinuitParameter * > floating(const bool &extended=false) const
double LL() const
bool readFile(const std::string &fname)
TMatrixD getReducedCovariance(const bool &extended=false) const
void addChi2(const double &chi2, const double &nBins)
LinearErrorPropagator getErrorPropagator(const bool &extended=false) const
double Edm() const
void writeToFile(const std::string &fname)
FitResult(const std::string &filename)
void addFractions(const std::vector< FitFraction > &fractions)
double cov(const std::string &x, const std::string &y) const
MinuitParameterSet * mps() const
FitResult(const FitResult &other)
int nBins() const
void setCov(const size_t &x, const size_t &y, const double &F)
FitResult(const Minimiser &mini)
void addFraction(const std::string &name, const double &frac, const double &err)
double NCalls() const
int nParam() const
void clearFitFractions()
std::vector< FitFraction > fitFractions() const
double correlation(const std::string &x, const std::string &y) const
FitResult(MinuitParameterSet &mps, const TMatrixD &covMini)
void writeOptions(std::ostream &, const std::string &input="")
Propagates uncertainties on functors using either a MinuitParameterSet (thus assuming a diagonal cova...