]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCcalibDB.h
remove obsolete library TPCfast
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibDB.h
index 442845504de401860245a28873f3abd45d2062b5..9c4f983965aca9f1d9f9187e612d181214e18dae 100644 (file)
@@ -20,6 +20,7 @@ class AliTPCExB;
 #include "AliTPCCalPad.h"
 #include "TString.h"
 #include "AliSplineFit.h"
+#include "TMap.h"
 
 class AliTPCSensorTempArray;
 class AliDCSSensorArray;
@@ -32,9 +33,11 @@ class AliDCSSensorArray;
 class AliTPCCalibVdrift;
 class AliGRPObject;
 class AliTPCCalibRaw;
-class TMap;
+class AliTPCdataQA;
 class AliMagF;
 class AliTPCcalibDButil;
+class AliCTPTimeParams;
+class AliTPCCorrection;
 //class AliCDBStorage;
 
 class AliTPCcalibDB : public TObject
@@ -47,21 +50,32 @@ class AliTPCcalibDB : public TObject
   void   SetRun(Long64_t run);   
   void   Update();  //update entries
   void   UpdateRunInformations(Int_t run, Bool_t force=kFALSE);
+  void   UpdateNonRec();
   //
   Long64_t GetRun() const {return fRun;}
   //
   //
   //
-  AliTPCTransform* GetTransform() {return fTransform;}
-  AliTPCExB*    GetExB() {return fExB;}
+  AliTPCTransform* GetTransform() const {return fTransform;}
+  AliTPCExB*    GetExB() const {return fExB;}
   void          SetExBField(Float_t bz);
   void          SetExBField( const AliMagF*   bmap);
   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;}
+  AliTPCCalPad* GetPadGainFactorOld() const {return fPadGainFactor;}
+  AliTPCCalPad* GetPadGainFactor() const {return fActiveChannelMap;}
+  AliTPCCalPad* GetActiveChannelMap() const { return fActiveChannelMap; }
+  AliTPCCalPad* GetDedxGainFactor() const {return fDedxGainFactor;}
+  AliTPCCalPad* GetPadTime0() const {return fPadTime0;}
+  AliTPCCalPad* GetDistortionMap(Int_t i) const;
+  AliTPCCorrection * GetTPCComposedCorrection() const { return fComposedCorrection;}
+  TObjArray * GetTPCComposedCorrectionArray() const { return fComposedCorrectionArray;}
+  void          SetTPCComposedCorrection(AliTPCCorrection *compCorr) { fComposedCorrection=compCorr;}
+  AliTPCCorrection * GetTPCComposedCorrection(Float_t field) const;
+  AliTPCCorrection * GetTPCComposedCorrectionDelta() const;
+  Bool_t      HasAlignmentOCDB() const { return fBHasAlignmentOCDB;}
+
+  AliTPCCalPad* GetPadNoise() const {return fPadNoise;}
+  AliTPCCalPad* GetPedestals() const{return fPedestals;}
   //ALTRO config data
   TObjArray* GetAltroConfigData()  const {return fALTROConfigData;}
   AliTPCCalPad* GetALTROAcqStart() const {return fALTROConfigData?static_cast<AliTPCCalPad*>(fALTROConfigData->FindObject("AcqStart")):0;}
@@ -69,6 +83,14 @@ class AliTPCcalibDB : public TObject
   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;}
+  TMap* GetDDLMap()   const {return fALTROConfigData?static_cast<TMap*>(fALTROConfigData->FindObject("DDLArray")):0;}
+  TMap* GetRCUconfig() const {return fALTROConfigData?(TMap*)(fALTROConfigData->FindObject("RCUconfig")):0;}
+  Int_t GetRCUTriggerConfig() const;
+  Bool_t IsTrgL0();
+  Bool_t IsTrgL1();
+    
+  TObjArray*    GetIonTailArray()  const {return fIonTailArray;}
+    
   //Pulser data
   TObjArray*    GetPulserData()  const {return fPulserData;}
   AliTPCCalPad* GetPulserTmean() const {return fPulserData?static_cast<AliTPCCalPad*>(fPulserData->FindObject("PulserTmean")):0;}
@@ -81,18 +103,22 @@ class AliTPCcalibDB : public TObject
   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;}
