]>
Commit | Line | Data |
---|---|---|
6dc9348d | 1 | #ifndef ALITOFCALIB_H |
2 | #define ALITOFCALIB_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | ////////////////////////////////////////////////////////////////// | |
8 | // class for TOF calibration:: simulation of uncalibrated data // | |
9 | ////////////////////////////////////////////////////////////////// | |
10 | ||
11 | #include "TTask.h" | |
0e46b9ae | 12 | |
13 | class TArrayF; | |
14 | class TF1; | |
15 | class TH1F; | |
16 | class TObjArray; | |
17 | ||
18 | class AliESD; | |
19 | ||
20 | class AliTOFCal; | |
21 | class AliTOFGeometry; | |
7037bd93 | 22 | class AliTOFRecoParam; |
6dc9348d | 23 | |
24 | class AliTOFcalib:public TTask{ | |
25 | public: | |
26 | AliTOFcalib(); // ctor | |
d4ad0d6b | 27 | AliTOFcalib(AliTOFGeometry *geom); |
7aeeaf38 | 28 | AliTOFcalib(const AliTOFcalib & calib); // copy constructor |
29 | AliTOFcalib& operator=(const AliTOFcalib & calib); // assignment operator | |
6dc9348d | 30 | virtual ~AliTOFcalib() ; // dtor |
31 | Int_t NSector()const {return fNSector;} | |
32 | Int_t NPlate()const {return fNPlate;} | |
33 | Int_t NStripA()const {return fNStripA;} | |
34 | Int_t NStripB()const {return fNStripB;} | |
35 | Int_t NStripC()const {return fNStripC;} | |
36 | Int_t NpadZ()const {return fNpadZ;} | |
37 | Int_t NpadX()const {return fNpadX;} | |
d4ad0d6b | 38 | AliTOFCal * GetTOFCalArray() const {return fTOFCal;} |
39 | AliTOFCal * GetTOFCalSimArray() const {return fTOFSimCal;} | |
40 | TH1F * GetTOFSimToT() const {return fTOFSimToT;} | |
41 | void SelectESD(AliESD *event); | |
6dc9348d | 42 | void CombESDId(); |
43 | void CalibrateESD(); | |
44 | TH1F* Profile(Int_t i); | |
d4ad0d6b | 45 | Int_t NChannels()const{return fNChannels;} |
6dc9348d | 46 | TF1* SetFitFunctions(TH1F* histo); |
d4ad0d6b | 47 | void CorrectESDTime();// useless method, kept to make Chiara happy |
48 | void CorrectESDTime(AliESD *event); | |
49 | // Methods to retrieve/write parameters from/on CDB | |
50 | void WriteSimParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun); | |
51 | void WriteSimParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFCal *cal, TH1F *histo); | |
52 | void ReadSimParFromCDB(Char_t *sel, Int_t nrun); | |
53 | void WriteParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFCal *cal); | |
54 | void WriteParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun); | |
1b20c168 | 55 | Bool_t ReadParFromCDB(Char_t *sel, Int_t nrun); |
d4ad0d6b | 56 | Int_t GetIndex(Int_t *detId); // Get channel index for Calibration |
7037bd93 | 57 | void WriteRecParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFRecoParam *param); |
58 | AliTOFRecoParam * ReadRecParFromCDB(Char_t *sel, Int_t nrun); | |
6dc9348d | 59 | |
60 | public: | |
61 | class AliTOFArray : public TObject { | |
62 | public: | |
63 | AliTOFArray(): TObject(),fSize(0),fArray(0x0){} | |
655e379f | 64 | AliTOFArray(Int_t size): |
6dc9348d | 65 | TObject(), |
66 | fSize(size), | |
67 | fArray(new TArrayF*[size]) { | |
68 | } | |
7aeeaf38 | 69 | AliTOFArray(const AliTOFArray & source): |
655e379f | 70 | TObject(),fSize(0),fArray(0x0){ // copy constructor |
7aeeaf38 | 71 | this->fSize= source.fSize; |
72 | this->fArray= source.fArray; | |
73 | }; | |
74 | ||
75 | AliTOFArray& operator=(const AliTOFArray & source) { // assignment operator | |
76 | this->fSize= source.fSize; | |
77 | this->fArray= source.fArray; | |
78 | return *this; | |
79 | } | |
80 | ||
6dc9348d | 81 | Int_t GetSize() const {return fSize;} |
82 | void AddArray(Int_t pos, TArrayF * parr) { | |
340693af | 83 | if (pos>-1 && pos < fSize)fArray[pos] = parr;} |
84 | TArrayF * GetArray(Int_t pos) const { | |
85 | TArrayF * parr = 0x0; | |
86 | if (pos>-1 && pos < fSize)parr = fArray[pos]; | |
6dc9348d | 87 | return parr; |
88 | } | |
89 | virtual ~AliTOFArray() { | |
90 | delete [] fArray; | |
91 | } | |
92 | ||
93 | private: | |
94 | ||
95 | Int_t fSize; // Size of the array of TArrayFs | |
96 | TArrayF ** fArray; //[fSize]}; | |
97 | ||
98 | }; | |
99 | ||
100 | ||
101 | private: | |
102 | static const Int_t fgkchannel; // max number of entries per channel | |
d4ad0d6b | 103 | Int_t fNChannels; // number of TOF channels |
6dc9348d | 104 | Int_t fNSector; // number of TOF sectors |
105 | Int_t fNPlate; // number of TOF plates | |
106 | Int_t fNStripA; // number of TOF strips A | |
107 | Int_t fNStripB; // number of TOF strips B | |
108 | Int_t fNStripC; // number of TOF strips C | |
109 | Int_t fNpadZ; // number of TOF pads Z | |
110 | Int_t fNpadX; // number of TOF pads X | |
d4ad0d6b | 111 | Int_t fNevents; // number of events |
6dc9348d | 112 | TObjArray * fESDsel; // selected ESD tracks for calibration |
6dc9348d | 113 | AliTOFArray *fArrayToT; // array for ToT values |
114 | AliTOFArray *fArrayTime; // array for Time values | |
6dc9348d | 115 | AliTOFCal *fTOFCal; // array of AliTOFChannels storing calib parameters |
d4ad0d6b | 116 | AliTOFCal *fTOFSimCal; // array of AliTOFChannels storing calib parameters |
117 | TH1F *fTOFSimToT; // histo with realistic ToT signal from TB Data | |
6dc9348d | 118 | ClassDef(AliTOFcalib,1); |
119 | }; | |
120 | ||
121 | #endif // AliTOFcalib_H | |
122 |