#ifndef ALIBALANCETRIGGERED_H
#define ALIBALANCETRIGGERED_H
#include <TObject.h>
#include "TString.h"
class TGraphErrors;
class TH1D;
class AliTHn;
const Int_t kTrackVarsSingle = 4;
const Int_t kTrackVarsPair = 5;
class AliBalanceTriggered : public TObject {
public:
AliBalanceTriggered();
AliBalanceTriggered(const AliBalanceTriggered& balance);
~AliBalanceTriggered();
void SetAnalysisLevel(const char* analysisLevel) {
fAnalysisLevel = analysisLevel;}
const char* GetAnalysisLevel() {return fAnalysisLevel.Data();}
void InitHistograms(void);
void SetHistNp(AliTHn *gHist) { fHistP = gHist;}
void SetHistNn(AliTHn *gHist) { fHistN = gHist;}
void SetHistNpn(AliTHn *gHist) { fHistPN = gHist;}
void SetHistNnp(AliTHn *gHist) { fHistNP = gHist;}
void SetHistNpp(AliTHn *gHist) { fHistPP = gHist;}
void SetHistNnn(AliTHn *gHist) { fHistNN = gHist;}
AliTHn *GetHistNp() { return fHistP;}
AliTHn *GetHistNn() { return fHistN;}
AliTHn *GetHistNpn() { return fHistPN;}
AliTHn *GetHistNnp() { return fHistNP;}
AliTHn *GetHistNpp() { return fHistPP;}
AliTHn *GetHistNnn() { return fHistNN;}
void FillBalance(Float_t fCentrality,TObjArray* particles,TObjArray* particlesMixed);
TH1D *GetBalanceFunctionHistogram1D(Int_t var, Double_t pTMinTrigger, Double_t pTMaxTrigger, Double_t pTMin, Double_t pTMax, Double_t centrMin, Double_t centrMax, Double_t etaGap = -1);
TH2D *GetBalanceFunctionHistogram2D(Int_t var1, Int_t var2, Double_t pTMinTrigger, Double_t pTMaxTrigger, Double_t pTMin, Double_t pTMax, Double_t centrMin, Double_t centrMax);
TH1D* GetHistogram1D(Int_t histo, Int_t var, Double_t pTMinTrigger, Double_t pTMaxTrigger, Double_t pTMin, Double_t pTMax, Double_t centrMin, Double_t centrMax, Double_t etaGap = -1);
TH2D* GetHistogram2D(Int_t histo, Int_t var1, Int_t var2, Double_t pTMinTrigger, Double_t pTMaxTrigger, Double_t pTMin, Double_t pTMax, Double_t centrMin, Double_t centrMax);
private:
TString fAnalysisLevel;
AliTHn *fHistP;
AliTHn *fHistN;
AliTHn *fHistPN;
AliTHn *fHistNP;
AliTHn *fHistPP;
AliTHn *fHistNN;
AliBalanceTriggered & operator=(const AliBalanceTriggered & ) {return *this;}
ClassDef(AliBalanceTriggered, 1)
};
#endif