]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCcalibDB.h
script that allows to 1) merge the QA data available in AliEn and belonging to a...
[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 AliTPCCalibVdrift;
30 class AliGRPObject;
31 class TMap;
32 //class AliCDBStorage;
33
34 class AliTPCcalibDB : public TObject
35 {
36  public: 
37   static AliTPCcalibDB* Instance();
38   AliTPCcalibDB();
39   virtual ~AliTPCcalibDB();
40   static void Terminate();
41   void   SetRun(Long64_t run);   
42   void   Update();  //update entries
43   void   UpdateRunInformations(Int_t run, Bool_t force=kFALSE);
44   //
45   //
46   //
47   //
48   AliTPCTransform* GetTransform() {return fTransform;}
49   AliTPCExB*    GetExB() {return fExB;}
50   void          SetExBField(Float_t bz);
51   static AliTPCExB*    GetExB(Float_t bz,Bool_t bdelete);
52   AliTPCCalPad* GetPadGainFactor() {return fPadGainFactor;}
53   AliTPCCalPad* GetDedxGainFactor() {return fDedxGainFactor;}
54   AliTPCCalPad* GetPadTime0() {return fPadTime0;}
55   AliTPCCalPad* GetPadNoise() {return fPadNoise;}
56   AliTPCCalPad* GetPedestals() {return fPedestals;}
57   AliTPCSensorTempArray* GetTemperature() {return fTemperature;}
58   AliTPCParam*  GetParameters(){return fParam;}
59   AliTPCAltroMapping ** GetMapping(){ return fMapping;}
60   AliTPCClusterParam *GetClusterParam(){ return fClusterParam;}
61   TObjArray *GetTimeGainSplines(){ return fTimeGainSplines;}  
62   //
63   //
64   static AliGRPObject * GetGRP(Int_t run);
65   static TMap *  GetGRPMap(Int_t run);
66   static Float_t GetPressure(Int_t timeStamp, Int_t run, Int_t type=0);
67   static Float_t GetChamberHighVoltage(Int_t timeStamp, Int_t run, Int_t sector);
68   static Float_t GetValueGoofie(Int_t timeStamp, Int_t run, Int_t type);
69   static Bool_t  GetTemperatureFit(Int_t timeStamp, Int_t run, Int_t side,TVectorD& fit);
70   static Float_t GetTemperature(Int_t timeStamp, Int_t run, Int_t side);
71   static Double_t GetPTRelative(UInt_t timeSec, Int_t run,  Int_t side);
72   AliDCSSensor * GetPressureSensor(Int_t run, Int_t type=0);
73   //AliDCSSensor * GetVoltageSensor(Int_t run, Int_t type=0);
74   AliTPCSensorTempArray * GetTemperatureSensor(Int_t run);
75   AliDCSSensorArray *     GetGoofieSensors(Int_t run);
76   AliDCSSensorArray *     GetVoltageSensors(Int_t run);
77   AliTPCCalibVdrift *     GetVdrift(Int_t run);
78         TObjArray *                                                     GetTimeGainSplinesRun(Int_t run);
79   static Float_t GetGain(Int_t sector, Int_t row, Int_t pad);
80   //
81   static void     CreateObjectList(const Char_t *filename, TObjArray *calibObjects);
82   static void MakeTree(const char * fileName, TObjArray * array, const char * mapFileName = 0, AliTPCCalPad* outlierPad = 0, Float_t ltmFraction = 0.9);
83   static void RegisterExB(Int_t index, Float_t bz, Bool_t bdelete);
84   //
85   //
86   static  void ProcessGoofie( AliDCSSensorArray* goofieArray, TVectorD & vecEntries, TVectorD & vecMedian, TVectorD &vecMean, TVectorD &vecRMS);
87   static void ProcessEnv(const char * runList);
88
89   AliGRPObject * MakeGRPObjectFromMap(TMap *map);
90   //
91 protected:
92   
93   AliCDBEntry* GetCDBEntry(const char* cdbPath);   
94   Long64_t        fRun;         // current run number
95   AliTPCTransform *fTransform;      // object responsible for spacial corrections
96   AliTPCExB *fExB;              // ExB correction factor
97 //  AliCDBStorage* fLocator;      // Storage locator retrieved from AliCDBManager
98   //
99   // calibration parameters per pad
100   //
101   AliTPCCalPad* fPadGainFactor;   // Gain calibration entry
102   AliTPCCalPad* fDedxGainFactor;   // Gain calibration entry - for dEdx
103   AliTPCCalPad* fPadTime0;        // Time0 calibration entry
104   AliTPCCalPad* fPadNoise;        // Noise calibration entry
105   AliTPCCalPad* fPedestals;       // Pedestal calibration entry
106   AliTPCSensorTempArray* fTemperature; // Temperature calibration entry
107   AliTPCAltroMapping **fMapping;   // Altro mapping   
108   //
109   //
110   AliTPCParam * fParam;           // TPC parameters
111   AliTPCClusterParam * fClusterParam;  // TPC cluster error, shape and Q parameterization
112   TObjArray * fTimeGainSplines; // Array of AliSplineFits: at 0 MIP position in time ; at 1 Fermi Plateau from cosmics
113   //
114   // Get the corssrun information
115   //
116   TObjArray      fTimeGainSplinesArray; //! array Array of AliSplineFits: at 0 MIP position in time ; at 1 Fermi Plateau from cosmics
117   TObjArray      fGRPArray;                                                     //! array of GRPs  -  per run
118   TObjArray      fGRPMaps;                                                      //! array of GRPs maps  -  per run - old data  
119   TObjArray      fGoofieArray;                                  //! array of GOOFIE values -per run
120   TObjArray      fVoltageArray;                                 //! array of Chamber HV values -per run
121   TObjArray      fTemperatureArray;                     //! array of temperature sensors - per run
122   TObjArray      fVdriftArray;                                  //! array of v drift interfaces
123   TObjArray      fDriftCorrectionArray;                //! array of drift correction
124
125   TArrayI        fRunList;                                                      //! run list - indicates try to get the run param
126   //
127   static AliTPCcalibDB* fgInstance;  // singleton control
128   static Bool_t       fgTerminated;  // termination control 
129   static TObjArray    fgExBArray;    // array of ExB corrections
130   ClassDef(AliTPCcalibDB, 0)
131  private:
132    AliTPCcalibDB (const AliTPCcalibDB& );
133    AliTPCcalibDB& operator= (const AliTPCcalibDB& );
134 };
135
136
137 #endif