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 */
7 ///////////////////////////////////////////////////////////////////////////
9 /// class for VZERO reconstruction //
11 ///////////////////////////////////////////////////////////////////////////
13 #include "AliReconstructor.h"
14 #include "AliCDBManager.h"
15 #include "AliCDBStorage.h"
16 #include "AliCDBEntry.h"
19 #include "AliESDVZERO.h"
20 #include "AliVZERORecoParam.h"
24 class AliVZEROCalibData;
25 class AliVZEROTriggerData;
27 class AliESDVZEROfriend;
29 class AliVZEROReconstructor: public AliReconstructor {
31 AliVZEROReconstructor();
32 virtual ~AliVZEROReconstructor();
35 virtual void Reconstruct(AliRawReader* /*rawReader*/,
36 TTree* /*clustersTree*/) const {
37 AliError("Method not implemented"); return;};
38 virtual void Reconstruct(TTree*, TTree*) const {return;};
40 virtual void FillESD(TTree* digitsTree, TTree* /*clustersTree*/,
41 AliESDEvent* esd) const;
43 virtual void FillESD(AliRawReader* /*rawReader*/, TTree* /*clustersTree*/,
44 AliESDEvent* /*esd*/) const {
45 AliError("Method not implemented"); return;};
47 virtual Bool_t HasDigitConversion() const { return kTRUE; }
48 virtual void ConvertDigits(AliRawReader* rawReader,
49 TTree* digitsTree) const;
51 static const AliVZERORecoParam* GetRecoParam() { return dynamic_cast<const AliVZERORecoParam*>(AliReconstructor::GetRecoParam(12)); }
53 AliCDBStorage *SetStorage(const char* uri);
54 void GetCollisionMode();
56 AliVZEROCalibData *GetCalibData() const;
57 Float_t CorrectLeadingTime(Int_t i, Float_t time, Float_t adc) const;
59 enum {kInvalidADC = -1024,
60 kInvalidTime = -1024};
62 AliESDVZERO* GetESDVZERO() { return fESDVZERO; }
65 AliESDVZERO* fESDVZERO; // ESD output object
66 AliESDEvent* fESD; // ESD object
67 AliESDVZEROfriend* fESDVZEROfriend; // ESD friend object (complete raw data)
70 AliVZEROReconstructor(const AliVZEROReconstructor& reconstructor);
71 AliVZEROReconstructor& operator = (const AliVZEROReconstructor& reconstructor);
73 AliVZEROCalibData* fCalibData; //! calibration data
74 AliVZEROTriggerData* fTriggerData; //! calibration data
75 Float_t fTimeOffset[64]; //! HPTDC time offsets channel by channel
76 TF1* fTimeSlewing; //! Function for time slewing correction
77 TObjArray* fSaturationCorr; //! Array with functions for correcting the signal saturation
78 TH1F* fEqFactors; //! Histogram with the equalization factors used in event-plane reconstruction
80 Int_t fCollisionMode; // =0->p-p, =1->A-A
81 Float_t fBeamEnergy; // beam energy
83 mutable TClonesArray *fDigitsArray; // clones-array for ConvertDigits() and FillESD()
85 ClassDef(AliVZEROReconstructor, 5) // class for the VZERO reconstruction