TRD module
[u/mrichter/AliRoot.git] / TRD / TRDbase / AliTRDCalOnlineGainTable.h
1 #ifndef ALITRDCALONLINEGAINTABLE_H
2 #define ALITRDCALONLINEGAINTABLE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 #include <TObject.h>
7 #include "AliTRDCalOnlineGainTableROC.h"
8
9 //////////////////////////////////////////////////////////////////////////////////////////////
10 //
11 // Data structure to store gaintables of the online calibration in the OCDB
12 // consisting of three classes:
13 // AliTRDCalOnlineGainTable 
14 // AliTRDCalOnlineGainTableROC 
15 // AliTRDCalOnlineGainTableMCM
16 //
17 // AliTRDCalOnlineGainTable is the main class from which all stored data can be accessed.
18 // The two sub-classes AliTRDCalOnlineGainTableROC and AliTRDCalOnlineGainTableMCM
19 // contain the gaintables on ROC level and on the MCM level respectively.
20 //
21 // The online calibration is used to compensate gain deviations on the pad level.
22 // For the offline reconstruction the online calibration has to be undone. 
23 // The corresponding gain correction factor that was used by the online gain filter can be accessed 
24 // via the functions AliTRDCalOnlineGainTable::GetGainCorrectionFactor(Int_t det, Int_t row, Int_t col) 
25 // and AliTRDCalOnlineGainTable::GetGainCorrectionFactor(Int_t sector, Int_t stack, Int_t layer, Int_t row, Int_t col).
26 //
27 //////////////////////////////////////////////////////////////////////////////////////////////
28
29 class AliTRDCalOnlineGainTable: public TObject
30 {
31 public:
32
33   AliTRDCalOnlineGainTable();
34   AliTRDCalOnlineGainTable(const AliTRDCalOnlineGainTable& other);
35   AliTRDCalOnlineGainTable& operator=(const AliTRDCalOnlineGainTable& other);
36   ~AliTRDCalOnlineGainTable();
37
38   Float_t GetGainCorrectionFactor(Int_t det, Int_t row, Int_t col) const;
39   Float_t GetGainCorrectionFactor(Int_t sector, Int_t stack, Int_t layer, Int_t row, Int_t col) const;
40
41   Short_t GetAdcdac(Int_t det, Int_t row, Int_t col);
42   Short_t GetAdcdac(Int_t sector, Int_t stack, Int_t layer, Int_t row, Int_t col);
43
44   Float_t GetMCMGain(Int_t det, Int_t row, Int_t col);
45   Float_t GetMCMGain(Int_t sector, Int_t stack, Int_t layer, Int_t row, Int_t col);
46
47   Short_t GetFGAN(Int_t det, Int_t row, Int_t col);
48   Short_t GetFGAN(Int_t sector, Int_t stack, Int_t layer, Int_t row, Int_t col);
49
50   Short_t GetFGFN(Int_t det, Int_t row, Int_t col);
51   Short_t GetFGFN(Int_t sector, Int_t stack, Int_t layer, Int_t row, Int_t col);
52
53   void AllocateGainTableROC(Int_t det);
54
55   AliTRDCalOnlineGainTableROC *GetGainTableROC(Int_t det) const
56   {
57     // returns the Gain Table for the given detector
58     return fROCGainTables[det];
59   }
60
61   AliTRDCalOnlineGainTableROC *GetGainTableROC(Int_t sector, Int_t stack, Int_t layer) const
62   {
63     // returns the Gain Table for the given detector
64     return GetGainTableROC(sector*30 + stack*6 + layer);
65   } 
66
67   static const Float_t UnDef;
68
69 protected:
70
71   AliTRDCalOnlineGainTableROC* fROCGainTables[540]; // Array of gain tables for all ROCs
72   
73   ClassDef(AliTRDCalOnlineGainTable,2);             // TRD online gain tables
74
75 };
76
77 #endif