1 #ifndef ALITPCCALIBDBUTIL_H
2 #define ALITPCCALIBDBUTIL_H
12 #include <TVectorDfwd.h>
13 #include <TVectorFfwd.h>
14 #include <TMatrixDfwd.h>
18 class AliDCSSensorArray;
26 class AliDCSSensorArray;
30 class TTreeSRedirector;
42 void ProcessCEdata(
const char* fitFormula, TVectorD &fitResultsA, TVectorD &fitResultsC,
43 Int_t &noutliersCE, Double_t &
chi2A, Double_t &chi2C,
AliTPCCalPad *
const outCE=0);
44 void ProcessCEgraphs(TVectorD &vecTEntries, TVectorD &vecTMean, TVectorD &vecTRMS, TVectorD &vecTMedian,
45 TVectorD &vecQEntries, TVectorD &vecQMean, TVectorD &vecQRMS, TVectorD &vecQMedian,
46 Float_t &driftTimeA, Float_t &driftTimeC );
48 TVectorD &vNoiseRMS, TVectorD &vNoiseRMSSenRegions,
49 Int_t &nonMaskedZero, Int_t &nNaN);
50 void ProcessQAData(TVectorD &vQaOcc, TVectorD &vQaQtot, TVectorD &vQaQmax);
53 void ProcessGoofie(TVectorD & vecEntries, TVectorD & vecMedian, TVectorD &vecMean, TVectorD &vecRMS);
58 void ProcessPulserVariations(TVectorF &pulserQdeviations, Float_t &varQMean, Int_t &npadsOutOneTB, Int_t &npadsOffAdd);
121 AliTPCCalPad *
CreatePadTime0CE(TVectorD &fitResultsA, TVectorD&fitResultsC, Int_t &nOut, Double_t &chi2A, Double_t &chi2C,
const char *dumpfile=0);
134 static Double_t
GetLaserTime0(Int_t run, Int_t timeStamp, Int_t deltaT, Int_t side);
139 static void Sort(TGraph *graph);
140 static void SmoothGraph(TGraph *graph, Double_t delta);
141 static Int_t
GetNearest(TGraph *graph, Double_t xref, Double_t &dx, Double_t &y);
142 static Double_t
EvalGraphConst(TGraph *
const graph, Double_t xref);
143 static Double_t
EvalGraphConst(AliSplineFit *graph, Double_t xref);
148 static Float_t
FilterSensor(AliDCSSensor * sensor, Double_t ymin, Double_t ymax, Double_t maxdy, Double_t
sigmaCut);
155 static void FilterCE(Double_t deltaT=100, Double_t cutAbs=10, Double_t cutSigma=4., TTreeSRedirector *
const pcstream=0);
156 static void FilterTracks(Int_t run, Double_t cutSigma=20., TTreeSRedirector *
const pcstream=0);
159 static void FilterGoofie(AliDCSSensorArray * goofieArray, Double_t deltaT=2, Double_t cutSigma=4., Double_t minVdn=8.5, Double_t maxVdn=9.05, TTreeSRedirector *
const pcstream=0);
160 static Double_t
GetTriggerOffsetTPC(Int_t run, Int_t timeStamp, Double_t deltaT=86400, Double_t deltaTLaser=3600, Int_t valType=0);
161 static Double_t
GetVDriftTPC(Double_t &dist, Int_t run, Int_t timeStamp, Double_t deltaT=86400, Double_t deltaTLaser=3600, Int_t valType=0);
162 static Double_t
GetVDriftTPCLaserTracks(Double_t &dist,Int_t run, Int_t timeStamp, Double_t deltaT=43200, Int_t side=2);
164 static Double_t
GetVDriftTPCCE(Double_t &dist, Int_t run, Int_t timeStamp, Double_t deltaT=43200, Int_t side=2);
165 static Double_t
GetVDriftTPCITS(Double_t &dist, Int_t run, Int_t timeStamp);
166 static Double_t
GetTime0TPCITS(Double_t &dist, Int_t run, Int_t timeStamp);
AliTPCCalPad * GetRefCETrms() const
static Double_t EvalGraphConst(TGraph *const graph, Double_t xref)
AliTPCCalPad * fCETmean
central electrode mean time information
TMap * fCurrentRefMap
reference data map of entries currently loaded
AliTPCCalPad * fRefPulserTrms
Reference pulser rms time information.
Float_t fCETmaxLimitAbs
maximum variation in CE data before pads will be treated as outliers
AliTPCCalPad * fRefCETrms
Reference central electrode rms time information.
AliTPCCalPad * fRefPadNoise
Reference noise information.
void ProcessGoofie(TVectorD &vecEntries, TVectorD &vecMedian, TVectorD &vecMean, TVectorD &vecRMS)
AliTPCCalPad * GetRefALTROMasked() const
AliTPCCalPad * GetPulserOutlierMap() const
AliTPCCalPad * fRefALTROAcqStop
Reference accquistion stop time bin.
static TTree * ConnectCalPadTrees(TString baseDir, TString pattern, TTree *tMain, Bool_t checkAliases)
AliTPCCalPad * GetRefCETmean() const
AliTPCCalPad * fRefPedestalMasked
Reference masked channels in pedestal run.
AliTPCCalPad * fRefPedestals
Reference pedestal information.
AliTPCCalPad * CreatePulserOutlyerMap(Int_t &noutliersPulser, AliTPCCalPad *const pulserOut=0, Float_t cutTime=3, Float_t cutnRMSQ=5, Float_t cutnRMSrms=5)
Float_t GetMeanAltro(const AliTPCCalROC *roc, const Int_t row, const Int_t pad, AliTPCCalROC *const rocOut=0x0)
static Int_t GetNearest(TGraph *graph, Double_t xref, Double_t &dx, Double_t &y)
Float_t fPulQmaxLimitAbs
maximum variation of Pulser Signals (charge) before pads will be treated as outliers ...
TArrayI fRunsStart
start time for given run
static Double_t GetVDriftTPC(Double_t &dist, Int_t run, Int_t timeStamp, Double_t deltaT=86400, Double_t deltaTLaser=3600, Int_t valType=0)
static void FilterGoofie(AliDCSSensorArray *goofieArray, Double_t deltaT=2, Double_t cutSigma=4., Double_t minVdn=8.5, Double_t maxVdn=9.05, TTreeSRedirector *const pcstream=0)
AliTPCCalPad * GetAltroMasked(const char *cdbPath, const char *name)
Bool_t CreateGUIRefTree(const char *filename="")
Class providing the calibration parameters by accessing the CDB.
virtual ~AliTPCcalibDButil()
AliTPCmapper * fMapper
TPC mapping handler.
void ProcessQAData(TVectorD &vQaOcc, TVectorD &vQaQtot, TVectorD &vQaQmax)
static void FilterTracks(Int_t run, Double_t cutSigma=20., TTreeSRedirector *const pcstream=0)
Int_t GetReferenceRun(const char *type) const
Float_t fIrocTimeOffset
timing offset between IROC and OROC in timebins
static TObjArray * SmoothRelKalman(TObjArray *const array, const TMatrixD *statP, Bool_t direction, Float_t sigmaCut)
AliTPCCalPad * fRefPulserTmean
Reference pulser mean time information.
AliTPCdataQA * fRefDataQA
Reference data QA.
AliTPCCalPad * GetRefPulserQmean() const
void SetRefNoisePedestal(AliTPCCalPad *const noise, AliTPCCalPad *const pedestal=0x0)
void SetPulserData(AliTPCCalPad *const tmean, AliTPCCalPad *const trms=0x0, AliTPCCalPad *const qmean=0x0)
Int_t GetNPulserOutliers() const
static TGraphErrors * FilterGraphMedianErr(TGraphErrors *graph, Float_t sigmaCut, Double_t &medianY)
AliTPCCalPad * GetRefALTROZsThr() const
static Float_t FilterSensor(AliDCSSensor *sensor, Double_t ymin, Double_t ymax, Double_t maxdy, Double_t sigmaCut)
TTreeSRedirector * pcstream
TMap * GetReferenceMap() const
AliTPCCalPad * GetRefPadNoise() const
static Double_t GetVDriftTPCCE(Double_t &dist, Int_t run, Int_t timeStamp, Double_t deltaT=43200, Int_t side=2)
AliTPCCalPad * fRefCETmean
Reference central electrode mean time information.
static void FilterCE(Double_t deltaT=100, Double_t cutAbs=10, Double_t cutSigma=4., TTreeSRedirector *const pcstream=0)
void UpdateRefDataFromOCDB()
TString fRefValidity
validity range of reference data
AliTPCCalPad * GetRefCEMasked() const
Float_t fPulQminLimit
minimum charge value for Pulser Signals before pads will be treated as outliers
void SetGoofieArray(AliDCSSensorArray *const arr)
AliTPCCalPad * GetRefPulserOutlier() const
AliTPCCalPad * fRefALTROMasked
Reference ALTRO masked channels information.
AliTPCCalPad * GetRefPulserTrms() const
static Double_t GetTime0TPCITS(Double_t &dist, Int_t run, Int_t timeStamp)
Class providing the calculation of derived quantities (mean,rms,fits,...) of calibration entries...
void ProcessNoiseVariations(TVectorF &noiseDeviations)
AliTPCCalPad * CreatePadTime0(Int_t model, Double_t &gyA, Double_t &gyC, Double_t &chi2A, Double_t &chi2C)
static TMatrixD * MakeStatRelKalman(TObjArray *const array, Float_t minFraction, Int_t minStat, Float_t maxvd)
AliTPCCalPad * fPedestals
pedestal information
Int_t fNpulserOutliers
number of outliers from Pulser calibration
AliDCSSensorArray * fGoofieArray
Goofie Data.
TArrayI fRuns
run list with OCDB info
AliTPCCalPad * fPulserOutlier
pulser outlier map
static TGraph * FilterGraphMedian(TGraph *const graph, Float_t sigmaCut, Double_t &medianY)
void ProcessPulser(TVectorD &vMeanTime)
static Float_t FilterTemperature(AliTPCSensorTempArray *tempArray, Double_t ymin=15, Double_t ymax=22, Double_t sigmaCut=5)
AliTPCCalPad * GetRefCalPad(AliCDBEntry *entry, const char *objName)
AliTPCCalPad * fRefALTROFPED
Reference fixed pedestal value.
AliTPCCalPad * fPulserQmean
pulser mean q information
const char * GetRefValidity() const
TArrayI fRunsStop
stop time for given run
Bool_t HasRefChanged(const char *cdbPath)
AliTPCCalPad * GetRefALTROAcqStart() const
void ProcessNoiseData(TVectorD &vNoiseMean, TVectorD &vNoiseMeanSenRegions, TVectorD &vNoiseRMS, TVectorD &vNoiseRMSSenRegions, Int_t &nonMaskedZero, Int_t &nNaN)
AliTPCCalPad * fPadNoise
noise information
void PulserOutlierMap(AliTPCCalPad *pulOut, const AliTPCCalPad *pulT, const AliTPCCalPad *pulQ)
AliTPCCalPad * fRefPulserOutlier
Reference pulser outlier map.
AliTPCCalPad * fRefCEQmean
Reference central electrode mean q information.
void ProcessPedestalVariations(TVectorF &pedestalDeviations)
void SetALTROData(AliTPCCalPad *const masked)
AliTPCCalPad * GetRefPulserMasked() const
AliTPCCalibRaw * fRefCalibRaw
Reference raw calibration object.
AliTPCCalPad * fCETrms
central electrode rms time information
AliTPCCalibRaw * fCalibRaw
raw calibration object
void ProcessALTROConfig(Int_t &nMasked)
AliTPCCalPad * fPulserTmean
pulser mean time information
TPC calibration base class for one ROC.
AliTPCCalPad * fRefALTROZsThr
Reference zero suppression threshol.
static void Sort(TGraph *graph)
static TGraph * FilterGraphMedianAbs(TGraph *graph, Float_t cut, Double_t &medianY)
Int_t GetCurrentReferenceRun(const char *type) const
AliTPCCalPad * GetRefCEQmean() const
const char * GetGUIRefTreeDefaultName()
void UpdateRefPulserOutlierMap()
AliTPCCalPad * fRefALTROAcqStart
Reference accquistion start time bin.
void SetCEData(AliTPCCalPad *const tmean, AliTPCCalPad *const trms=0x0, AliTPCCalPad *const qmean=0x0)
AliTPCCalPad * GetRefALTROFPED() const
void SetRefALTROData(AliTPCCalPad *const masked)
AliTPCCalPad * fRefPulserQmean
Reference pulser mean q information.
static Double_t GetVDriftTPCLaserTracksCommon(Double_t &dist, Int_t timeStamp, Double_t deltaT, Int_t side, TObjArray *const array)
static TTree * ConnectGainTrees(TString baseDir)
void SetReferenceRun(Int_t run=-1)
void ProcessPulserVariations(TVectorF &pulserQdeviations, Float_t &varQMean, Int_t &npadsOutOneTB, Int_t &npadsOffAdd)
TPC calibration class for parameters which saved per pad.
static void SmoothGraph(TGraph *graph, Double_t delta)
AliTPCCalPad * GetRefPedestalMasked() const
void SetRefFile(const char *filename)
static Double_t GetVDriftTPCITS(Double_t &dist, Int_t run, Int_t timeStamp)
AliCDBEntry * GetRefEntry(const char *cdbPath)
static Double_t GetVDriftTPCLaserTracks(Double_t &dist, Int_t run, Int_t timeStamp, Double_t deltaT=43200, Int_t side=2)
AliTPCCalPad * CreateCEOutlyerMap(Int_t &noutliersCE, AliTPCCalPad *const ceOut=0, Float_t minSignal=10, Float_t cutTrmsMin=0.9, Float_t cutTrmsMax=1.2, Float_t cutMaxDistT=0.7)
AliTPCCalPad * GetRefALTROAcqStop() const
Int_t MakeRunList(Int_t startRun, Int_t stopRun)
void SetRefPulserData(AliTPCCalPad *const tmean, AliTPCCalPad *const trms=0x0, AliTPCCalPad *const qmean=0x0)
AliTPCcalibDButil & operator=(const AliTPCcalibDButil &)
TMap * fRefMap
latest map to reference information
static Double_t GetLaserTime0(Int_t run, Int_t timeStamp, Int_t deltaT, Int_t side)
void SetNoisePedestal(AliTPCCalPad *const noise, AliTPCCalPad *const pedestal=0x0)
static TTree * ConnectPulserTrees(TString baseDir, TTree *tree=0)
AliTPCCalPad * fCEQmean
central electrode mean q information
AliTPCCalPad * fRefCEMasked
Reference masked channels in laser run.
AliTPCCalPad * GetRefPulserTmean() const
AliTPCCalPad * fPulserTrms
pulser rms time information
void SetRefCEData(AliTPCCalPad *const tmean, AliTPCCalPad *const trms=0x0, AliTPCCalPad *const qmean=0x0)
AliTPCCalPad * CreatePadTime0CE(TVectorD &fitResultsA, TVectorD &fitResultsC, Int_t &nOut, Double_t &chi2A, Double_t &chi2C, const char *dumpfile=0)
void UpdatePulserOutlierMap()
static TTree * ConnectDistortionTrees(TString baseDir, TString selection, TTree *tMain)
AliTPCCalPad * GetRefPedestals() const
AliTPCdataQA * fDataQA
data qa
void ProcessCEdata(const char *fitFormula, TVectorD &fitResultsA, TVectorD &fitResultsC, Int_t &noutliersCE, Double_t &chi2A, Double_t &chi2C, AliTPCCalPad *const outCE=0)
AliTPCCalPad * fRefPulserMasked
Reference masked channels in pulser run.
AliTPCcalibDB * fCalibDB
pointer to calibDB object
void ProcessCEgraphs(TVectorD &vecTEntries, TVectorD &vecTMean, TVectorD &vecTRMS, TVectorD &vecTMedian, TVectorD &vecQEntries, TVectorD &vecQMean, TVectorD &vecQRMS, TVectorD &vecQMedian, Float_t &driftTimeA, Float_t &driftTimeC)
Float_t fPulTmaxLimitAbs
maximum variation of Pulser Signals (time) before pads will be treated as outliers ...
Int_t FindRunTPC(Int_t itime, Bool_t debug=kFALSE)
Implementation of the TPC Raw drift velocity and Altro L1 Phase calibration.
static Double_t GetVDriftTPCLaserTracksOnline(Double_t &dist, Int_t, Int_t timeStamp, Double_t deltaT=43200, Int_t side=2)
static Double_t GetTriggerOffsetTPC(Int_t run, Int_t timeStamp, Double_t deltaT=86400, Double_t deltaTLaser=3600, Int_t valType=0)
AliTPCCalPad * fALTROMasked
ALTRO masked channels information.