]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliTPCPreprocessorOffline.h
Write AliHLTGlobalTriggerDecision with splitlevel -1, needed to get custom streamer...
[u/mrichter/AliRoot.git] / TPC / AliTPCPreprocessorOffline.h
CommitLineData
da268e11 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#include "TNamed.h"
12class TObjArray;
13class AliTPCcalibTime;
14class AliTPCcalibTimeGain;
15class AliTPCROC;
16
17class AliTPCPreprocessorOffline:public TNamed {
18public:
19 AliTPCPreprocessorOffline();
20 virtual ~AliTPCPreprocessorOffline();
21 void MakeAll(){;}
22 void UpdateOCDBDrift(Int_t ustartRun, Int_t uendRun, const char* storagePath);
23 void UpdateOCDBGain(Int_t startRunNumber, Int_t endRunNumber, const char* storagePath);
24 void UpdateDriftParam(AliTPCParam *param, TObjArray *arr, Int_t startRun);
25
26 //
27 // v drift part
28 //
29 void GetRunRange(AliTPCcalibTime* timeDrift);
30 void CalibTimeVdrift(Char_t* file="CalibObjectsTrain1.root", Int_t ustartRun=0, Int_t uendRun=AliCDBRunRange::Infinity(),TString ocdbStorage="");
31 void AddHistoGraphs( TObjArray * vdriftArray, AliTPCcalibTime *timeDrift, Int_t minEntries);
32 void AddAlignmentGraphs( TObjArray * vdriftArray, AliTPCcalibTime *timeDrift);
33 void AddLaserGraphs( TObjArray * vdriftArray, AliTPCcalibTime *timeDrift);
34 void SetDefaultGraphDrift(TGraph *graph, Int_t color, Int_t style);
35 void MakeDefaultPlots(TObjArray * arr, TObjArray *picArray);
36 //
37 // Gain part
38 //
39 void CalibTimeGain(Char_t* fileName, Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage);
40 void ReadGainGlobal(Char_t* fileName="CalibObjectsTrain1.root");
41 void MakeQAPlot(Float_t FPtoMIPratio);
42 Bool_t AnalyzeGain(Int_t startRunNumber, Int_t endRunNumber, Int_t minEntriesGaussFit = 500, Float_t FPtoMIPratio = 1.43);
43 //
44 // QA drawing part
45 //
46 static void SetPadStyle(TPad *pad, Float_t mx0, Float_t mx1, Float_t my0, Float_t my1);
47 static void PrintArray(TObjArray *array);
48 //
49 // graph filtering part
50 //
51 static TGraphErrors* FilterGraphMedianAbs(TGraphErrors * graph, Float_t cut,Double_t &medianY);
52 static TGraphErrors* FilterGraphDrift(TGraphErrors * graph, Float_t errSigmaCut, Float_t medianCutAbs);
53 static TGraphErrors * MakeGraphFilter0(THnSparse *hisN, Int_t itime, Int_t ival, Int_t minEntries, Double_t offset=0);
54
55public:
56 Int_t kMinEntries; // minimal number of entries for fit
57 Int_t startRun; // start Run - used to make fast selection in THnSparse
58 Int_t endRun; // end Run - used to make fast selection in THnSparse
59 Int_t startTime; // startTime - used to make fast selection in THnSparse
60 Int_t endTime; // endTime - used to make fast selection in THnSparse
61 TString ocdbStorage; // path to the OCDB storage
62 TObjArray * fVdriftArray;
63 AliTPCcalibTime * fTimeDrift;
64 TGraphErrors * fGraphMIP; // graph time dependence of MIP
65 TGraphErrors * fGraphCosmic; // graph time dependence at Plateu
66 AliSplineFit * fFitMIP; // fit of dependence - MIP
67 AliSplineFit * fFitCosmic; // fit of dependence - Plateu
68 TObjArray * fGainArray; // array to be stored in the OCDB
69 AliTPCcalibTimeGain * fGainMIP; // calibration component for MIP
70 AliTPCcalibTimeGain * fGainCosmic; // calibration component for cosmic
71
72private:
73 AliTPCPreprocessorOffline& operator=(const AliTPCPreprocessorOffline&){;} // not implemented
74 ClassDef(AliTPCPreprocessorOffline,1)
75};
76
77#endif