#include "AliCDBStorage.h"
#include "AliCDBEntry.h"
-#include "AliVZEROCalibData.h"
#include "AliLog.h"
#include "AliESDVZERO.h"
+#include "AliVZERORecoParam.h"
-class AliLoader;
-class AliESD;
+class TF1;
+class TH1F;
+class AliVZEROCalibData;
+class AliVZEROTriggerData;
+class AliESDEvent;
+class AliESDVZEROfriend;
class AliVZEROReconstructor: public AliReconstructor {
public:
AliVZEROReconstructor();
virtual ~AliVZEROReconstructor();
- virtual void Init(AliRunLoader* runLoader);
- virtual void Reconstruct(AliRunLoader* /*runLoader*/) const {
- AliError("Method not implemented"); return;};
+ virtual void Init();
virtual void Reconstruct(AliRawReader* /*rawReader*/,
TTree* /*clustersTree*/) const {
- AliError("Method not implemented"); return;};
- virtual void Reconstruct(AliRunLoader* /*runLoader*/,
- AliRawReader* /*rawReader*/) const {
- AliError("Method not implemented"); return;};
+ AliError("Method not implemented"); return;};
virtual void Reconstruct(TTree*, TTree*) const {return;};
- virtual void FillESD(AliRunLoader* /*runLoader*/, AliESD* /*esd*/) const {
- AliInfo("Method is not used"); return;};
-
virtual void FillESD(TTree* digitsTree, TTree* /*clustersTree*/,
- AliESD* /*esd*/) const;
+ AliESDEvent* esd) const;
virtual void FillESD(AliRawReader* /*rawReader*/, TTree* /*clustersTree*/,
- AliESD* /*esd*/) const {
- AliError("Method not implemented"); return;};
-
- virtual void FillESD(AliRunLoader* /*runLoader*/,
- AliRawReader* /*rawReader*/, AliESD* /*esd*/) const {
- AliInfo("Method is not used"); return;};
+ AliESDEvent* /*esd*/) const {
+ AliError("Method not implemented"); return;};
virtual Bool_t HasDigitConversion() const { return kTRUE; }
virtual void ConvertDigits(AliRawReader* rawReader,
TTree* digitsTree) const;
- virtual Bool_t HasLocalReconstruction() const { return kTRUE; }
+ static const AliVZERORecoParam* GetRecoParam() { return dynamic_cast<const AliVZERORecoParam*>(AliReconstructor::GetRecoParam(12)); }
+
AliCDBStorage *SetStorage(const char* uri);
+ void GetCollisionMode();
+
AliVZEROCalibData *GetCalibData() const;
+ Float_t CorrectLeadingTime(Int_t i, Float_t time, Float_t adc) const;
+
+ enum {kInvalidADC = -1024,
+ kInvalidTime = -1024};
+
+ AliESDVZERO* GetESDVZERO() { return fESDVZERO; }
protected:
- AliESDVZERO* fESDVZERO; // ESD output object
- AliESD* fESD; // ESD object
+ AliESDVZERO* fESDVZERO; // ESD output object
+ AliESDEvent* fESD; // ESD object
+ AliESDVZEROfriend* fESDVZEROfriend; // ESD friend object (complete raw data)
private:
AliVZEROReconstructor(const AliVZEROReconstructor& reconstructor);
AliVZEROReconstructor& operator = (const AliVZEROReconstructor& reconstructor);
-private:
- AliRunLoader* fRunLoader; //! pointer to runloader
AliVZEROCalibData* fCalibData; //! calibration data
-
- ClassDef(AliVZEROReconstructor, 0) // class for the VZERO reconstruction
+ AliVZEROTriggerData* fTriggerData; //! calibration data
+ Float_t fTimeOffset[64]; //! HPTDC time offsets channel by channel
+ TF1* fTimeSlewing; //! Function for time slewing correction
+ TObjArray* fSaturationCorr; //! Array with functions for correcting the signal saturation
+ TH1F* fEqFactors; //! Histogram with the equalization factors used in event-plane reconstruction
+
+ Int_t fCollisionMode; // =0->p-p, =1->A-A
+ Float_t fBeamEnergy; // beam energy
+
+ mutable TClonesArray *fDigitsArray; // clones-array for ConvertDigits() and FillESD()
+
+ ClassDef(AliVZEROReconstructor, 5) // class for the VZERO reconstruction
};
#endif