#ifndef ALITRDCALIBRAVECTOR_H
#define ALITRDCALIBRAVECTOR_H
#ifndef ROOT_TObject
# include <TObject.h>
#endif
class TGraphErrors;
class TH1F;
class TObjArray;
class AliTRDPhInfo;
class AliTRDEntriesInfo;
class AliTRDPrfInfo;
class AliTRDCalibraVector : public TObject {
public:
AliTRDCalibraVector();
AliTRDCalibraVector(const AliTRDCalibraVector &c);
virtual ~AliTRDCalibraVector();
virtual Long64_t Merge(const TCollection* list);
AliTRDCalibraVector& operator = (const AliTRDCalibraVector &source);
void TestInit(Int_t i, Int_t detmax);
Bool_t UpdateVectorCH(Int_t det, Int_t group, Float_t value);
Bool_t UpdateVectorPRF(Int_t det, Int_t group, Float_t x, Float_t y);
Bool_t UpdateVectorPH(Int_t det, Int_t group, Int_t time, Float_t value);
Bool_t FillVectorCH(Int_t det, Int_t group, Int_t bin, Int_t entries);
Bool_t FillVectorPRF(Int_t det, Int_t group, Int_t bin, Int_t entries, Float_t mean, Float_t square);
Bool_t FillVectorPH(Int_t det, Int_t group, Int_t bin, Int_t entries, Float_t mean, Float_t square);
Bool_t Add(AliTRDCalibraVector *calvector);
AliTRDCalibraVector *AddStatsPerDetectorCH();
AliTRDCalibraVector *AddStatsPerDetectorPH();
AliTRDCalibraVector *AddStatsPerDetectorPRF();
TGraphErrors *ConvertVectorPHTGraphErrors(Int_t det, Int_t group, const Char_t *name);
TGraphErrors *ConvertVectorPRFTGraphErrors(Int_t det, Int_t group, const Char_t *name);
TH1F *CorrectTheError(const TGraphErrors *hist, Int_t &nbEntries);
TH1F *ConvertVectorCHHisto(Int_t det, Int_t group, const Char_t *name);
Int_t SearchBin(Float_t value, Int_t i) const;
Bool_t FindTheMaxEntries(Int_t i, Int_t &detectormax, Int_t &groupmax);
void SetNumberBinCharge(Short_t numberbincharge) { fNumberBinCharge = numberbincharge; }
void SetNumberBinPRF(Short_t numberbinprf) { fNumberBinPRF = numberbinprf; }
void SetTimeMax(Int_t timemax) { fTimeMax = timemax; }
void SetPRFRange(Float_t prfrange) { fPRFRange = prfrange; }
void SetDetCha0(Int_t i, Short_t total) { fDetCha0[i] = total; }
void SetDetCha2(Int_t i, Short_t total) { fDetCha2[i] = total; }
void SetNzNrphi(Int_t i, Int_t nz, Int_t nrphi);
void SetNbGroupPRF(Int_t nbGroup) { fNbGroupPRF = (UChar_t) nbGroup; }
Short_t GetNumberBinCharge()const { return fNumberBinCharge; }
Short_t GetNumberBinPRF()const { return fNumberBinPRF; }
Int_t GetTimeMax()const { return fTimeMax; }
Float_t GetPRFRange()const { return fPRFRange; }
Short_t GetDetCha0(Int_t i) const { return fDetCha0[i]; }
Short_t GetDetCha2(Int_t i) const { return fDetCha2[i]; }
TString GetNamePH() const;
TString GetNamePRF() const;
TString GetNameCH() const;
Int_t GetNz(Int_t i) const;
Int_t GetNrphi(Int_t i) const;
Int_t GetNbGroupPRF() const { return (Int_t)fNbGroupPRF; }
Int_t GetTotalNumberOfBinsInDetector(Int_t det, Int_t i, Int_t nbBin) const;
TObject *GetPHEntries(Int_t det,Bool_t force = kFALSE);
TObject *GetPHMean(Int_t det,Bool_t force = kFALSE);
TObject *GetPHSquares(Int_t det,Bool_t force = kFALSE);
TObject *GetPRFEntries(Int_t det,Bool_t force = kFALSE);
TObject *GetPRFMean(Int_t det,Bool_t force = kFALSE);
TObject *GetPRFSquares(Int_t det,Bool_t force = kFALSE);
TObject *GetCHEntries(Int_t det,Bool_t force = kFALSE);
protected:
AliTRDEntriesInfo *fPHEntries[540];
AliTRDPhInfo *fPHMean[540];
AliTRDPhInfo *fPHSquares[540];
AliTRDEntriesInfo *fPRFEntries[540];
AliTRDPrfInfo *fPRFMean[540];
AliTRDPrfInfo *fPRFSquares[540];
AliTRDEntriesInfo *fCHEntries[540];
UChar_t fModeCH;
UChar_t fModePH;
UChar_t fModePRF;
UChar_t fNbGroupPRF;
Int_t fDetectorPH;
Int_t fDetectorCH;
Int_t fDetectorPRF;
Bool_t fStopFillCH;
TH1F *fHisto;
TGraphErrors *fGraph;
AliTRDCalibraVector *fCalVector;
Short_t fNumberBinCharge;
Short_t fNumberBinPRF;
Int_t fTimeMax;
Float_t fPRFRange;
Short_t fDetCha0[3];
Short_t fDetCha2[3];
AliTRDEntriesInfo *GetEntriesPH(Int_t det, AliTRDEntriesInfo** array, Bool_t force);
AliTRDPhInfo *GetMeanSquaresPH(Int_t det, AliTRDPhInfo** array, Bool_t force);
AliTRDEntriesInfo *GetEntriesPRF(Int_t det, AliTRDEntriesInfo** array, Bool_t force);
AliTRDPrfInfo *GetMeanSquaresPRF(Int_t det, AliTRDPrfInfo** array, Bool_t force);
AliTRDEntriesInfo *GetEntriesCH(Int_t det, AliTRDEntriesInfo** array, Bool_t force);
ClassDef(AliTRDCalibraVector,1)
};
#endif
AliTRDCalibraVector.h:100 AliTRDCalibraVector.h:101 AliTRDCalibraVector.h:102 AliTRDCalibraVector.h:103 AliTRDCalibraVector.h:104 AliTRDCalibraVector.h:105 AliTRDCalibraVector.h:106 AliTRDCalibraVector.h:107 AliTRDCalibraVector.h:108 AliTRDCalibraVector.h:109 AliTRDCalibraVector.h:110 AliTRDCalibraVector.h:111 AliTRDCalibraVector.h:112 AliTRDCalibraVector.h:113 AliTRDCalibraVector.h:114 AliTRDCalibraVector.h:115 AliTRDCalibraVector.h:116 AliTRDCalibraVector.h:117 AliTRDCalibraVector.h:118 AliTRDCalibraVector.h:119 AliTRDCalibraVector.h:120 AliTRDCalibraVector.h:121 AliTRDCalibraVector.h:122 AliTRDCalibraVector.h:123 AliTRDCalibraVector.h:124 AliTRDCalibraVector.h:125 AliTRDCalibraVector.h:126 AliTRDCalibraVector.h:127 AliTRDCalibraVector.h:128 AliTRDCalibraVector.h:129 AliTRDCalibraVector.h:130 AliTRDCalibraVector.h:131 AliTRDCalibraVector.h:132 AliTRDCalibraVector.h:133 AliTRDCalibraVector.h:134 AliTRDCalibraVector.h:135 AliTRDCalibraVector.h:136 AliTRDCalibraVector.h:137 AliTRDCalibraVector.h:138 AliTRDCalibraVector.h:139 AliTRDCalibraVector.h:140 AliTRDCalibraVector.h:141 AliTRDCalibraVector.h:142 AliTRDCalibraVector.h:143 AliTRDCalibraVector.h:144 AliTRDCalibraVector.h:145 AliTRDCalibraVector.h:146 AliTRDCalibraVector.h:147 AliTRDCalibraVector.h:148 AliTRDCalibraVector.h:149 AliTRDCalibraVector.h:150 AliTRDCalibraVector.h:151 AliTRDCalibraVector.h:152 AliTRDCalibraVector.h:153 AliTRDCalibraVector.h:154 AliTRDCalibraVector.h:155 AliTRDCalibraVector.h:156 AliTRDCalibraVector.h:157 AliTRDCalibraVector.h:158 AliTRDCalibraVector.h:159 AliTRDCalibraVector.h:160 AliTRDCalibraVector.h:161