]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/Attic/AliTPCCalibTCF.h
7853cd6e2cb4a03d1583cd42c7b7522e67fe07b4
[u/mrichter/AliRoot.git] / TPC / Attic / AliTPCCalibTCF.h
1 #ifndef ALI_TPC_CALIB_TCF_H
2 #define ALI_TPC_CALIB_TCF_H
3
4
5 /* Copyright(c) 2007-08, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice                             */
7
8 ///////////////////////////////////////////////////////////////////////////////
9 //                        Class AliTPCCalibTCF                               //
10 // Class for Extraction and test of TCF parameters needed by the ALTRO chip  //
11 ///////////////////////////////////////////////////////////////////////////////
12
13 #include "TSystem.h"
14 #include <exception>
15
16
17 class TObject;
18 class TGraph;
19 class AliRawReader;
20 class AliTPCRawStreamV3;
21 class TNtuple;
22 class TH1F;
23 class TH2F;
24
25 class AliTPCCalibTCF : public TNamed {
26
27 public:
28
29   AliTPCCalibTCF();
30   AliTPCCalibTCF(Int_t gateWidth, Int_t Sample, Int_t pulseLength, Int_t lowPulseLim, Int_t upPulseLim, Double_t rmsLim, Double_t ratioIntLim);
31   AliTPCCalibTCF(const AliTPCCalibTCF &sig);
32   virtual ~AliTPCCalibTCF();
33   
34   AliTPCCalibTCF& operator = (const  AliTPCCalibTCF &source);
35
36  
37   void ProcessRawFileV3(const char *nameRawFile, const char *nameFileOut);
38   void ProcessRawEventV3(AliRawReader *rawReader,AliTPCRawStreamV3 *rawStream, const char *nameFileOut);
39
40   void MergeHistoPerSector(const char *nameFileIn);
41
42   void AnalyzeRootFile(const char *nameFileIn, Int_t minNumPulse=1, Int_t histStart=1, Int_t histEnd=1000000);
43   Int_t AnalyzePulse(TH1F * const hisIn, Double_t *coefZ, Double_t *coefP); 
44
45   void TestTCFonRootFile(const char *nameFileIn, const char *nameFileTCF, Int_t nPulseMin=0, Int_t plotFlag=0, Int_t lowKey=1, Int_t upKey=1000000);
46   void TestTCFonRawFile(const char *nameRawFile, const char *nameFileOut, const char *nameFileTCF, Int_t nPulseMin=0, Int_t plotFlag=0, bool bUseHLTOUT=false);
47
48   Int_t DumpTCFparamToFilePerSector(const char *nameFileTCFPerSec, const char *nameMappingFile="$ALICE_ROOT/TPC/Calib/tpcMapping.root");  
49   Int_t DumpTCFparamToFilePerPad(const char *nameFileTCFPerPad,const char *nameFileTCFPerSec, const char *nameMappingFile="$ALICE_ROOT/TPC/Calib/tpcMapping.root");  
50  
51   TH2F *PlotOccupSummary2Dhist(const char *nameFileIn, Int_t side=0);
52   void PlotOccupSummary(const char *nameFile, Int_t side=0, Int_t nPulseMin=0); 
53
54   void PlotQualitySummary(const char *nameFileQuality, const char *plotSpec="widthRed:maxUndershot", const char *cut="maxUndershot<0.1&&maxUndershot>-40&&widthRed>0&&widthRed<100", const char *pOpt="LEGO2Z");
55
56   void PrintPulseThresholds();
57
58   void MergeHistoPerFile(const char *fileNameIn, const char *fileSum, Int_t mode=0);
59   void MergeToOneFile(const char *nameFileSum);
60
61 private:
62   
63   // tresholds for proper pulse finder (Analyze functions)
64   Int_t fGateWidth;     // expected Gate fluctuation length
65   Int_t fSample;        // expected usefull signal length
66   Int_t fPulseLength;   // needed pulselength for TC characterisation
67   Int_t fLowPulseLim;   // lower pulse height limit
68   Int_t fUpPulseLim;    // upper pulse height limit
69   Double_t fRMSLim;     // signal RMS limit
70   Double_t fRatioIntLim;// ratio of signal-integral/pulse-integral limit
71
72   Int_t FitPulse(TNtuple *dataTuple, Double_t *coefZ, Double_t *coefP);
73   static void FitFcn(Int_t &nPar, Double_t *grad, Double_t &f, Double_t * const par, Int_t iflag);
74
75   Double_t* ExtractPZValues(Double_t *param);
76   Int_t Equalization(TNtuple *dataTuple, Double_t *coefZ, Double_t *coefP);
77
78   Int_t FindCorTCFparam(TH1F * const hisIn, const char *nameFileTCF, Double_t *coefZ, Double_t *coefP);
79   Double_t *GetQualityOfTCF(TH1F *hisIn, Double_t *coefZ, Double_t *coefP,Int_t plotFlag=0); 
80
81   TNtuple *ApplyTCFilter(TH1F * const hisIn, Double_t * const coefZ, Double_t * const coefP, Int_t plotFlag=0);
82
83   ClassDef(AliTPCCalibTCF,1);
84
85 };
86 #endif