]>
Commit | Line | Data |
---|---|---|
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" | |
12 | ||
13 | class TArrayF; | |
14 | class TF1; | |
15 | class TH1F; | |
16 | class TObjArray; | |
17 | ||
18 | class AliESD; | |
19 | ||
20 | class AliTOFCal; | |
21 | class AliTOFGeometry; | |
22 | class AliTOFRecoParam; | |
23 | ||
24 | class AliTOFcalib:public TTask{ | |
25 | public: | |
26 | AliTOFcalib(); // ctor | |
27 | AliTOFcalib(AliTOFGeometry *geom); | |
28 | AliTOFcalib(const AliTOFcalib & calib); // copy constructor | |
29 | AliTOFcalib& operator=(const AliTOFcalib & calib); // assignment operator | |
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;} | |
38 | AliTOFCal * GetTOFCalArray() const {return fTOFCal;} | |
39 | AliTOFCal * GetTOFCalSimArray() const {return fTOFSimCal;} | |
40 | TH1F * GetTOFSimToT() const {return fTOFSimToT;} | |
41 | void SelectESD(AliESD *event); | |
42 | void CombESDId(); | |
43 | void CalibrateESD(); | |
44 | TH1F* Profile(Int_t i); | |
45 | Int_t NChannels()const{return fNChannels;} | |
46 | TF1* SetFitFunctions(TH1F* histo); | |
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); | |
55 | Bool_t ReadParFromCDB(Char_t *sel, Int_t nrun); | |
56 | Int_t GetIndex(Int_t *detId); // Get channel index for Calibration | |
57 | void WriteRecParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFRecoParam *param); | |
58 | AliTOFRecoParam * ReadRecParFromCDB(Char_t *sel, Int_t nrun); | |
59 | ||
60 | public: | |
61 | class AliTOFArray : public TObject { | |
62 | public: | |
63 | AliTOFArray(): TObject(),fSize(0),fArray(0x0){} | |
64 | AliTOFArray(Int_t size): | |
65 | TObject(), | |
66 | fSize(size), | |
67 | fArray(new TArrayF*[size]) { | |
68 | } | |
69 | AliTOFArray(const AliTOFArray & source): | |
70 | TObject(),fSize(0),fArray(0x0){ // copy constructor | |
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 | ||
81 | Int_t GetSize() const {return fSize;} | |
82 | void AddArray(Int_t pos, TArrayF * parr) { | |
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]; | |
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 | |
103 | Int_t fNChannels; // number of TOF channels | |
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 | |
111 | Int_t fNevents; // number of events | |
112 | TObjArray * fESDsel; // selected ESD tracks for calibration | |
113 | AliTOFArray *fArrayToT; // array for ToT values | |
114 | AliTOFArray *fArrayTime; // array for Time values | |
115 | AliTOFCal *fTOFCal; // array of AliTOFChannels storing calib parameters | |
116 | AliTOFCal *fTOFSimCal; // array of AliTOFChannels storing calib parameters | |
117 | TH1F *fTOFSimToT; // histo with realistic ToT signal from TB Data | |
118 | ClassDef(AliTOFcalib,1); | |
119 | }; | |
120 | ||
121 | #endif // AliTOFcalib_H | |
122 |