Line data Source code
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 0 : const TObjArray* GetCalPadPedestal() const {return &fCalRocArrayPedestal;} // get calibration object
39 0 : 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 0 : const TObjArray* GetCalPadMean() const {return &fCalRocArrayMean;} // get calibration object
44 0 : 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 0 : TArrayF **GetTimePedestals() const { return fTimeSignal; } // Get array with time dependent pedestals (for one sector!)
51 : //
52 0 : Int_t GetAdcMin() const { return fAdcMin; }
53 0 : Int_t GetAdcMax() const { return fAdcMax; }
54 0 : Float_t GetAnaMeanDown() const { return fAnaMeanDown; }
55 0 : Float_t GetAnaMeanUp() const { return fAnaMeanUp; }
56 :
57 0 : void SetRangeAdc (Int_t aMin, Int_t aMax){ fAdcMin=aMin; fAdcMax=aMax; } // Set adc range for the pedestal calibration
58 0 : 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 24 : ClassDef(AliTPCCalibPedestal, 7) // Implementation of the TPC pedestal and noise calibration
91 : };
92 :
93 :
94 :
95 : #endif
96 :
|