#ifndef ALIPERFANALYZEINVPT_H
#define ALIPERFANALYZEINVPT_H
class TNamed;
class TString;
class TList;
class TF1;
class TH1F;
class TH2F;
class TH1D;
class TGraphErrors;
class TCanvas;
class TObjArray;
class AliPerfAnalyzeInvPt : public TNamed {
public:
AliPerfAnalyzeInvPt(const Char_t* name="AliPerfAnalyzeInvPt", const Char_t* title="AliPerfAnalyzeInvPt");
virtual ~AliPerfAnalyzeInvPt(){;}
void InitGraphs(Double_t *binsXTheta,Double_t *fitParamTheta,Double_t *errFitParamTheta,Double_t *binsXPhi,Double_t *fitParamPhi,Double_t *errFitParamPhi);
void InitFitFcn();
void StartAnalysis(const TH2F *histThetaInvPt, const TH2F *histPhiInvPt, TObjArray* aFolderObj);
void SetProjBinsPhi(const Double_t *pBins,const Int_t sizep);
void SetProjBinsTheta(const Double_t *tBins, const Int_t sizet);
void SetMakeFitOption(const Bool_t setGausFit, const Double_t exclusionR,const Double_t fitR );
void SetDoRebin(const Int_t rebin){if(rebin) {fDoRebin = kTRUE; fRebin = rebin;}}
protected:
Double_t fThetaBins[100];
Double_t fPhiBins[100];
Int_t fNThetaBins;
Int_t fNPhiBins;
Double_t fRange;
Double_t fExclRange ;
Bool_t fFitGaus;
Bool_t fDoRebin;
Int_t fRebin;
TH1D *fHistFitTheta[100];
TH1D *fHistFitPhi[100];
TH2F *fHistH2InvPtTheta;
TH2F *fHistH2InvPtPhi;
TGraphErrors *fGrMinPosTheta;
TGraphErrors *fGrMinPosPhi;
private:
TF1 *fFitMinPos;
TF1 *fFitMinPosRejP;
TF1 *fFitInvGauss;
TF1 *fFitInvGaussRejP;
static Double_t Polynomial(Double_t *x, const Double_t *par);
static Double_t PolynomialRejP(Double_t *x, const Double_t *par);
static Double_t InvGauss(Double_t *x, const Double_t *par);
static Double_t InvGaussRejP(Double_t *x, const Double_t *par);
void MakeFit(TH1D *dmproy, TF1 * fitpb, Double_t &mean, Double_t &ErrMean, Double_t &excl,Double_t &range);
void MakeFitBetter(TH1D *dmproy, TF1 * fitpb2, Double_t &mean, Double_t &ErrMean, Double_t &f, Double_t &excl, Double_t &range);
void MakeFitInvGauss(TH1D *dmproy, TF1 * fitpb2, Double_t &mean, Double_t &ErrMean,Double_t &excl , Double_t &range);
void MakeFitInvGaussBetter(TH1D *dmproy, TF1 * fitpb2, Double_t &mean, Double_t &ErrMean, Double_t &f,Double_t &excl, Double_t &range);
AliPerfAnalyzeInvPt(const AliPerfAnalyzeInvPt&);
AliPerfAnalyzeInvPt& operator=(const AliPerfAnalyzeInvPt&);
ClassDef(AliPerfAnalyzeInvPt, 1);
};
#endif