#ifndef AliOADBCentrality_H
#define AliOADBCentrality_H
#include <TNamed.h>
#include <TList.h>
#include <TH1F.h>
#include <TH2F.h>
class AliOADBCentrality : public TNamed {
public :
AliOADBCentrality();
AliOADBCentrality(char* name);
virtual ~AliOADBCentrality();
Float_t V0MScaleFactor() const {return fV0MScaleFactor;}
Float_t SPDScaleFactor() const {return fSPDScaleFactor;}
Float_t TPCScaleFactor() const {return fTPCScaleFactor;}
Float_t V0MScaleFactorMC() const {return fV0MScaleFactorMC;}
Float_t V0MSPDOutlierPar0() const {return fV0MSPDOutlierPar0 ;}
Float_t V0MSPDOutlierPar1() const {return fV0MSPDOutlierPar1 ;}
Float_t V0MTPCOutlierPar0() const {return fV0MTPCOutlierPar0 ;}
Float_t V0MTPCOutlierPar1() const {return fV0MTPCOutlierPar1 ;}
Float_t V0MSPDSigmaOutlierPar0() const {return fV0MSPDSigmaOutlierPar0 ;}
Float_t V0MSPDSigmaOutlierPar1() const {return fV0MSPDSigmaOutlierPar1 ;}
Float_t V0MSPDSigmaOutlierPar2() const {return fV0MSPDSigmaOutlierPar2 ;}
Float_t V0MTPCSigmaOutlierPar0() const {return fV0MTPCSigmaOutlierPar0 ;}
Float_t V0MTPCSigmaOutlierPar1() const {return fV0MTPCSigmaOutlierPar1 ;}
Float_t V0MTPCSigmaOutlierPar2() const {return fV0MTPCSigmaOutlierPar2 ;}
Float_t V0MZDCOutlierPar0() const {return fV0MZDCOutlierPar0 ;}
Float_t V0MZDCOutlierPar1() const {return fV0MZDCOutlierPar1 ;}
Float_t V0MZDCEcalOutlierPar0() const {return fV0MZDCEcalOutlierPar0 ;}
Float_t V0MZDCEcalOutlierPar1() const {return fV0MZDCEcalOutlierPar1 ;}
Float_t ZVCut() const {return fZVCut;}
Float_t OutliersCut() const {return fOutliersCut;}
Bool_t UseScaling() const {return fUseScaling;}
Bool_t UseCleaning() const {return fUseCleaning;}
TH1F* V0hist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0M_percentile")));}
TH1F* V0Ahist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0A_percentile")));}
TH1F* V0A0hist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0A0_percentile")));}
TH1F* V0A123hist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0A123_percentile")));}
TH1F* V0Chist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0C_percentile")));}
TH1F* V0A23hist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0A23_percentile")));}
TH1F* V0C01hist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0C01_percentile")));}
TH1F* V0Shist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0S_percentile")));}
TH1F* V0Eqhist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0MEq_percentile")));}
TH1F* V0AEqhist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0AEq_percentile")));}
TH1F* V0CEqhist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0CEq_percentile")));}
TH1F* TPChist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultTRK_percentile")));}
TH1F* CNDhist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCND_percentile")));}
TH1F* SPDhist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCL1_percentile")));}
TH1F* FMDhist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMD_percentile")));}
TH1F* ZNAhist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNA_percentile")));}
TH1F* ZNChist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNC_percentile")));}
TH1F* ZPAhist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPA_percentile")));}
TH1F* ZPChist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPC_percentile")));}
TH2F* ZEMvsZDChist() const {return ((TH2F*) (Hists2D()->FindObject("fHOutMultZEMvsZDC")));}
TH1F* NPAhist() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultNPA_percentile")));}
TH1F* NPAhistDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultNPADPM_percentile")));}
TH1F* V0histtrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0Mtrue_percentile")));}
TH1F* V0Ahisttrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0Atrue_percentile")));}
TH1F* V0Chisttrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0Ctrue_percentile")));}
TH1F* V0Eqhisttrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0MEqtrue_percentile")));}
TH1F* V0AEqhisttrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0AEqtrue_percentile")));}
TH1F* V0CEqhisttrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0CEqtrue_percentile")));}
TH1F* TPChisttrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultTRKtrue_percentile")));}
TH1F* CNDhisttrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCNDtrue_percentile")));}
TH1F* SPDhisttrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCL1true_percentile")));}
TH1F* FMDhisttrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMDtrue_percentile")));}
TH1F* ZNAhisttrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNAtrue_percentile")));}
TH1F* ZNChisttrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNCtrue_percentile")));}
TH1F* ZPAhisttrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPAtrue_percentile")));}
TH1F* ZPChisttrue() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPCtrue_percentile")));}
TH1F* V0histtrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0MtrueDPM_percentile")));}
TH1F* V0AhisttrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0AtrueDPM_percentile")));}
TH1F* V0ChisttrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0CtrueDPM_percentile")));}
TH1F* V0EqhisttrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0MEqtrueDPM_percentile")));}
TH1F* V0AEqhisttrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0AEqtrueDPM_percentile")));}
TH1F* V0CEqhisttrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultV0CEqtrueDPM_percentile")));}
TH1F* TPChisttrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultTRKtrueDPM_percentile")));}
TH1F* CNDhisttrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCNDtrueDPM_percentile")));}
TH1F* SPDhisttrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultCL1trueDPM_percentile")));}
TH1F* FMDhisttrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultFMDtrueDPM_percentile")));}
TH1F* ZNAhisttrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNAtrueDPM_percentile")));}
TH1F* ZNChisttrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZNCtrueDPM_percentile")));}
TH1F* ZPAhisttrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPAtrueDPM_percentile")));}
TH1F* ZPChisttrueDPM() const {return ((TH1F*) (Hists1D()->FindObject("fHOutMultZPCtrueDPM_percentile")));}
TList* Hists1D() const {return f1DHistos;}
TList* Hists2D() const {return f2DHistos;}
void SetScaleFactors(Float_t v0m, Float_t spd, Float_t tpc, Float_t v0mMC)
{fV0MScaleFactor = v0m; fSPDScaleFactor = spd; fTPCScaleFactor = tpc; fV0MScaleFactorMC = v0mMC;}
void SetOutlierV0MSPDFactors(Float_t a1, Float_t a2, Float_t a3, Float_t a4, Float_t a5)
{fV0MSPDOutlierPar0=a1;fV0MSPDOutlierPar1=a2;fV0MSPDSigmaOutlierPar0=a3;fV0MSPDSigmaOutlierPar1=a4;fV0MSPDSigmaOutlierPar2=a5;}
void SetOutlierV0MTPCFactors(Float_t a1, Float_t a2, Float_t a3, Float_t a4, Float_t a5)
{fV0MTPCOutlierPar0=a1;fV0MTPCOutlierPar1=a2;fV0MTPCSigmaOutlierPar0=a3;fV0MTPCSigmaOutlierPar1=a4;fV0MTPCSigmaOutlierPar2=a5;}
void SetOutlierV0MZDCFactors(Float_t a1, Float_t a2)
{fV0MZDCOutlierPar0=a1;fV0MZDCOutlierPar1=a2;}
void SetOutlierV0MZDCEcalFactors(Float_t a1, Float_t a2)
{fV0MZDCEcalOutlierPar0=a1;fV0MZDCEcalOutlierPar1=a2;}
void SetHistReferences(TList* l1, TList* l2)
{f1DHistos = l1; f2DHistos = l2;}
void SetZVCut(Float_t z)
{fZVCut=z;}
void SetOutliersCut(Float_t o)
{fOutliersCut=o;}
void SetUseScaling(Bool_t x)
{fUseScaling=x;}
void SetUseCleaning(Bool_t x)
{fUseCleaning=x;}
private:
AliOADBCentrality(const AliOADBCentrality& cont);
AliOADBCentrality& operator=(const AliOADBCentrality& cont);
private:
Float_t fV0MScaleFactor;
Float_t fSPDScaleFactor;
Float_t fTPCScaleFactor;
Float_t fV0MScaleFactorMC;
Float_t fV0MSPDOutlierPar0;
Float_t fV0MSPDOutlierPar1;
Float_t fV0MTPCOutlierPar0;
Float_t fV0MTPCOutlierPar1;
Float_t fV0MSPDSigmaOutlierPar0;
Float_t fV0MSPDSigmaOutlierPar1;
Float_t fV0MSPDSigmaOutlierPar2;
Float_t fV0MTPCSigmaOutlierPar0;
Float_t fV0MTPCSigmaOutlierPar1;
Float_t fV0MTPCSigmaOutlierPar2;
Float_t fV0MZDCOutlierPar0;
Float_t fV0MZDCOutlierPar1;
Float_t fV0MZDCEcalOutlierPar0;
Float_t fV0MZDCEcalOutlierPar1;
Float_t fZVCut;
Float_t fOutliersCut;
Bool_t fUseScaling;
Bool_t fUseCleaning;
TList* f1DHistos;
TList* f2DHistos;
ClassDef(AliOADBCentrality, 3);
};
#endif