#ifndef ALICALOFASTALTROFITV0_H
#define ALICALOFASTALTROFITV0_H
#include <TNamed.h>
class TCanvas;
class TVirtualPad;
class TF1;
class TH1F;
class AliCaloFastAltroFitv0 : public TNamed {
public:
AliCaloFastAltroFitv0();
AliCaloFastAltroFitv0(const char* name, const char* title,
const Double_t sig=1.3, const Double_t tau=2.35, const Double_t n=2.);
virtual ~AliCaloFastAltroFitv0();
virtual void FastFit(Int_t* t, Int_t* y, Int_t nPoints, Double_t sig, Double_t tau,
Double_t n, Double_t ped, Double_t tMax);
void FastFit(TH1F* h, Double_t sig, Double_t tau,
Double_t n, Double_t ped, Double_t tMax);
void Reset();
void SetSig(const Double_t sig) {fSig = sig;}
void SetTau(const Double_t tau) {fTau = tau;}
void SetN(const Double_t n) {fN = n;}
void SetParameters(const Double_t sig, const Double_t tau, const Double_t n)
{fSig = sig; fTau = tau; fN = n;}
Double_t GetSig() const {return fSig;}
Double_t GetTau() const {return fTau;}
Double_t GetN() const {return fN;}
Double_t GetPed() const {return fPed;}
Double_t GetEnergy() const {return fAmp;}
Double_t GetAmp() const {return GetEnergy();}
Double_t GetAmpErr() const {return fAmpErr;}
Double_t GetTime() const {return fT0;}
Double_t GetT0() const {return GetTime();}
Double_t GetT0Err() const {return fT0Err;}
Double_t GetChi2() const {return fChi2;}
Int_t GetNDF() const {return fNDF;}
Int_t GetNfit() const {return fNfit;}
Int_t GetNoFit() const {return fNoFit;}
void GetFitResult(Double_t &, Double_t &eamp, Double_t &t0, Double_t &et0,
Double_t &chi2,Int_t &ndf) const;
void GetFittedPoints(Int_t &nfit, Double_t* ar[2]) const;
TCanvas* DrawFastFunction();
static Double_t StdResponseFunction(const Double_t *x, const Double_t *par);
static void CutRightPart(Int_t *t,Int_t *y,Int_t nPoints, Double_t tMax, Int_t &ii);
static void DeductPedestal(Int_t* t, Int_t* y, Int_t nPointsIn, Double_t ped, Double_t tau,
Double_t* tn, Double_t* yn, Int_t &nPointsOut);
static void FastFit(const Double_t* t, const Double_t* y, const Int_t nPoints,
const Double_t sig, const Double_t tau,
Double_t &, Double_t &eamp, Double_t &t0, Double_t &et0, Double_t &chi2);
static Bool_t QuadraticRoots(const Double_t a, const Double_t b, const Double_t c,
Double_t &x1, Double_t &x2);
static void Amplitude(const Double_t* t, const Double_t* y, const Int_t nPoints,
const Double_t sig, const Double_t tau,
Double_t t0, Double_t &, Double_t &chi2);
static void CalculateParsErrors(const Double_t* t, const Double_t* y, const Int_t nPoints,
const Double_t sig, const Double_t tau,
Double_t &, Double_t &t0, Double_t &eamp, Double_t &et0);
protected:
Double_t fSig;
Double_t fTau;
Double_t fN;
Double_t fPed;
Double_t fAmp;
Double_t fAmpErr;
Double_t fT0;
Double_t fT0Err;
Double_t fChi2;
Int_t fNDF;
Int_t fNoFit;
Int_t fNfit;
Double_t* fTfit;
Double_t* fAmpfit;
TF1* fStdFun;
private:
AliCaloFastAltroFitv0(const AliCaloFastAltroFitv0 &obj);
AliCaloFastAltroFitv0& operator= (const AliCaloFastAltroFitv0 &obj);
ClassDef(AliCaloFastAltroFitv0,1)
};
#endif // ALICALOFASTALTROFITV0_H
AliCaloFastAltroFitv0.h:1 AliCaloFastAltroFitv0.h:2 AliCaloFastAltroFitv0.h:3 AliCaloFastAltroFitv0.h:4 AliCaloFastAltroFitv0.h:5 AliCaloFastAltroFitv0.h:6 AliCaloFastAltroFitv0.h:7 AliCaloFastAltroFitv0.h:8 AliCaloFastAltroFitv0.h:9 AliCaloFastAltroFitv0.h:10 AliCaloFastAltroFitv0.h:11 AliCaloFastAltroFitv0.h:12 AliCaloFastAltroFitv0.h:13 AliCaloFastAltroFitv0.h:14 AliCaloFastAltroFitv0.h:15 AliCaloFastAltroFitv0.h:16 AliCaloFastAltroFitv0.h:17 AliCaloFastAltroFitv0.h:18 AliCaloFastAltroFitv0.h:19 AliCaloFastAltroFitv0.h:20 AliCaloFastAltroFitv0.h:21 AliCaloFastAltroFitv0.h:22 AliCaloFastAltroFitv0.h:23 AliCaloFastAltroFitv0.h:24 AliCaloFastAltroFitv0.h:25 AliCaloFastAltroFitv0.h:26 AliCaloFastAltroFitv0.h:27 AliCaloFastAltroFitv0.h:28 AliCaloFastAltroFitv0.h:29 AliCaloFastAltroFitv0.h:30 AliCaloFastAltroFitv0.h:31 AliCaloFastAltroFitv0.h:32 AliCaloFastAltroFitv0.h:33 AliCaloFastAltroFitv0.h:34 AliCaloFastAltroFitv0.h:35 AliCaloFastAltroFitv0.h:36 AliCaloFastAltroFitv0.h:37 AliCaloFastAltroFitv0.h:38 AliCaloFastAltroFitv0.h:39 AliCaloFastAltroFitv0.h:40 AliCaloFastAltroFitv0.h:41 AliCaloFastAltroFitv0.h:42 AliCaloFastAltroFitv0.h:43 AliCaloFastAltroFitv0.h:44 AliCaloFastAltroFitv0.h:45 AliCaloFastAltroFitv0.h:46 AliCaloFastAltroFitv0.h:47 AliCaloFastAltroFitv0.h:48 AliCaloFastAltroFitv0.h:49 AliCaloFastAltroFitv0.h:50 AliCaloFastAltroFitv0.h:51 AliCaloFastAltroFitv0.h:52 AliCaloFastAltroFitv0.h:53 AliCaloFastAltroFitv0.h:54 AliCaloFastAltroFitv0.h:55 AliCaloFastAltroFitv0.h:56 AliCaloFastAltroFitv0.h:57 AliCaloFastAltroFitv0.h:58 AliCaloFastAltroFitv0.h:59 AliCaloFastAltroFitv0.h:60 AliCaloFastAltroFitv0.h:61 AliCaloFastAltroFitv0.h:62 AliCaloFastAltroFitv0.h:63 AliCaloFastAltroFitv0.h:64 AliCaloFastAltroFitv0.h:65 AliCaloFastAltroFitv0.h:66 AliCaloFastAltroFitv0.h:67 AliCaloFastAltroFitv0.h:68 AliCaloFastAltroFitv0.h:69 AliCaloFastAltroFitv0.h:70 AliCaloFastAltroFitv0.h:71 AliCaloFastAltroFitv0.h:72 AliCaloFastAltroFitv0.h:73 AliCaloFastAltroFitv0.h:74 AliCaloFastAltroFitv0.h:75 AliCaloFastAltroFitv0.h:76 AliCaloFastAltroFitv0.h:77 AliCaloFastAltroFitv0.h:78 AliCaloFastAltroFitv0.h:79 AliCaloFastAltroFitv0.h:80 AliCaloFastAltroFitv0.h:81 AliCaloFastAltroFitv0.h:82 AliCaloFastAltroFitv0.h:83 AliCaloFastAltroFitv0.h:84 AliCaloFastAltroFitv0.h:85 AliCaloFastAltroFitv0.h:86 AliCaloFastAltroFitv0.h:87 AliCaloFastAltroFitv0.h:88 AliCaloFastAltroFitv0.h:89 AliCaloFastAltroFitv0.h:90 AliCaloFastAltroFitv0.h:91 AliCaloFastAltroFitv0.h:92 AliCaloFastAltroFitv0.h:93 AliCaloFastAltroFitv0.h:94 AliCaloFastAltroFitv0.h:95 AliCaloFastAltroFitv0.h:96 AliCaloFastAltroFitv0.h:97 AliCaloFastAltroFitv0.h:98 AliCaloFastAltroFitv0.h:99 AliCaloFastAltroFitv0.h:100 AliCaloFastAltroFitv0.h:101 AliCaloFastAltroFitv0.h:102 AliCaloFastAltroFitv0.h:103 AliCaloFastAltroFitv0.h:104 AliCaloFastAltroFitv0.h:105 AliCaloFastAltroFitv0.h:106 AliCaloFastAltroFitv0.h:107 AliCaloFastAltroFitv0.h:108 AliCaloFastAltroFitv0.h:109 AliCaloFastAltroFitv0.h:110 AliCaloFastAltroFitv0.h:111 AliCaloFastAltroFitv0.h:112