-#ifndef AliTMINUITTOOLKIT_H
-#define AliTMINUITTOOLKIT_H
+#ifndef ALITMINUITTOOLKIT_H
+#define ALITMINUITTOOLKIT_H
#include <TNamed.h>
-#include <TVirtualFitter.h>
-#include <TH1F.h>
-#include <TH2F.h>
-#include <TF1.h>
-#include <TFormula.h>
-#include <TVectorD.h>
-#include <TMatrixD.h>
-#include <TMath.h>
-#include <TString.h>
-
+class TH1F;
+class TH2F;
+class TFormula;
+#include <TVectorDfwd.h>
+#include <TMatrixDfwd.h>
class AliTMinuitToolkit: public TNamed{
+public:
//
//
//
-public:
AliTMinuitToolkit();
virtual ~AliTMinuitToolkit();
- void FitHistogram(TH1F * his);
- void FitHistogram(TH2F * his);
- void SetInitialParam(TVectorD *param) { fParam=param;};
- void SetParamLimits(TMatrixD *paramLimits) { fParamLimits=paramLimits;};
+ void FitHistogram(TH1F *const his);
+ void FitHistogram(TH2F *const his);
+ void SetInitialParam(TVectorD *const param) { fParam=param;};
+ void SetParamLimits(TMatrixD *const paramLimits) { fParamLimits=paramLimits;};
//
- void SetFitFunction(TFormula * formula) {fFormula=formula;};
- void SetWeightFunction(TFormula * weightFunction) {fWeightFunction=weightFunction;};
- void SetWeightFunction(Char_t * name, Float_t param1, Float_t param2 = 0.1);
- void SetFitAlgorithm(Char_t * name) {fFitAlgorithm=name;};
+ void SetFitFunction(TFormula *const formula) {fFormula=formula;};
+ void SetWeightFunction(TFormula *const weightFunction) {fWeightFunction=weightFunction;};
+ void SetWeightFunction(const Char_t *name, Float_t param1, Float_t param2 = 0.1);
+ void SetFitAlgorithm(Char_t *const name) {fFitAlgorithm=name;};
void SetMaxCalls(Int_t calls) {fMaxCalls = calls;};
void SetTolerance(Double_t tol) {fPrecision = tol;};
- void SetPoints(TMatrixD * points) {fPoints = points;};
- void SetWeights(TVectorD * weights) {fWeights = weights;};
- void Test();
- static void FitterFCN(int &npar, double *dummy, double &fchisq, double *gin, int iflag);
+ void SetPoints(TMatrixD *const points) {fPoints = points;};
+ void SetWeights(TVectorD *const weights) {fWeights = weights;};
+ static void Test();
+ static void FitterFCN(int &npar, double *dummy, double &fchisq, double *gin, int iflag);
void Fit();
void EnableRobust(Bool_t b) {fUseRobust = b;};
void EnableRobust(Bool_t b, Double_t sigma) {fUseRobust = b; fExpectedSigma = sigma;};
//
- TMatrixD * GetPoints() {return fPoints;};
- TVectorD * GetWeights() {return fWeights;};
- TFormula * GetFormula() {return fFormula;};
- TVectorD * GetParameters() {return fParam;};
- TFormula * GetWeightFunction() {return fWeightFunction;};
- TMatrixD * GetCovarianceMatrix() {return fCovar;};
- Bool_t GetStatus() {return fUseRobust;};
- Double_t GetExpectedSigma() {return fExpectedSigma;};
+ TMatrixD * GetPoints() const {return fPoints;};
+ TVectorD * GetWeights() const {return fWeights;};
+ TFormula * GetFormula() const {return fFormula;};
+ TVectorD * GetParameters() const {return fParam;};
+ TFormula * GetWeightFunction() const {return fWeightFunction;};
+ TMatrixD * GetCovarianceMatrix() const {return fCovar;};
+ Bool_t GetStatus() const {return fUseRobust;};
+ Double_t GetExpectedSigma() const {return fExpectedSigma;};
private:
//
//
TFormula * fFormula; // formula of the fitted function
TFormula * fWeightFunction; // weight function, must be defined between 0 and 1
- Char_t * fFitAlgorithm; // fit algorithm for TMinuit: migrad, simplex, ...
+ TString fFitAlgorithm; // fit algorithm for TMinuit: migrad, simplex, ...
//
//
TMatrixD * fPoints; // fitted points