]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TPC/AliTPCPreprocessorOffline.h
Impementation of the validation
[u/mrichter/AliRoot.git] / TPC / AliTPCPreprocessorOffline.h
... / ...
CommitLineData
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"
14class TObjArray;
15class AliTPCcalibTime;
16class AliTPCcalibTimeGain;
17class AliTPCROC;
18class AliTPCParam;
19class TPad;
20class AliCDBRunRange;
21
22class AliTPCPreprocessorOffline:public TNamed {
23public:
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 Bool_t ValidateTimeDrift(Double_t maxVDriftCorr=0.03);
41 //
42 // Gain part
43 //
44 void CalibTimeGain(const Char_t* fileName, Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage);
45 void ReadGainGlobal(const Char_t* fileName="CalibObjectsTrain1.root");
46 void MakeQAPlot(Float_t FPtoMIPratio);
47 Bool_t AnalyzeGain(Int_t startRunNumber, Int_t endRunNumber, Int_t minEntriesGaussFit = 500, Float_t FPtoMIPratio = 1.43);
48 Bool_t AnalyzeAttachment(Int_t startRunNumber, Int_t endRunNumber, Int_t minEntriesFit = 2000);
49 Bool_t ValidateTimeGain(Double_t minGain=2.0, Double_t maxGain = 3.0);
50 //
51 // QA drawing part
52 //
53 static void SetPadStyle(TPad *pad, Float_t mx0, Float_t mx1, Float_t my0, Float_t my1);
54 static void PrintArray(TObjArray *array);
55 //
56 // graph filtering part
57 //
58 static TGraphErrors* FilterGraphMedianAbs(TGraphErrors * graph, Float_t cut,Double_t &medianY);
59 static TGraphErrors* FilterGraphDrift(TGraphErrors * graph, Float_t errSigmaCut, Float_t medianCutAbs);
60 static TGraphErrors * MakeGraphFilter0(THnSparse *hisN, Int_t itime, Int_t ival, Int_t minEntries, Double_t offset=0);
61
62 //
63 void SwitchOnValidation(Bool_t val = kTRUE) {fSwitchOnValidation = val;}
64 Bool_t IsSwitchOnValidation() { return fSwitchOnValidation; }
65
66
67private:
68 Int_t fMinEntries; // minimal number of entries for fit
69 Int_t startRun; // start Run - used to make fast selection in THnSparse
70 Int_t endRun; // end Run - used to make fast selection in THnSparse
71 Int_t startTime; // startTime - used to make fast selection in THnSparse
72 Int_t endTime; // endTime - used to make fast selection in THnSparse
73 TString ocdbStorage; // path to the OCDB storage
74 TObjArray * fVdriftArray; // array with output calibration graphs
75 AliTPCcalibTime * fTimeDrift; // input data to construct calibration graphs
76 TGraphErrors * fGraphMIP; // graph time dependence of MIP
77 TGraphErrors * fGraphCosmic; // graph time dependence at Plateu
78 TGraphErrors * fGraphAttachmentMIP; // graph time dependence of attachment (signal vs. mean driftlength)
79 AliSplineFit * fFitMIP; // fit of dependence - MIP
80 AliSplineFit * fFitCosmic; // fit of dependence - Plateu
81 TObjArray * fGainArray; // array to be stored in the OCDB
82 AliTPCcalibTimeGain * fGainMIP; // calibration component for MIP
83 AliTPCcalibTimeGain * fGainCosmic; // calibration component for cosmic
84
85 Bool_t fSwitchOnValidation; // flag to switch on validation of OCDB parameters
86
87private:
88 AliTPCPreprocessorOffline& operator=(const AliTPCPreprocessorOffline&); // not implemented
89 AliTPCPreprocessorOffline(const AliTPCPreprocessorOffline&); // not implemented
90 ClassDef(AliTPCPreprocessorOffline,1)
91};
92
93#endif