+ void UpdateRefPulserOutlierMap();
+ void PulserOutlierMap(AliTPCCalPad *pulOut, const AliTPCCalPad *pulT, const AliTPCCalPad *pulQ);
+
+ const char* GetGUIRefTreeDefaultName();
+
+ Bool_t CreateGUIRefTree(const char* filename="");
+ //
+ // graph tools
+ //
+ static Double_t GetLaserTime0(Int_t run, Int_t timeStamp, Int_t deltaT, Int_t side);
+ static TGraph* FilterGraphMedian(TGraph * graph, Float_t sigmaCut, Double_t &medianY);
+ static TGraph* FilterGraphMedianAbs(TGraph * graph, Float_t cut, Double_t &medianY);
+ static TGraphErrors* FilterGraphMedianErr(TGraphErrors * graph, Float_t sigmaCut,Double_t &medianY);
+ //
+ static void Sort(TGraph *graph);
+ static void SmoothGraph(TGraph *graph, Double_t delta);
+ static Int_t GetNearest(TGraph *graph, Double_t xref, Double_t &dx, Double_t &y);
+ static Double_t EvalGraphConst(TGraph *graph, Double_t xref);
+ //
+ // Filter sensors
+ //
+ static Float_t FilterSensor(AliDCSSensor * sensor, Double_t ymin, Double_t ymax, Double_t maxdy, Double_t sigmaCut);
+ //
+ // Filter AliRelAlignmentKalman - Alignment/Drift velocity
+ //
+ static TMatrixD* MakeStatRelKalman(TObjArray *array, Float_t minFraction, Int_t minStat, Float_t maxvd);
+ static TObjArray *SmoothRelKalman(TObjArray *array,TMatrixD & stat, Bool_t direction, Float_t sigmaCut);
+ static TObjArray *SmoothRelKalman(TObjArray *arrayP, TObjArray *arrayM);
+ static void FilterCE(Double_t deltaT=100, Double_t cutAbs=10, Double_t cutSigma=4., TTreeSRedirector *pcstream=0);
+ static void FilterTracks(Int_t run, Double_t cutSigma=20., TTreeSRedirector *pcstream=0);
+ static Float_t FilterTemperature(AliTPCSensorTempArray *tempArray, Double_t ymin=15, Double_t ymax=22, Double_t sigmaCut=5);
+
+ static void FilterGoofie(AliDCSSensorArray * goofieArray, Double_t deltaT=2, Double_t cutSigma=4., Double_t minVdn=8.5, Double_t maxVdn=9.05, TTreeSRedirector *pcstream=0);
+ static Double_t GetTriggerOffsetTPC(Int_t run, Int_t timeStamp, Double_t deltaT=86400, Double_t deltaTLaser=3600, Int_t valType=0);
+ 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 Double_t GetVDriftTPCLaserTracks(Double_t &dist,Int_t run, Int_t timeStamp, Double_t deltaT=43200, Int_t side=2);
+ static Double_t GetVDriftTPCCE(Double_t &dist, Int_t run, Int_t timeStamp, Double_t deltaT=43200, Int_t side=2);
+ static Double_t GetVDriftTPCITS(Double_t &dist, Int_t run, Int_t timeStamp);
+ static Double_t GetTime0TPCITS(Double_t &dist, Int_t run, Int_t timeStamp);
+ Int_t MakeRunList(Int_t startRun, Int_t stopRun); // find the list of usable runs
+ Int_t FindRunTPC(Int_t itime, Bool_t debug=kFALSE);