]>
Commit | Line | Data |
---|---|---|
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 |