]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSCalibData.h
Added possibility to accumulate statistics through the number of runs.
[u/mrichter/AliRoot.git] / PHOS / AliPHOSCalibData.h
1 #ifndef ALIPHOSCALIBDATA_H
2 #define ALIPHOSCALIBDATA_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 ////////////////////////////////////////////////
10 //  class for PHOS calibration                //
11 ////////////////////////////////////////////////
12
13 #include "TNamed.h"
14 #include "TString.h"
15
16 class AliPHOSEmcCalibData;
17 class AliPHOSCpvCalibData;
18 class AliPHOSEmcBadChannelsMap;
19 class AliCDBMetaData;
20
21 class AliPHOSCalibData: public TNamed {
22
23  public:
24   AliPHOSCalibData();
25   AliPHOSCalibData(Int_t runNumber);
26   AliPHOSCalibData(AliPHOSCalibData & phosCDB);
27   virtual ~AliPHOSCalibData();
28
29   AliPHOSCalibData & operator = (const AliPHOSCalibData & rhs);
30
31   void Reset();
32   virtual void Print(Option_t *option = "") const; 
33
34   AliPHOSEmcCalibData *GetCalibDataEmc() const {return fCalibDataEmc;}
35   AliPHOSCpvCalibData *GetCalibDataCpv() const {return fCalibDataCpv;}
36   
37   void CreateNew();
38   void RandomEmc(Float_t ccMin=0.5   , Float_t ccMax=1.5);
39   void RandomCpv(Float_t ccMin=0.0009, Float_t ccMax=0.0015);
40
41   //----First EMC parameters---------
42   Float_t GetADCchannelEmc(Int_t module, Int_t column, Int_t row) const;
43   void    SetADCchannelEmc(Int_t module, Int_t column, Int_t row, Float_t value);
44
45   Float_t GetADCpedestalEmc(Int_t module, Int_t column, Int_t row) const;
46   void    SetADCpedestalEmc(Int_t module, Int_t column, Int_t row, Float_t value);
47
48   Float_t GetHighLowRatioEmc(Int_t module, Int_t column, Int_t row) const ;
49   void    SetHighLowRatioEmc(Int_t module, Int_t column, Int_t row, Float_t value) ;
50   
51   Float_t GetTimeShiftEmc(Int_t module, Int_t column, Int_t row) const;
52   void    SetTimeShiftEmc(Int_t module, Int_t column, Int_t row, Float_t value) ;
53
54   Int_t  GetAltroOffsetEmc(Int_t module, Int_t column, Int_t row) const;
55   void   SetAltroOffsetEmc(Int_t module, Int_t column, Int_t row, Int_t value) ;
56
57   Float_t GetSampleTimeStep() const ;
58   void    SetSampleTimeStep(Float_t step) ;
59
60   //----Now CPV parameters-----------
61   Float_t GetADCchannelCpv(Int_t module, Int_t column, Int_t row) const;
62   void    SetADCchannelCpv(Int_t module, Int_t column, Int_t row, Float_t value);
63
64   Float_t GetADCpedestalCpv(Int_t module, Int_t column, Int_t row) const;
65   void    SetADCpedestalCpv(Int_t module, Int_t column, Int_t row, Float_t value);
66
67   //----Bad channels map-------------
68   Int_t  GetNumOfEmcBadChannels() const;
69   Bool_t IsBadChannelEmc(Int_t module, Int_t col, Int_t row) const; 
70   void   EmcBadChannelIds(Int_t *badIds=0); 
71
72   void SetEmcDataPath(const char* emcPath) {fEmcDataPath=emcPath;}
73   void SetCpvDataPath(const char* cpvPath) {fCpvDataPath=cpvPath;}
74
75   Bool_t WriteEmc(Int_t firstRun, Int_t lastRun, AliCDBMetaData *md);
76   Bool_t WriteCpv(Int_t firstRun, Int_t lastRun, AliCDBMetaData *md);
77   Bool_t WriteEmcBadChannelsMap(Int_t firstRun, Int_t lastRun, AliCDBMetaData *md);
78
79  private:
80
81   AliPHOSEmcCalibData* fCalibDataEmc; // EMC calibration data
82   AliPHOSCpvCalibData* fCalibDataCpv; // CPV calibration data
83   AliPHOSEmcBadChannelsMap* fEmcBadChannelsMap; // EMC bad channels map
84   
85   TString fEmcDataPath; // path to EMC calibration data
86   TString fCpvDataPath; // path to CPV calibration data
87   TString fEmcBadChannelsMapPath; // path to bad channels map
88
89   ClassDef(AliPHOSCalibData,5)    // PHOS Calibration data
90 };
91
92 #endif