]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliTPCPreprocessorOffline.h
Removing obsolete macros
[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
f12abd89 7//
da268e11 8//
9// Class to create OCDB entries - processing the results of the OFFLINE calibration
f12abd89 10//
11
da268e11 12
13#include "TNamed.h"
14class TObjArray;
15class AliTPCcalibTime;
16class AliTPCcalibTimeGain;
56b51ad9 17class AliTPCcalibGainMult;
da268e11 18class AliTPCROC;
f12abd89 19class AliTPCParam;
20class TPad;
21class AliCDBRunRange;
da268e11 22
f12abd89 23class AliTPCPreprocessorOffline:public TNamed {
da268e11 24public:
25 AliTPCPreprocessorOffline();
26 virtual ~AliTPCPreprocessorOffline();
da268e11 27 void UpdateOCDBDrift(Int_t ustartRun, Int_t uendRun, const char* storagePath);
28 void UpdateOCDBGain(Int_t startRunNumber, Int_t endRunNumber, const char* storagePath);
40120adc 29 void UpdateDriftParam(AliTPCParam *param, TObjArray *const arr, Int_t startRun);
da268e11 30
31 //
32 // v drift part
33 //
40120adc 34 void GetRunRange(AliTPCcalibTime* const timeDrift);
35 void CalibTimeVdrift(const Char_t* file, Int_t ustartRun, Int_t uendRun,TString ocdbStorage="");
36 void AddHistoGraphs( TObjArray * vdriftArray, AliTPCcalibTime * const timeDrift, Int_t minEntries);
37 void AddAlignmentGraphs( TObjArray * vdriftArray, AliTPCcalibTime * const timeDrift);
da268e11 38 void AddLaserGraphs( TObjArray * vdriftArray, AliTPCcalibTime *timeDrift);
39 void SetDefaultGraphDrift(TGraph *graph, Int_t color, Int_t style);
40120adc 40 void MakeDefaultPlots(TObjArray * const arr, TObjArray *picArray);
88b09aaa 41 void SetMaxVDriftCorr(Double_t maxVDriftCorr=0.03) {fMaxVdriftCorr=maxVDriftCorr;};
42 Bool_t ValidateTimeDrift();
da268e11 43 //
44 // Gain part
45 //
40120adc 46 void CalibTimeGain(const Char_t* fileName, Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage);
47 void ReadGainGlobal(const Char_t* fileName="CalibObjectsTrain1.root");
da268e11 48 void MakeQAPlot(Float_t FPtoMIPratio);
49 Bool_t AnalyzeGain(Int_t startRunNumber, Int_t endRunNumber, Int_t minEntriesGaussFit = 500, Float_t FPtoMIPratio = 1.43);
391ffdb2 50 Bool_t AnalyzeAttachment(Int_t startRunNumber, Int_t endRunNumber, Int_t minEntriesFit = 2000);
56b51ad9 51 Bool_t AnalyzePadRegionGain();
6d64657a 52 Bool_t AnalyzeGainMultiplicity();
7e3e1a9c 53 Bool_t AnalyzeGainChamberByChamber();
88b09aaa 54 void SetTimeGainRange(Double_t minGain=2.0, Double_t maxGain = 3.0)
55 {fMinGain = minGain; fMaxGain = maxGain;};
56 Bool_t ValidateTimeGain();
f3023796 57 //
58 // Alignment time part
59 //
60 void MakeChainTime();
61 void MakePrimitivesTime();
62 void CreateAlignTime(TString fstring, TVectorD paramC);
63 void MakeFitTime();
64 static Double_t EvalAt(Double_t phi, Double_t refX, Double_t theta, Int_t corr, Int_t ptype);
65
da268e11 66 //
67 // QA drawing part
68 //
69 static void SetPadStyle(TPad *pad, Float_t mx0, Float_t mx1, Float_t my0, Float_t my1);
70 static void PrintArray(TObjArray *array);
f3023796 71 TChain *GetAlignTree(){return fAlignTree;}
da268e11 72 //
73 // graph filtering part
74 //
75 static TGraphErrors* FilterGraphMedianAbs(TGraphErrors * graph, Float_t cut,Double_t &medianY);
76 static TGraphErrors* FilterGraphDrift(TGraphErrors * graph, Float_t errSigmaCut, Float_t medianCutAbs);
77 static TGraphErrors * MakeGraphFilter0(THnSparse *hisN, Int_t itime, Int_t ival, Int_t minEntries, Double_t offset=0);
78
68d461b2 79 //
80 void SwitchOnValidation(Bool_t val = kTRUE) {fSwitchOnValidation = val;}
81 Bool_t IsSwitchOnValidation() { return fSwitchOnValidation; }
82
83
40120adc 84private:
85 Int_t fMinEntries; // minimal number of entries for fit
da268e11 86 Int_t startRun; // start Run - used to make fast selection in THnSparse
87 Int_t endRun; // end Run - used to make fast selection in THnSparse
88 Int_t startTime; // startTime - used to make fast selection in THnSparse
89 Int_t endTime; // endTime - used to make fast selection in THnSparse
90 TString ocdbStorage; // path to the OCDB storage
40120adc 91 TObjArray * fVdriftArray; // array with output calibration graphs
92 AliTPCcalibTime * fTimeDrift; // input data to construct calibration graphs
da268e11 93 TGraphErrors * fGraphMIP; // graph time dependence of MIP
94 TGraphErrors * fGraphCosmic; // graph time dependence at Plateu
391ffdb2 95 TGraphErrors * fGraphAttachmentMIP; // graph time dependence of attachment (signal vs. mean driftlength)
da268e11 96 AliSplineFit * fFitMIP; // fit of dependence - MIP
97 AliSplineFit * fFitCosmic; // fit of dependence - Plateu
98 TObjArray * fGainArray; // array to be stored in the OCDB
99 AliTPCcalibTimeGain * fGainMIP; // calibration component for MIP
100 AliTPCcalibTimeGain * fGainCosmic; // calibration component for cosmic
56b51ad9 101 AliTPCcalibGainMult * fGainMult; // calibration component for pad region gain equalization and multiplicity dependence
f3023796 102
103 TChain *fAlignTree; //alignment tree
104 //
68d461b2 105 Bool_t fSwitchOnValidation; // flag to switch on validation of OCDB parameters
88b09aaa 106 Float_t fMinGain; // min gain
107 Float_t fMaxGain; // max gain
108 Float_t fMaxVdriftCorr; // max v-drift correction
da268e11 109
110private:
f12abd89 111 AliTPCPreprocessorOffline& operator=(const AliTPCPreprocessorOffline&); // not implemented
112 AliTPCPreprocessorOffline(const AliTPCPreprocessorOffline&); // not implemented
da268e11 113 ClassDef(AliTPCPreprocessorOffline,1)
114};
115
116#endif