]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCcalibDB.h
--This li
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibDB.h
index c960e0e83e98122766ebac0ea14df334e1bbb78b..231c41816bc1dd56ace9187f84315e3a0377542a 100644 (file)
 class AliTPCTransform;
 class AliTPCExB;
 #include "TObject.h"
-class AliTPCCalPad;
+#include "TObjArray.h"
+#include "TArrayI.h"
+#include "TVectorD.h"
+#include "TGraph.h"
+#include "AliTPCCalPad.h"
+#include "TString.h"
+
 class AliTPCSensorTempArray;
 class AliDCSSensorArray;
 class AliCDBEntry;
 class AliTPCParam;
 class AliTPCAltroMapping;
 class AliTPCClusterParam;
+class AliDCSSensor;
+class AliDCSSensorArray;
+class AliTPCCalibVdrift;
+class AliGRPObject;
+class TMap;
 //class AliCDBStorage;
 
 class AliTPCcalibDB : public TObject
@@ -30,24 +41,97 @@ class AliTPCcalibDB : public TObject
   virtual ~AliTPCcalibDB();
   static void Terminate();
   void   SetRun(Long64_t run);   
+  void   Update();  //update entries
+  void   UpdateRunInformations(Int_t run, Bool_t force=kFALSE);
+  //
+  Long64_t GetRun() const {return fRun;}
+  //
+  //
   //
   AliTPCTransform* GetTransform() {return fTransform;}
-  AliTPCExB* GetExB() {return fExB;}
+  AliTPCExB*    GetExB() {return fExB;}
+  void          SetExBField(Float_t bz);
+  static AliTPCExB*    GetExB(Float_t bz,Bool_t bdelete);
   AliTPCCalPad* GetPadGainFactor() {return fPadGainFactor;}
+  AliTPCCalPad* GetDedxGainFactor() {return fDedxGainFactor;}
   AliTPCCalPad* GetPadTime0() {return fPadTime0;}
   AliTPCCalPad* GetPadNoise() {return fPadNoise;}
   AliTPCCalPad* GetPedestals() {return fPedestals;}
+  //ALTRO config data
+  TObjArray* GetAltroConfigData()  const {return fALTROConfigData;}
+  AliTPCCalPad* GetALTROAcqStart() const {return fALTROConfigData?static_cast<AliTPCCalPad*>(fALTROConfigData->FindObject("AcqStart")):0;}
+  AliTPCCalPad* GetALTROZsThr()    const {return fALTROConfigData?static_cast<AliTPCCalPad*>(fALTROConfigData->FindObject("ZsThr")):0;}
+  AliTPCCalPad* GetALTROFPED()     const {return fALTROConfigData?static_cast<AliTPCCalPad*>(fALTROConfigData->FindObject("FPED")):0;}
+  AliTPCCalPad* GetALTROAcqStop()  const {return fALTROConfigData?static_cast<AliTPCCalPad*>(fALTROConfigData->FindObject("AcqStop")):0;}
+  AliTPCCalPad* GetALTROMasked()   const {return fALTROConfigData?static_cast<AliTPCCalPad*>(fALTROConfigData->FindObject("Masked")):0;}
+  //Pulser data
+  TObjArray*    GetPulserData()  const {return fPulserData;}
+  AliTPCCalPad* GetPulserTmean() const {return fPulserData?static_cast<AliTPCCalPad*>(fPulserData->FindObject("PulserTmean")):0;}
+  AliTPCCalPad* GetPulserTrms()  const {return fPulserData?static_cast<AliTPCCalPad*>(fPulserData->FindObject("PulserTrms")):0;}
+  AliTPCCalPad* GetPulserQmean() const {return fPulserData?static_cast<AliTPCCalPad*>(fPulserData->FindObject("PulserQmean")):0;}
+//CE data
+  TObjArray*    GetCEData()     const {return fCEData;}
+  AliTPCCalPad* GetCETmean()    const {return fCEData?static_cast<AliTPCCalPad*>(fCEData->FindObject("CETmean")):0;}
+  AliTPCCalPad* GetCETrms()     const {return fCEData?static_cast<AliTPCCalPad*>(fCEData->FindObject("CETrms")):0;}
+  AliTPCCalPad* GetCEQmean()    const {return fCEData?static_cast<AliTPCCalPad*>(fCEData->FindObject("CEQmean")):0;}
+  TObjArray*    GetCErocTtime() const {return fCEData?static_cast<TObjArray*>(fCEData->FindObject("rocTtime")):0;}
+  TObjArray*    GetCErocQtime() const {return fCEData?static_cast<TObjArray*>(fCEData->FindObject("rocQtime")):0;}
+  TGraph*       GetCErocTgraph(const Int_t roc)const {return GetCErocTtime()?static_cast<TGraph*>(GetCErocTtime()->At(roc)):0;}
+  TGraph*       GetCErocQgraph(const Int_t roc)const {return GetCErocQtime()?static_cast<TGraph*>(GetCErocQtime()->At(roc)):0;}
+//
   AliTPCSensorTempArray* GetTemperature() {return fTemperature;}
   AliTPCParam*  GetParameters(){return fParam;}
   AliTPCAltroMapping ** GetMapping(){ return fMapping;}
   AliTPCClusterParam *GetClusterParam(){ return fClusterParam;}
