X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliTPCcalibDB.h;h=af776f1bc34772d45c426f6e091da051005621a5;hb=8847ede185f01ffbc6e850dbd89e4dba493a96e0;hp=ec7c33675153799a695a40576f1c258d1ab56810;hpb=3af3fbc4efb92d716646763b5bd61a15958b6ea5;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliTPCcalibDB.h b/TPC/AliTPCcalibDB.h index ec7c3367515..af776f1bc34 100644 --- a/TPC/AliTPCcalibDB.h +++ b/TPC/AliTPCcalibDB.h @@ -16,8 +16,11 @@ class AliTPCExB; #include "TObjArray.h" #include "TArrayI.h" #include "TVectorD.h" +#include "TGraph.h" +#include "AliTPCCalPad.h" +#include "TString.h" +#include "AliSplineFit.h" -class AliTPCCalPad; class AliTPCSensorTempArray; class AliDCSSensorArray; class AliCDBEntry; @@ -28,7 +31,13 @@ class AliDCSSensor; class AliDCSSensorArray; class AliTPCCalibVdrift; class AliGRPObject; +class AliTPCCalibRaw; +class AliTPCdataQA; class TMap; +class AliMagF; +class AliTPCcalibDButil; +class AliCTPTimeParams; +class AliTPCCorrection; //class AliCDBStorage; class AliTPCcalibDB : public TObject @@ -39,28 +48,90 @@ 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); + void UpdateNonRec(); // - AliTPCTransform* GetTransform() {return fTransform;} - AliTPCExB* GetExB() {return fExB;} + Long64_t GetRun() const {return fRun;} + // + // + // + 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;} - AliTPCSensorTempArray* GetTemperature() {return fTemperature;} - AliTPCParam* GetParameters(){return fParam;} - AliTPCAltroMapping ** GetMapping(){ return fMapping;} - AliTPCClusterParam *GetClusterParam(){ return fClusterParam;} - TObjArray *GetTimeGainSplines(){ return fTimeGainSplines;} + AliTPCCalPad* GetPadGainFactor() const {return fPadGainFactor;} + AliTPCCalPad* GetDedxGainFactor() const {return fDedxGainFactor;} + AliTPCCalPad* GetPadTime0() const {return fPadTime0;} + AliTPCCalPad* GetDistortionMap(Int_t i) const; + AliTPCCorrection * GetTPCComposedCorrection() const { return fComposedCorrection;} + void SetTPCComposedCorrection(AliTPCCorrection *compCorr) { fComposedCorrection=compCorr;} + AliTPCCorrection * GetTPCComposedCorrection(Float_t field) const; + + 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(fALTROConfigData->FindObject("AcqStart")):0;} + AliTPCCalPad* GetALTROZsThr() const {return fALTROConfigData?static_cast(fALTROConfigData->FindObject("ZsThr")):0;} + AliTPCCalPad* GetALTROFPED() const {return fALTROConfigData?static_cast(fALTROConfigData->FindObject("FPED")):0;} + AliTPCCalPad* GetALTROAcqStop() const {return fALTROConfigData?static_cast(fALTROConfigData->FindObject("AcqStop")):0;} + AliTPCCalPad* GetALTROMasked() const {return fALTROConfigData?static_cast(fALTROConfigData->FindObject("Masked")):0;} + TMap* GetRCUconfig() const {return fALTROConfigData?(TMap*)(fALTROConfigData->FindObject("RCUconfig")):0;} + Int_t GetRCUTriggerConfig() const; + Bool_t IsTrgL0(); + Bool_t IsTrgL1(); + + + //Pulser data + TObjArray* GetPulserData() const {return fPulserData;} + AliTPCCalPad* GetPulserTmean() const {return fPulserData?static_cast(fPulserData->FindObject("PulserTmean")):0;} + AliTPCCalPad* GetPulserTrms() const {return fPulserData?static_cast(fPulserData->FindObject("PulserTrms")):0;} + AliTPCCalPad* GetPulserQmean() const {return fPulserData?static_cast(fPulserData->FindObject("PulserQmean")):0;} + //CE data + TObjArray* GetCEData() const {return fCEData;} + AliTPCCalPad* GetCETmean() const {return fCEData?static_cast(fCEData->FindObject("CETmean")):0;} + AliTPCCalPad* GetCETrms() const {return fCEData?static_cast(fCEData->FindObject("CETrms")):0;} + AliTPCCalPad* GetCEQmean() const {return fCEData?static_cast(fCEData->FindObject("CEQmean")):0;} + TObjArray* GetCErocTtime() const {return fCEData?static_cast(fCEData->FindObject("rocTtime")):0;} + TObjArray* GetCErocQtime() const {return fCEData?static_cast(fCEData->FindObject("rocQtime")):0;} + TGraph* GetCErocTgraph(const Int_t roc)const {return GetCErocTtime()?static_cast(GetCErocTtime()->At(roc)):0;} + TGraph* GetCErocQgraph(const Int_t roc)const {return GetCErocQtime()?static_cast(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() 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); static TMap * GetGRPMap(Int_t run); static Float_t GetPressure(Int_t timeStamp, Int_t run, Int_t type=0); - static Float_t GetChamberHighVoltage(Int_t timeStamp, Int_t run, Int_t sector); + 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); @@ -70,23 +141,34 @@ 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* GetTimeVdriftSplineRun(Int_t run); static Float_t GetGain(Int_t sector, Int_t row, Int_t pad); // + 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); + // + AliSplineFit* GetVdriftSplineFit(const char* name, Int_t run); + AliSplineFit* CreateVdriftSplineFit(const char* graphName, Int_t run); + // 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); - + + 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: - void Update(); //update entries AliCDBEntry* GetCDBEntry(const char* cdbPath); - void GetRunInformations(Int_t run); // JUST FOR CALIBRATION STUDIES Long64_t fRun; // current run number AliTPCTransform *fTransform; // object responsible for spacial corrections AliTPCExB *fExB; // ExB correction factor @@ -97,8 +179,20 @@ protected: AliTPCCalPad* fPadGainFactor; // Gain calibration entry 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 *fPulserData; // Calibration Pulser data + TObjArray *fCEData; // CE data + // + // + // + // AliTPCSensorTempArray* fTemperature; // Temperature calibration entry AliTPCAltroMapping **fMapping; // Altro mapping // @@ -109,17 +203,24 @@ protected: // // Get the corssrun information // - 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 - TArrayI fRunList; //! run list - indicates try to get the run param + 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 + AliTPCcalibDButil *fDButil; // utility class + //ctp info + AliCTPTimeParams *fCTPTimeParams; //CTP timing parameters + ClassDef(AliTPCcalibDB, 0) private: AliTPCcalibDB (const AliTPCcalibDB& );