/* $Id$ */
////////////////////////////////////////////////
-// class for PHOS calibration //
+// class for PHOS calibration //
////////////////////////////////////////////////
#include "TNamed.h"
-#include "AliPHOS.h"
+#include "TString.h"
+
+class AliPHOSEmcCalibData;
+class AliPHOSCpvCalibData;
+class AliPHOSEmcBadChannelsMap;
+class AliCDBMetaData;
class AliPHOSCalibData: public TNamed {
public:
AliPHOSCalibData();
- AliPHOSCalibData(const char* name);
- AliPHOSCalibData(const AliPHOSCalibData &calibda);
- AliPHOSCalibData& operator= (const AliPHOSCalibData &calibda);
+ AliPHOSCalibData(Int_t runNumber);
+ AliPHOSCalibData(AliPHOSCalibData & phosCDB);
virtual ~AliPHOSCalibData();
+
+ AliPHOSCalibData & operator = (const AliPHOSCalibData & rhs);
+
void Reset();
virtual void Print(Option_t *option = "") const;
- //
- Float_t GetADCchannelEmc(Int_t module, Int_t column, Int_t row) const {return fADCchannelEmc[module][column][row];}
- Float_t GetADCpedestalEmc(Int_t module, Int_t column, Int_t row) const {return fADCpedestalEmc[module][column][row];}
- //
- void SetADCchannelEmc(Int_t module, Int_t column, Int_t row, Float_t value) {fADCchannelEmc[module][column][row] = value;}
- void SetADCpedestalEmc(Int_t module, Int_t column, Int_t row, Float_t value) {fADCpedestalEmc[module][column][row] = value;}
-
- protected:
- Float_t fADCchannelEmc[5][64][56] ; // width of one ADC channel in GeV
- Float_t fADCpedestalEmc[5][64][56] ; // value of the EMC ADC pedestal
- //
- ClassDef(AliPHOSCalibData,1) // PHOS Calibration data
+
+ AliPHOSEmcCalibData *GetCalibDataEmc() const {return fCalibDataEmc;}
+ AliPHOSCpvCalibData *GetCalibDataCpv() const {return fCalibDataCpv;}
+
+ void CreateNew();
+ void RandomEmc(Float_t ccMin=0.5 , Float_t ccMax=1.5);
+ void RandomCpv(Float_t ccMin=0.0009, Float_t ccMax=0.0015);
+
+ //----First EMC parameters---------
+ Float_t GetADCchannelEmc(Int_t module, Int_t column, Int_t row) const;
+ void SetADCchannelEmc(Int_t module, Int_t column, Int_t row, Float_t value);
+
+ Float_t GetADCpedestalEmc(Int_t module, Int_t column, Int_t row) const;
+ void SetADCpedestalEmc(Int_t module, Int_t column, Int_t row, Float_t value);
+
+ Float_t GetHighLowRatioEmc(Int_t module, Int_t column, Int_t row) const ;
+ void SetHighLowRatioEmc(Int_t module, Int_t column, Int_t row, Float_t value) ;
+
+ Float_t GetTimeShiftEmc(Int_t module, Int_t column, Int_t row) const;
+ void SetTimeShiftEmc(Int_t module, Int_t column, Int_t row, Float_t value) ;
+
+ //----Now CPV parameters-----------
+ Float_t GetADCchannelCpv(Int_t module, Int_t column, Int_t row) const;
+ void SetADCchannelCpv(Int_t module, Int_t column, Int_t row, Float_t value);
+
+ Float_t GetADCpedestalCpv(Int_t module, Int_t column, Int_t row) const;
+ void SetADCpedestalCpv(Int_t module, Int_t column, Int_t row, Float_t value);
+
+ //----Bad channels map-------------
+ Int_t GetNumOfEmcBadChannels() const;
+ Bool_t IsBadChannelEmc(Int_t module, Int_t col, Int_t row) const;
+ void EmcBadChannelIds(Int_t *badIds=0);
+
+ void SetEmcDataPath(const char* emcPath) {fEmcDataPath=emcPath;}
+ void SetCpvDataPath(const char* cpvPath) {fCpvDataPath=cpvPath;}
+
+ Bool_t WriteEmc(Int_t firstRun, Int_t lastRun, AliCDBMetaData *md);
+ Bool_t WriteCpv(Int_t firstRun, Int_t lastRun, AliCDBMetaData *md);
+ Bool_t WriteEmcBadChannelsMap(Int_t firstRun, Int_t lastRun, AliCDBMetaData *md);
+
+ private:
+
+ AliPHOSEmcCalibData* fCalibDataEmc; // EMC calibration data
+ AliPHOSCpvCalibData* fCalibDataCpv; // CPV calibration data
+ AliPHOSEmcBadChannelsMap* fEmcBadChannelsMap; // EMC bad channels map
+
+ TString fEmcDataPath; // path to EMC calibration data
+ TString fCpvDataPath; // path to CPV calibration data
+ TString fEmcBadChannelsMapPath; // path to bad channels map
+
+ ClassDef(AliPHOSCalibData,5) // PHOS Calibration data
};
#endif