+  TObjArray *GetTimeGainSplines(){ return fTimeGainSplines;}  
+  //
+  //GRP information
+  static AliGRPObject * GetGRP(Int_t run);
+  static TMap *  GetGRPMap(Int_t run);
+  static Float_t GetPressure(Int_t timeStamp, Int_t run, Int_t type=0);
+  static Float_t GetL3Current(Int_t run, Int_t statType=0);
+  static Float_t GetBz(Int_t run);
+  static Char_t  GetL3Polarity(Int_t run);
+  static TString GetRunType(Int_t run);
+  //
+  static Float_t GetDCSSensorValue(AliDCSSensorArray *arr, Int_t timeStamp, const char * sensorName, Int_t sigDigits=-1);
+  static Float_t GetDCSSensorMeanValue(AliDCSSensorArray *arr, const char * sensorName, Int_t sigDigits=-1);
+  //Voltage information
+  static Float_t GetChamberHighVoltage(Int_t run, Int_t sector, Int_t timeStamp=-1, Int_t sigDigits=0);
+  static Float_t GetSkirtVoltage(Int_t run, Int_t sector, Int_t timeStamp=-1, Int_t sigDigits=0);
+  static Float_t GetCoverVoltage(Int_t run, Int_t sector, Int_t timeStamp=-1, Int_t sigDigits=0);
+  static Float_t GetGGoffsetVoltage(Int_t run, Int_t sector, Int_t timeStamp=-1, Int_t sigDigits=0);
+  static Float_t GetGGnegVoltage(Int_t run, Int_t sector, Int_t timeStamp=-1, Int_t sigDigits=0);
+  static Float_t GetGGposVoltage(Int_t run, Int_t sector, Int_t timeStamp=-1, Int_t sigDigits=0);
+  //Goofie Values
+  static Float_t GetValueGoofie(Int_t timeStamp, Int_t run, Int_t type);
+  //
+  static Bool_t  GetTemperatureFit(Int_t timeStamp, Int_t run, Int_t side,TVectorD& fit);
+  static Float_t GetTemperature(Int_t timeStamp, Int_t run, Int_t side);
+  static Double_t GetPTRelative(UInt_t timeSec, Int_t run,  Int_t side);
+  AliDCSSensor * GetPressureSensor(Int_t run, Int_t type=0);
+  //AliDCSSensor * GetVoltageSensor(Int_t run, Int_t type=0);
+  AliTPCSensorTempArray * GetTemperatureSensor(Int_t run);
+  AliDCSSensorArray *     GetGoofieSensors(Int_t run);
+  AliDCSSensorArray *     GetVoltageSensors(Int_t run);
+  AliTPCCalibVdrift *     GetVdrift(Int_t run);
+       TObjArray *                                                     GetTimeGainSplinesRun(Int_t run);
+  static Float_t GetGain(Int_t sector, Int_t row, Int_t pad);
   //
   static void     CreateObjectList(const Char_t *filename, TObjArray *calibObjects);
   static void MakeTree(const char * fileName, TObjArray * array, const char * mapFileName = 0, AliTPCCalPad* outlierPad = 0, Float_t ltmFraction = 0.9);
