]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCcalibDB.h
Getting temperature fit (Marian)
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibDB.h
1 #ifndef ALITPCCALIBDB_H
2 #define ALITPCCALIBDB_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ///////////////////////////////////////////////////////////////////////////////
7 //                                                                           //
8 // Class providing the calibration parameters by accessing the CDB           //
9 //                                                                           //
10 ///////////////////////////////////////////////////////////////////////////////
11
12
13 class AliTPCTransform;
14 class AliTPCExB;
15 #include "TObject.h"
16 #include "TObjArray.h"
17 #include "TArrayI.h"
18 #include "TVectorD.h"
19
20 class AliTPCCalPad;
21 class AliTPCSensorTempArray;
22 class AliDCSSensorArray;
23 class AliCDBEntry;
24 class AliTPCParam;
25 class AliTPCAltroMapping;
26 class AliTPCClusterParam;
27 class AliDCSSensor;
28 class AliDCSSensorArray;
29 //class AliCDBStorage;
30
31 class AliTPCcalibDB : public TObject
32 {
33  public: 
34   static AliTPCcalibDB* Instance();
35   AliTPCcalibDB();
36   virtual ~AliTPCcalibDB();
37   static void Terminate();
38   void   SetRun(Long64_t run);   
39   //
40   AliTPCTransform* GetTransform() {return fTransform;}
41   AliTPCExB*    GetExB() {return fExB;}
42   void          SetExBField(Float_t bz);
43   static AliTPCExB*    GetExB(Float_t bz,Bool_t bdelete);
44   AliTPCCalPad* GetPadGainFactor() {return fPadGainFactor;}
45   AliTPCCalPad* GetDedxGainFactor() {return fDedxGainFactor;}
46   AliTPCCalPad* GetPadTime0() {return fPadTime0;}
47   AliTPCCalPad* GetPadNoise() {return fPadNoise;}
48   AliTPCCalPad* GetPedestals() {return fPedestals;}
49   AliTPCSensorTempArray* GetTemperature() {return fTemperature;}
50   AliTPCParam*  GetParameters(){return fParam;}
51   AliTPCAltroMapping ** GetMapping(){ return fMapping;}
52   AliTPCClusterParam *GetClusterParam(){ return fClusterParam;}
53   //
54   Float_t GetPressure(Int_t timeStamp, Int_t run);
55   Bool_t  GetTemperatureFit(Int_t timeStamp, Int_t run, Int_t side,TVectorD& fit);
56   AliDCSSensor * GetPressureSensor(Int_t run);
57   AliTPCSensorTempArray * GetTemperatureSensor(Int_t run);
58   AliDCSSensorArray *     GetGoofieSensors(Int_t run);
59   static Float_t GetGain(Int_t sector, Int_t row, Int_t pad);
60   //
61   static void     CreateObjectList(const Char_t *filename, TObjArray *calibObjects);
62   static void MakeTree(const char * fileName, TObjArray * array, const char * mapFileName = 0, AliTPCCalPad* outlierPad = 0, Float_t ltmFraction = 0.9);
63   static void RegisterExB(Int_t index, Float_t bz, Bool_t bdelete);
64   //
65   //
66   static  void ProcessGoofie( AliDCSSensorArray* goofieArray, TVectorD & vecEntries, TVectorD & vecMedian, TVectorD &vecMean, TVectorD &vecRMS);
67   static void ProcessEnv(const char * runList);
68
69   //
70 protected:
71   void         Update();  //update entries
72   AliCDBEntry* GetCDBEntry(const char* cdbPath);   
73   void GetRunInformations(Int_t run); // JUST FOR CALIBRATION STUDIES
74   Long64_t        fRun;         // current run number
75   AliTPCTransform *fTransform;      // object responsible for spacial corrections
76   AliTPCExB *fExB;              // ExB correction factor
77 //  AliCDBStorage* fLocator;      // Storage locator retrieved from AliCDBManager
78   //
79   // calibration parameters per pad
80   //
81   AliTPCCalPad* fPadGainFactor;   // Gain calibration entry
82   AliTPCCalPad* fDedxGainFactor;   // Gain calibration entry - for dEdx
83   AliTPCCalPad* fPadTime0;        // Time0 calibration entry
84   AliTPCCalPad* fPadNoise;        // Noise calibration entry
85   AliTPCCalPad* fPedestals;       // Pedestal calibration entry
86   AliTPCSensorTempArray* fTemperature; // Temperature calibration entry
87   AliTPCAltroMapping **fMapping;   // Altro mapping   
88   //
89   //
90   AliTPCParam * fParam;           // TPC parameters
91   AliTPCClusterParam * fClusterParam;  // TPC cluster error, shape and Q parameterization
92   //
93   // Get the corssrun information
94   //
95   TObjArray      fGRPArray;           //! array of GRPs  -  per run
96   TObjArray      fGoofieArray;        //! array of GOOFIE values -per run
97   TObjArray      fTemperatureArray;   //! array of temperature sensors - per run
98   TArrayI        fRunList;            //! run list - indicates try to get the run param
99   //
100   static AliTPCcalibDB* fgInstance;  // singleton control
101   static Bool_t       fgTerminated;  // termination control 
102   static TObjArray    fgExBArray;    // array of ExB corrections
103   ClassDef(AliTPCcalibDB, 0)
104  private:
105    AliTPCcalibDB (const AliTPCcalibDB& );
106    AliTPCcalibDB& operator= (const AliTPCcalibDB& );
107 };
108
109
110 #endif