+  TObjArray*    GetCEfitsDrift()const {return fCEData?static_cast<TObjArray*>(fCEData->FindObject("ceFitsDrift")):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;}
   static Float_t GetCEdriftTime(Int_t run, Int_t sector, Double_t timeStamp=-1., Int_t *entries=0);
   static Float_t GetCEchargeTime(Int_t run, Int_t sector, Double_t timeStamp=-1., Int_t *entries=0);
   //Raw calibration
   AliTPCCalibRaw* GetCalibRaw() const {return fCalibRaw;}
+
+  //QA object
+  AliTPCdataQA*   GetDataQA() const {return fDataQA;}
   //
-  AliTPCSensorTempArray* GetTemperature() {return fTemperature;}
-  AliTPCParam*  GetParameters(){return fParam;}
-  AliTPCAltroMapping ** GetMapping(){ return fMapping;}
-  AliTPCClusterParam *GetClusterParam(){ return fClusterParam;}
-  TObjArray *GetTimeGainSplines(){ return fTimeGainSplines;}  
+  AliTPCSensorTempArray* GetTemperature() const {return fTemperature;}
+  AliTPCParam*  GetParameters() const {return fParam;}
+  AliTPCAltroMapping ** GetMapping() const{ return fMapping;}
+  AliTPCClusterParam *GetClusterParam() const { return fClusterParam;}
+  TObjArray *GetTimeGainSplines() const { return fTimeGainSplines;}  
   //
   //GRP information
   static AliGRPObject * GetGRP(Int_t run);
@@ -106,13 +132,22 @@ class AliTPCcalibDB : public TObject
   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 GetChamberHighVoltage(Int_t run, Int_t sector, Int_t timeStamp=-1, Int_t sigDigits=0, Bool_t current=kFALSE);
   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);
+  //
+  Bool_t  GetChamberHVStatus(UInt_t roc)                  const { return (roc<72)?fChamberHVStatus[roc]:kFALSE;   }
+  Float_t GetChamberHighVoltageMedian(UInt_t roc)         const { return (roc<72)?fChamberHVmedian[roc]:0.;       }
+  Float_t GetChamberCurrentNominalHighVoltage(UInt_t roc) const { return (roc<72)?fCurrentNominalVoltage[roc]:0.; }
+  Float_t GetChamberGoodHighVoltageFraction(UInt_t roc)   const { return (roc<72)?fChamberHVgoodFraction[roc]:0.; }
+  AliDCSSensor* GetChamberHVSensor(UInt_t roc)            const { return (roc<72)?fHVsensors[roc]:0x0;            }
+  Bool_t  IsDataTakingActive(time_t timeStamp);
+  //
   //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);
@@ -124,10 +159,12 @@ class AliTPCcalibDB : public TObject
   AliDCSSensorArray *     GetGoofieSensors(Int_t run);
   AliDCSSensorArray *     GetVoltageSensors(Int_t run);
   AliTPCCalibVdrift *     GetVdrift(Int_t run);
-  TObjArray *                                                  GetTimeGainSplinesRun(Int_t run);
+  TObjArray *             GetTimeGainSplinesRun(Int_t run);
   TObjArray*              GetTimeVdriftSplineRun(Int_t run);
   static Float_t GetGain(Int_t sector, Int_t row, Int_t pad);
   //
+  // Drift velocity information
+  //
   Double_t      GetVDriftCorrectionTime(Int_t timeStamp, Int_t run, Int_t side, Int_t mode);
   Double_t      GetTime0CorrectionTime(Int_t timeStamp, Int_t run, Int_t side, Int_t mode);
   Double_t      GetVDriftCorrectionGy(Int_t timeStamp, Int_t run, Int_t side, Int_t mode);
@@ -140,16 +177,22 @@ class AliTPCcalibDB : public TObject
   static void RegisterExB(Int_t index, Float_t bz, Bool_t bdelete);
   //
   //
-
+  //
+  AliTPCCalPad* MakeDeadMap(Double_t notInMap=1, const char *nameMappingFile="$ALICE_ROOT/TPC/Calib/tpcMapping.root" );
   AliGRPObject * MakeGRPObjectFromMap(TMap *map);
+  AliCTPTimeParams* GetCTPTimeParams() const {return fCTPTimeParams;}
   //Create a tree suited for diplaying with the AliTPCCalibViewerGUI
