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