#ifndef AliTPCdEdxInfo_H
#define AliTPCdEdxInfo_H
class TGraphErrors;
class TObjArray;
class AliExternalTrackParam;
#include <TObject.h>
class AliTPCdEdxInfo : public TObject
{
public:
AliTPCdEdxInfo();
AliTPCdEdxInfo(const AliTPCdEdxInfo& source);
AliTPCdEdxInfo& operator=(const AliTPCdEdxInfo& source);
Double_t GetWeightedMean(Int_t qType, Int_t wType, Double_t w0, Double_t w1, Double_t w2);
Double_t GetFractionOfClusters(Int_t iregion){ return fTPCsignalNRowRegion[iregion]>0 ? Double_t(fTPCsignalNRegion[iregion])/Double_t(fTPCsignalNRowRegion[iregion]):0;}
void GetTPCSignalRegionInfo(Double_t signal[4], Char_t ncl[3], Char_t nrows[3]) const;
void GetTPCSignals(Double_t signal[4]) const;
void SetTPCSignalRegionInfo(Double_t signal[4], Char_t ncl[3], Char_t nrows[3]);
void SetTPCSignals(Double_t signal[4]);
void GetTPCSignalRegionInfoQmax(Double_t signal[4], Char_t ncl[3], Char_t nrows[3]) const;
void GetTPCSignalsQmax(Double_t signal[4]) const;
void SetTPCSignalRegionInfoQmax(Double_t signal[4], Char_t ncl[3], Char_t nrows[3]);
void SetTPCSignalsQmax(Double_t signal[4]);
Double_t GetSignalTot(Int_t index){ return fTPCsignalRegion[index];}
Double_t GetSignalMax(Int_t index){ return fTPCsignalRegionQmax[index];}
Double_t GetNumberOfClusters(Int_t index) {return fTPCsignalNRegion[index%3];}
Double_t GetNumberOfCrossedRows(Int_t index) {return fTPCsignalNRowRegion[index%3];}
Double_t GetTPCsignalShortPad() const {return fTPCsignalRegion[0];}
Double_t GetTPCsignalMediumPad() const {return fTPCsignalRegion[1];}
Double_t GetTPCsignalLongPad() const {return fTPCsignalRegion[2];}
Double_t GetTPCsignalOROC() const {return fTPCsignalRegion[3];}
Double_t GetTPCsignalShortPadQmax() const {return fTPCsignalRegionQmax[0];}
Double_t GetTPCsignalMediumPadQmax() const {return fTPCsignalRegionQmax[1];}
Double_t GetTPCsignalLongPadQmax() const {return fTPCsignalRegionQmax[2];}
Double_t GetTPCsignalOROCQmax() const {return fTPCsignalRegionQmax[3];}
static void RegisterSectorCalibration(TGraphErrors* gainSector, Int_t regionID, Int_t calibID);
Double_t GetdEdxInfo(AliExternalTrackParam *param, Int_t regionID, Int_t calibID, Int_t qID, Int_t valueID);
private:
Double32_t fTPCsignalRegion[4];
Double32_t fTPCsignalRegionQmax[4];
Char_t fTPCsignalNRegion[3];
Char_t fTPCsignalNRowRegion[3];
static TObjArray *fArraySectorCalibration;
ClassDef(AliTPCdEdxInfo,3)
};
#endif