+  Bool_t CreateGUITree(const char* filename="");
   static Bool_t CreateGUITree(Int_t run, const char* filename="");
   static Bool_t CreateRefFile(Int_t run, const char* filename="");
   //
 protected:
   
   AliCDBEntry* GetCDBEntry(const char* cdbPath);   
-  Long64_t        fRun;         // current run number
+  void         UpdateChamberHighVoltageData();
+  Int_t        InitDeadMap();
+
+  Int_t        fRun;         // current run number
   AliTPCTransform *fTransform;      // object responsible for spacial corrections
   AliTPCExB *fExB;              // ExB correction factor
 //  AliCDBStorage* fLocator;      // Storage locator retrieved from AliCDBManager
@@ -157,15 +200,32 @@ protected:
   // calibration parameters per pad
   //
   AliTPCCalPad* fPadGainFactor;   // Gain calibration entry
+  AliTPCCalPad* fActiveChannelMap; // Map of active channels calculated on the fly
   AliTPCCalPad* fDedxGainFactor;   // Gain calibration entry - for dEdx
   AliTPCCalPad* fPadTime0;        // Time0 calibration entry
+  TObjArray   *fDistortionMap;    // distortion map
+  AliTPCCorrection *fComposedCorrection;  // general space point corrections
+  TObjArray *      fComposedCorrectionArray; //space point corrections for different field setting
   AliTPCCalPad* fPadNoise;        // Noise calibration entry
   AliTPCCalPad* fPedestals;       // Pedestal calibration entry
   AliTPCCalibRaw *fCalibRaw;      // raw data calibration entry
+  AliTPCdataQA  *fDataQA;         // qa object
   TObjArray *fALTROConfigData;    // ALTRO configuration data
+  TObjArray * fIonTailArray;      // array of graphs with the ion tail 
   TObjArray *fPulserData;         // Calibration Pulser data
   TObjArray *fCEData;             // CE data
   //
+  // Chamber HV info
+  //
+  Bool_t  fChamberHVStatus[72];       // Status of the Chamber, HV wise (on/off)
+  Float_t fChamberHVmedian[72];       // median chamber high voltage
+  Float_t fCurrentNominalVoltage[72]; // current nominal voltages
+  Float_t fChamberHVgoodFraction[72]; // fraction of time the chamber has a good HV (wrt. robust median)
+  AliDCSSensor *fHVsensors[72];       // HV sensors
+  TGraph *fGrRunState;                // store information if run is active or paused
+  //
+  //
+  //
   AliTPCSensorTempArray* fTemperature; // Temperature calibration entry
   AliTPCAltroMapping **fMapping;   // Altro mapping   
   //
@@ -176,27 +236,31 @@ protected:
   //
   // 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
-  
+  TMap      fTimeGainSplinesArray; //! array Array of AliSplineFits: at 0 MIP position in time ; at 1 Fermi Plateau from cosmics
+  TMap      fGRPArray;                                                 //! array of GRPs  -  per run
+  TMap      fGRPMaps;                                                  //! array of GRPs maps  -  per run - old data  
+  TMap      fGoofieArray;                                      //! array of GOOFIE values -per run
+  TMap      fVoltageArray;                                     //! array of Chamber HV values -per run
+  TMap      fTemperatureArray;                 //! array of temperature sensors - per run
+  TMap      fVdriftArray;                                      //! array of v drift interfaces
+  TMap      fDriftCorrectionArray;                //! array of drift correction
 
   TArrayI        fRunList;                                                     //! run list - indicates try to get the run param
+  Bool_t         fBHasAlignmentOCDB;                // Flag - alignment from the Transformation class
   //
   static AliTPCcalibDB* fgInstance;  // singleton control
   static Bool_t       fgTerminated;  // termination control 
   static TObjArray    fgExBArray;    // array of ExB corrections
   AliTPCcalibDButil   *fDButil;       // utility class
-  ClassDef(AliTPCcalibDB, 0)
+  //ctp info
+  AliCTPTimeParams *fCTPTimeParams;   //CTP timing parameters
+  Int_t            fMode;             //RCU trigger config mode
+
  private:
    AliTPCcalibDB (const AliTPCcalibDB& );
    AliTPCcalibDB& operator= (const AliTPCcalibDB& );
+  
+   ClassDef(AliTPCcalibDB, 0)
 };
 
-
 #endif