#ifndef DNDETANALYSIS_H
#define DNDETANALYSIS_H
#include <TNamed.h>
#include "AlidNdEtaCorrection.h"
#include "AliPWG0Helper.h"
#include <TString.h>
class TH1F;
class TCollection;
class AliCorrection;
class dNdEtaAnalysis : public TNamed
{
public:
enum { kVertexBinning = 1+2 };
dNdEtaAnalysis();
dNdEtaAnalysis(const Char_t* name, const Char_t* title, AliPWG0Helper::AnalysisMode analysisMode = (AliPWG0Helper::AnalysisMode) (AliPWG0Helper::kTPC | AliPWG0Helper::kFieldOn));
virtual ~dNdEtaAnalysis();
dNdEtaAnalysis(const dNdEtaAnalysis &c);
dNdEtaAnalysis &operator=(const dNdEtaAnalysis &c);
virtual void Copy(TObject &c) const;
void FillTrack(Float_t vtx, Float_t eta, Float_t pt);
void FillEvent(Float_t vtx, Float_t n);
void FillTriggeredEvent(Float_t n);
void Finish(AlidNdEtaCorrection* correction, Float_t ptCut, AlidNdEtaCorrection::CorrectionType correctionType, const char* tag = "", Int_t backgroundSubtraction = 0, TH1* combinatoricsCorrection = 0);
void DrawHistograms(Bool_t simple = kFALSE);
void LoadHistograms(const Char_t* dir = 0);
void SaveHistograms();
virtual Long64_t Merge(TCollection* list);
AliCorrection* GetData() const { return fData; }
TH1F* GetPtHistogram() const { return fPtDist; }
TH1F* GetdNdEtaHistogram(Int_t i = 0) const { return fdNdEta[i]; }
TH1F* GetdNdEtaPtCutOffCorrectedHistogram(Int_t i = 0) const { return fdNdEtaPtCutOffCorrected[i]; }
void SetAnalysisMode(AliPWG0Helper::AnalysisMode mode) { fAnalysisMode = mode; }
AliPWG0Helper::AnalysisMode GetAnalysisMode() { return fAnalysisMode; }
void SetVtxMin(Float_t vtxMin) {fvtxMin = vtxMin;}
void SetVtxMax(Float_t vtxMax) {fvtxMax = vtxMax;}
protected:
Float_t GetVtxMin(Float_t eta);
AliCorrection* fData;
TH1F* fMult;
TH1F* fPtDist;
TH1F* fdNdEta[kVertexBinning];
TH1F* fdNdEtaPtCutOffCorrected[kVertexBinning];
AliPWG0Helper::AnalysisMode fAnalysisMode;
TString fTag;
Float_t fvtxMin;
Float_t fvtxMax;
ClassDef(dNdEtaAnalysis, 3)
};
#endif