]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCPreprocessorOffline.h
Fixing of coding violations
[u/mrichter/AliRoot.git] / TPC / AliTPCPreprocessorOffline.h
1 #ifndef ALITPCPREPROCESSOROFFLINE_H
2 #define ALITPCPREPROCESSOROFFLINE_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //
8 //
9 //    Class to create OCDB entries - processing the results of the OFFLINE calibration
10 //
11
12
13 #include "TNamed.h"
14 class TObjArray;
15 class AliTPCcalibTime;
16 class AliTPCcalibTimeGain;
17 class AliTPCROC;
18 class AliTPCParam;
19 class TPad;
20 class AliCDBRunRange;
21
22 class AliTPCPreprocessorOffline:public TNamed { 
23 public:
24   AliTPCPreprocessorOffline();
25   virtual ~AliTPCPreprocessorOffline();
26   void UpdateOCDBDrift(Int_t ustartRun, Int_t uendRun, const char* storagePath);
27   void UpdateOCDBGain(Int_t  startRunNumber, Int_t endRunNumber, const char* storagePath);
28   void UpdateDriftParam(AliTPCParam *param, TObjArray *const arr, Int_t startRun);
29
30   //
31   // v drift part
32   //
33   void GetRunRange(AliTPCcalibTime* const timeDrift);
34   void CalibTimeVdrift(const Char_t* file, Int_t ustartRun, Int_t uendRun,TString ocdbStorage="");
35   void AddHistoGraphs(  TObjArray * vdriftArray, AliTPCcalibTime * const timeDrift, Int_t minEntries);
36   void AddAlignmentGraphs(  TObjArray * vdriftArray, AliTPCcalibTime * const timeDrift);
37   void AddLaserGraphs(  TObjArray * vdriftArray, AliTPCcalibTime *timeDrift);
38   void SetDefaultGraphDrift(TGraph *graph, Int_t color, Int_t style);
39   void MakeDefaultPlots(TObjArray * const arr, TObjArray *picArray);
40   //
41   // Gain part
42   //
43   void CalibTimeGain(const Char_t* fileName, Int_t startRunNumber, Int_t endRunNumber,  TString  ocdbStorage);
44   void ReadGainGlobal(const Char_t* fileName="CalibObjectsTrain1.root");
45   void MakeQAPlot(Float_t  FPtoMIPratio);
46   Bool_t AnalyzeGain(Int_t startRunNumber, Int_t endRunNumber, Int_t minEntriesGaussFit = 500, Float_t FPtoMIPratio = 1.43); 
47   //
48   // QA drawing part
49   //
50   static void SetPadStyle(TPad *pad, Float_t mx0, Float_t mx1, Float_t my0, Float_t my1);
51   static void PrintArray(TObjArray *array);
52   //
53   // graph filtering part
54   //
55   static TGraphErrors* FilterGraphMedianAbs(TGraphErrors * graph, Float_t cut,Double_t &medianY);
56   static TGraphErrors* FilterGraphDrift(TGraphErrors * graph, Float_t errSigmaCut, Float_t medianCutAbs);
57   static TGraphErrors * MakeGraphFilter0(THnSparse *hisN, Int_t itime, Int_t ival, Int_t minEntries, Double_t offset=0);
58
59 private:
60   Int_t fMinEntries;                      // minimal number of entries for fit
61   Int_t startRun;                         // start Run - used to make fast selection in THnSparse
62   Int_t endRun;                           // end   Run - used to make fast selection in THnSparse
63   Int_t startTime;                        // startTime - used to make fast selection in THnSparse
64   Int_t endTime;                          // endTime   - used to make fast selection in THnSparse
65   TString  ocdbStorage;                   // path to the OCDB storage
66   TObjArray * fVdriftArray;               // array with output calibration graphs
67   AliTPCcalibTime * fTimeDrift;           // input data to construct calibration graphs
68   TGraphErrors * fGraphMIP;                // graph time dependence of MIP
69   TGraphErrors * fGraphCosmic;             // graph time dependence at Plateu
70   AliSplineFit * fFitMIP;                  // fit of dependence - MIP
71   AliSplineFit * fFitCosmic;               // fit of dependence - Plateu
72   TObjArray    * fGainArray;               // array to be stored in the OCDB
73   AliTPCcalibTimeGain * fGainMIP;          // calibration component for MIP
74   AliTPCcalibTimeGain * fGainCosmic;       // calibration component for cosmic
75
76 private:
77   AliTPCPreprocessorOffline& operator=(const AliTPCPreprocessorOffline&); // not implemented
78   AliTPCPreprocessorOffline(const AliTPCPreprocessorOffline&); // not implemented
79   ClassDef(AliTPCPreprocessorOffline,1)
80 };
81
82 #endif