-  
+  static void RegisterExB(Int_t index, Float_t bz, Bool_t bdelete);
+  //
+  //
+  static  void ProcessGoofie( AliDCSSensorArray* goofieArray, TVectorD & vecEntries, TVectorD & vecMedian, TVectorD &vecMean, TVectorD &vecRMS);
+  static void ProcessEnv(const char * runList);
+
+  AliGRPObject * MakeGRPObjectFromMap(TMap *map);
+  //Create a tree suited for diplaying with the AliTPCCalibViewerGUI
+  static Bool_t CreateGUITree(Int_t run, const char* filename="");
   //
 protected:
-  void         Update();  //update entries
+  
   AliCDBEntry* GetCDBEntry(const char* cdbPath);   
   Long64_t        fRun;         // current run number
   AliTPCTransform *fTransform;      // object responsible for spacial corrections
@@ -57,22 +141,42 @@ protected:
   // calibration parameters per pad
   //
   AliTPCCalPad* fPadGainFactor;   // Gain calibration entry
+  AliTPCCalPad* fDedxGainFactor;   // Gain calibration entry - for dEdx
   AliTPCCalPad* fPadTime0;        // Time0 calibration entry
   AliTPCCalPad* fPadNoise;        // Noise calibration entry
   AliTPCCalPad* fPedestals;       // Pedestal calibration entry
+  TObjArray *fALTROConfigData;    // ALTRO configuration data
+  TObjArray *fPulserData;         // Calibration Pulser data
+  TObjArray *fCEData;             // CE data
+  //
   AliTPCSensorTempArray* fTemperature; // Temperature calibration entry
   AliTPCAltroMapping **fMapping;   // Altro mapping   
   //
   //
   AliTPCParam * fParam;           // TPC parameters
   AliTPCClusterParam * fClusterParam;  // TPC cluster error, shape and Q parameterization
+  TObjArray * fTimeGainSplines; // Array of AliSplineFits: at 0 MIP position in time ; at 1 Fermi Plateau from cosmics
+  //
+  // Get the corssrun information
+  //
+  TObjArray      fTimeGainSplinesArray; //! array Array of AliSplineFits: at 0 MIP position in time ; at 1 Fermi Plateau from cosmics
+  TObjArray      fGRPArray;                                                    //! array of GRPs  -  per run
+  TObjArray      fGRPMaps;                                                     //! array of GRPs maps  -  per run - old data  
+  TObjArray      fGoofieArray;                                 //! array of GOOFIE values -per run
+  TObjArray      fVoltageArray;                                        //! array of Chamber HV values -per run
+  TObjArray      fTemperatureArray;                    //! array of temperature sensors - per run
+  TObjArray      fVdriftArray;                                 //! array of v drift interfaces
+  TObjArray      fDriftCorrectionArray;                //! array of drift correction
+
+  TArrayI        fRunList;                                                     //! run list - indicates try to get the run param
   //
   static AliTPCcalibDB* fgInstance;  // singleton control
   static Bool_t       fgTerminated;  // termination control 
+  static TObjArray    fgExBArray;    // array of ExB corrections
   ClassDef(AliTPCcalibDB, 0)
  private:
-   AliTPCcalibDB (const AliTPCcalibDB& org);
-   AliTPCcalibDB& operator= (const AliTPCcalibDB& rhs);
+   AliTPCcalibDB (const AliTPCcalibDB& );
+   AliTPCcalibDB& operator= (const AliTPCcalibDB& );
 };