1 #ifndef ALIBLASTWAVEFITTER_H
2 #define ALIBLASTWAVEFITTER_H
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6 * See cxx source for full Copyright notice */
8 /* $Id: AliBlastwaveFitter.h 49869 2012-05-17 04:49:51Z fnoferin $ */
10 /////////////////////////////////////////////////
12 // Blastwave Fitter Class //
13 // noferini@bo.infn.it //
14 /////////////////////////////////////////////////
21 #include "AliBlastwaveFit.h"
23 class AliBlastwaveFitter : public TNamed
26 AliBlastwaveFitter(const char *name);
28 ~AliBlastwaveFitter();
30 Int_t AddFitFunction(AliBlastwaveFit *fitf){if(fNfunction < fgNmaxFunction){fFunc[fNfunction]=fitf;fNfunction++;return 0;} else return 1;};
32 void ResetFunctions(){fNfunction=0; for(Int_t i=0;i<fgNmaxFunction;i++) fFunc[i] = NULL;};
34 Int_t CheckAvailability();
38 static void FCN(Int_t &npar, Double_t *gin, Double_t &f, Double_t *par, Int_t /*iflag*/);
39 static Double_t GetChi2(){return fgChi2;};
40 static Int_t GetNDGF(){return fgNDGF;};
42 TMinuit *GetMinuit(){return fMinuit;};
44 Int_t GetNFunctions(){return fNfunction;};
45 AliBlastwaveFit *GetFunction(Int_t i){if(i>= 0 && i < fNfunction) return fFunc[i]; else return NULL;};
47 void SetMinos(Bool_t flag=kTRUE){fMinos=flag;};
49 TGraph* DoContour(Int_t np,Int_t ip1,Int_t ip2,Float_t nsigma=1);
51 TGraph* DoContourBetaT(Int_t np,Int_t iBoostOrBeta,Int_t iT,Float_t nsigma=1);
52 TGraph* ConvertContourFromBoostToBeta(TGraph *g,Int_t iBoostOrBeta,Int_t iT);
55 AliBlastwaveFitter(const AliBlastwaveFitter & old);
56 AliBlastwaveFitter& operator=(const AliBlastwaveFitter & source); // ass. op.
58 static const Int_t fgNmaxFunction = 20; // max number of function allowed
59 Int_t fNfunction; // number of functions to be fitted
60 AliBlastwaveFit *fFunc[fgNmaxFunction]; // functions to be fitted
62 Int_t fSpectraFlag[fgNmaxFunction]; // availability for spectra fit (1=TH1, 2=TGraphErrors)
63 Int_t fV2Flag[fgNmaxFunction]; // availability for v2 fit (1=TH1, 2=TGraphErrors)
65 TMinuit *fMinuit; // minuit object
67 // information copied in the static variable to perform the fit
68 static Int_t fgNparReal;
70 static Int_t fgNfunctionCurrent;
71 static AliBlastwaveFit *fgFuncC[50]; // functions to be fitted
72 static Int_t fgSpectraFlagC[50]; // availability for spectra fit (1=TH1, 2=TGraphErrors)
73 static Int_t fgV2FlagC[50]; // availability for v2 fit (1=TH1, 2=TGraphErrors)
74 static Double_t fgChi2; // Chi2
76 Bool_t fMinos; // switch to try also minos
78 ClassDef(AliBlastwaveFitter,1) // fitter bases on minuit for blastwave