Line data Source code
1 : #ifndef ALIVZERORECONSTRUCTOR_H
2 : #define ALIVZERORECONSTRUCTOR_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.*/
4 : /* See cxx source for full Copyright notice */
5 : /* $Id$ */
6 :
7 : ///////////////////////////////////////////////////////////////////////////
8 : /// //
9 : /// class for VZERO reconstruction //
10 : /// //
11 : ///////////////////////////////////////////////////////////////////////////
12 :
13 : #include "AliReconstructor.h"
14 : #include "AliCDBManager.h"
15 : #include "AliCDBStorage.h"
16 : #include "AliCDBEntry.h"
17 :
18 : #include "AliLog.h"
19 : #include "AliESDVZERO.h"
20 : #include "AliVZERORecoParam.h"
21 :
22 : class TF1;
23 : class TH1F;
24 : class AliVZEROCalibData;
25 : class AliVZEROTriggerData;
26 : class AliESDEvent;
27 : class AliESDVZEROfriend;
28 :
29 : class AliVZEROReconstructor: public AliReconstructor {
30 : public:
31 : AliVZEROReconstructor();
32 : virtual ~AliVZEROReconstructor();
33 : virtual void Init();
34 :
35 : virtual void Reconstruct(AliRawReader* /*rawReader*/,
36 : TTree* /*clustersTree*/) const {
37 0 : AliError("Method not implemented"); return;};
38 16 : virtual void Reconstruct(TTree*, TTree*) const {return;};
39 :
40 : virtual void FillESD(TTree* digitsTree, TTree* /*clustersTree*/,
41 : AliESDEvent* esd) const;
42 :
43 : virtual void FillESD(AliRawReader* /*rawReader*/, TTree* /*clustersTree*/,
44 : AliESDEvent* /*esd*/) const {
45 0 : AliError("Method not implemented"); return;};
46 :
47 24 : virtual Bool_t HasDigitConversion() const { return kTRUE; }
48 : virtual void ConvertDigits(AliRawReader* rawReader,
49 : TTree* digitsTree) const;
50 :
51 45424 : static const AliVZERORecoParam* GetRecoParam() { return dynamic_cast<const AliVZERORecoParam*>(AliReconstructor::GetRecoParam(12)); }
52 :
53 : AliCDBStorage *SetStorage(const char* uri);
54 : void GetCollisionMode();
55 :
56 : AliVZEROCalibData *GetCalibData() const;
57 : Float_t CorrectLeadingTime(Int_t i, Float_t time, Float_t adc) const;
58 :
59 : enum {kInvalidADC = -1024,
60 : kInvalidTime = -1024};
61 :
62 0 : AliESDVZERO* GetESDVZERO() { return fESDVZERO; }
63 :
64 0 : AliESDVZEROfriend* GetESDVZEROfriend() { return fESDVZEROfriend; }
65 :
66 : protected:
67 : AliESDVZERO* fESDVZERO; // ESD output object
68 : AliESDEvent* fESD; // ESD object
69 : AliESDVZEROfriend* fESDVZEROfriend; // ESD friend object (complete raw data)
70 :
71 : private:
72 : AliVZEROReconstructor(const AliVZEROReconstructor& reconstructor);
73 : AliVZEROReconstructor& operator = (const AliVZEROReconstructor& reconstructor);
74 :
75 : AliVZEROCalibData* fCalibData; //! calibration data
76 : AliVZEROTriggerData* fTriggerData; //! calibration data
77 : Float_t fTimeOffset[64]; //! HPTDC time offsets channel by channel
78 : TF1* fTimeSlewing; //! Function for time slewing correction
79 : TObjArray* fSaturationCorr; //! Array with functions for correcting the signal saturation
80 : TH1F* fEqFactors; //! Histogram with the equalization factors used in event-plane reconstruction
81 :
82 : Int_t fCollisionMode; // =0->p-p, =1->A-A
83 : Float_t fBeamEnergy; // beam energy
84 :
85 : mutable TClonesArray *fDigitsArray; // clones-array for ConvertDigits() and FillESD()
86 :
87 1312 : ClassDef(AliVZEROReconstructor, 5) // class for the VZERO reconstruction
88 : };
89 :
90 : #endif
|