]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/Base/AliTPCCalibPedestal.h
o adjust limits for Dz calculation close to the CE to not cross the CE
[u/mrichter/AliRoot.git] / TPC / Base / AliTPCCalibPedestal.h
1 #ifndef ALITPCCALIBPEDESTAL_H
2 #define ALITPCCALIBPEDESTAL_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /////////////////////////////////////////////////////////////////////////////////////////
7 //                                                                                     //
8 //                  Implementation of the TPC pedestal calibration                     //
9 //                                                                                     //
10 /////////////////////////////////////////////////////////////////////////////////////////
11
12 #include <TObjArray.h>
13 #include "AliTPCCalibRawBase.h"
14
15 class TArrayF;
16 class TH2F;
17 class TTreeSRedirector;
18 class AliTPCROC;
19 class AliTPCCalROC;
20 class AliRawReader;
21 class TMap;
22
23 struct eventHeaderStruct;
24
25 class AliTPCCalibPedestal : public AliTPCCalibRawBase {
26
27 public:
28   AliTPCCalibPedestal();
29   AliTPCCalibPedestal(const AliTPCCalibPedestal &ped);
30   AliTPCCalibPedestal(const TMap *config);
31   virtual ~AliTPCCalibPedestal();
32
33   AliTPCCalibPedestal& operator = (const  AliTPCCalibPedestal &source);
34
35   virtual Int_t  Update(const Int_t isector, const Int_t iRow, const Int_t iPad,
36                 const Int_t iTimeBin, const Float_t signal);
37   virtual void   Analyse();
38   //
39   AliTPCCalROC* GetCalRocPedestal (Int_t sector, Bool_t force=kFALSE);  // get calibration object - sector
40   AliTPCCalROC* GetCalRocSigma(Int_t sector, Bool_t force=kFALSE);        // get calibration object - sector
41   const TObjArray* GetCalPadPedestal() const {return &fCalRocArrayPedestal;}  // get calibration object
42   const TObjArray* GetCalPadSigma() const {return &fCalRocArraySigma;}             // get calibration object
43
44   AliTPCCalROC* GetCalRocMean (Int_t sector, Bool_t force=kFALSE);      // get calibration object - sector
45   AliTPCCalROC* GetCalRocRMS(Int_t sector, Bool_t force=kFALSE);        // get calibration object - sector
46   const TObjArray* GetCalPadMean() const {return &fCalRocArrayMean;}          // get calibration object
47   const TObjArray* GetCalPadRMS()  const {return &fCalRocArrayRMS;}             // get calibration object
48   
49   TH2F* GetHistoPedestal  (Int_t sector, Bool_t force=kFALSE);          // get refernce histogram
50   //
51   void  SetTimeAnalysis(Bool_t time = kTRUE);                  // Use ONLY in TPCPEDESTALda on LDC for one sector!
52   void  AnalyseTime(Int_t nevents);                            // Makes sense only in TPCPEDESTALda on LDC!
53   TArrayF **GetTimePedestals()  const { return fTimeSignal; }  // Get array with time dependent pedestals (for one sector!)
54   //
55   Int_t   GetAdcMin()       const { return fAdcMin;       }
56   Int_t   GetAdcMax()       const { return fAdcMax;       }
57   Float_t GetAnaMeanDown()  const { return fAnaMeanDown;  }
58   Float_t GetAnaMeanUp()    const { return fAnaMeanUp;    }
59   
60   void  SetRangeAdc (Int_t aMin, Int_t aMax){ fAdcMin=aMin; fAdcMax=aMax; }  // Set adc range for the pedestal calibration
61   void  SetAnalysisTruncationRange(Float_t down, Float_t up) {fAnaMeanDown=down; fAnaMeanUp=up;}    //Set range for truncated mean analysis of the channel information
62
63   void  Merge(AliTPCCalibPedestal * const ped);
64   virtual Long64_t Merge(TCollection * const list);
65   
66   Bool_t TestEvent();  // Test the fast approach to fill histogram - used for test purposes
67
68 private:
69   Int_t fAdcMin;                    //  min adc channel of pedestal value
70   Int_t fAdcMax;                    //  max adc channel of pedestal value
71
72   Float_t fAnaMeanDown;             // Truncated mean channel analysis - lower cut
73   Float_t fAnaMeanUp;               // Truncated mean channel analysis - upper cut
74   
75   Bool_t  fTimeAnalysis;            //! Should we use the time dependent analysis? ONLY ON LDC!
76
77   TObjArray fCalRocArrayPedestal;   //  Array of AliTPCCalROC class for pedestal values from gaus fit
78   TObjArray fCalRocArraySigma;      //  Array of AliTPCCalROC class for noise values from gaus fit
79
80   TObjArray fHistoPedestalArray;    //  Calibration histograms for Pedestal distribution
81
82   TArrayF **fTimeSignal;            //! Arrays which hold time dependent signals
83   
84   TObjArray fCalRocArrayMean;       //  Array of AliTPCCalROC class for pedestal values, simple mean
85   TObjArray fCalRocArrayRMS;        //  Array of AliTPCCalROC class for noise values, simple rms
86
87   TH2F* GetHisto(Int_t sector, TObjArray *arr,
88                  Int_t nbinsY, Float_t ymin, Float_t ymax,
89                  const Char_t *type, Bool_t force);
90
91   AliTPCCalROC* GetCalRoc(Int_t sector, TObjArray* arr, Bool_t force);
92
93   ClassDef(AliTPCCalibPedestal, 7)  // Implementation of the TPC pedestal and noise calibration
94 };
95
96
97
98 #endif
99