#ifndef ALIZDCRECONSTRUCTOR_H
#define ALIZDCRECONSTRUCTOR_H
#include "AliReconstructor.h"
#include "AliZDCRecoParam.h"
#include "AliESDZDC.h"
class AliCDBManager;
class AliCDBStorage;
class AliZDCPedestals;
class AliZDCEnCalib;
class AliZDCSaturationCalib;
class AliZDCTowerCalib;
class AliZDCMBCalib;
class AliZDCTDCCalib;
class AliZDCRecoParampp;
class AliZDCRecoParamPbPb;
class AliLog;
class AliLoader;
class AliZDCReconstructor: public AliReconstructor {
public:
AliZDCReconstructor();
virtual ~AliZDCReconstructor();
virtual void Init();
virtual void Init(TString beamType, Float_t beamEnergy);
virtual Bool_t HasDigitConversion() const {return kFALSE;};
virtual void Reconstruct(TTree*digitsTree, TTree* clustersTree) const;
virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
virtual void FillESD(TTree* , TTree* clustersTree,
AliESDEvent* esd) const {FillZDCintoESD(clustersTree, esd);}
virtual void FillESD(AliRawReader* , TTree* clustersTree,
AliESDEvent* esd) const {FillZDCintoESD(clustersTree, esd);}
void FillZDCintoESD(TTree *clustersTree, AliESDEvent *esd) const;
void SetRecoMode(Int_t recoMode, Float_t beamEnergy)
{fRecoMode=recoMode; fBeamEnergy=beamEnergy;}
static void SetRecoParam(AliZDCRecoParam * const param)
{fgRecoParam = param;}
Int_t GetRecoMode() const {return fRecoMode;}
Float_t GetBeamEnergy() const {return fBeamEnergy;}
AliESDZDC* GetZDCESDData() const {return fESDZDC;}
static const AliZDCRecoParam* GetRecoParam()
{return dynamic_cast<const AliZDCRecoParam*>(AliReconstructor::GetRecoParam(9));}
void SetPedSubMode(Int_t pedsubMode) {fPedSubMode=pedsubMode;}
Int_t GetPedSubMode() const {return fPedSubMode;}
void SetSignalThreshold(Float_t val) {fSignalThreshold=val;}
Float_t GetSignalThreshold() const {return fSignalThreshold;}
AliCDBStorage *SetStorage(const char* uri);
AliZDCPedestals *GetPedestalData() const;
AliZDCEnCalib *GetEnergyCalibData() const;
AliZDCSaturationCalib *GetSaturationCalibData() const;
AliZDCTowerCalib *GetTowerCalibData() const;
AliZDCMBCalib *GetMBCalibData() const;
AliZDCTDCCalib *GetTDCCalibData() const;
private:
AliZDCReconstructor(const AliZDCReconstructor&);
AliZDCReconstructor& operator =(const AliZDCReconstructor&);
void ReconstructEventpp(TTree *clustersTree,
const Float_t* const corrADCZN1, const Float_t* const corrADCZP1,
const Float_t* const corrADCZN2, const Float_t* const corrADCZP2,
const Float_t* const corrADCZEM1, const Float_t* const corrADCZEM2,
Float_t* sPMRef1, Float_t* sPMRef2, Bool_t isScalerOn, UInt_t* scaler,
Int_t tdcData[32][4], const Int_t* const evQualityBlock,
const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const;
void ReconstructEventPbPb(TTree *clustersTree,
const Float_t* const corrADCZN1, const Float_t* const corrADCZP1,
const Float_t* const corrADCZN2, const Float_t* const corrADCZP2,
const Float_t* const corrADCZEM1, const Float_t* const corrADCZEM2,
Float_t* sPMRef1, Float_t* sPMRef2, Bool_t isScalerOn, UInt_t* scaler,
Int_t tdcData[32][4], const Int_t* const evQualityBlock,
const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const;
static AliZDCRecoParam *fgRecoParam;
static AliZDCMBCalib *fgMBCalibData;
AliZDCPedestals *fPedData;
AliZDCEnCalib *fEnCalibData;
AliZDCSaturationCalib *fSatCalibData;
AliZDCTowerCalib *fTowCalibData;
AliZDCTDCCalib *fTDCCalibData;
Int_t fRecoMode;
Float_t fBeamEnergy;
Int_t fNRun;
Bool_t fIsCalibrationMB;
Int_t fPedSubMode;
Float_t fSignalThreshold;
Double_t fMeanPhase;
AliESDZDC* fESDZDC;
ClassDef(AliZDCReconstructor, 14)
};
#endif
AliZDCReconstructor.h:100 AliZDCReconstructor.h:101 AliZDCReconstructor.h:102 AliZDCReconstructor.h:103 AliZDCReconstructor.h:104 AliZDCReconstructor.h:105 AliZDCReconstructor.h:106 AliZDCReconstructor.h:107 AliZDCReconstructor.h:108 AliZDCReconstructor.h:109 AliZDCReconstructor.h:110 AliZDCReconstructor.h:111 AliZDCReconstructor.h:112 AliZDCReconstructor.h:113 AliZDCReconstructor.h:114 AliZDCReconstructor.h:115 AliZDCReconstructor.h:116 AliZDCReconstructor.h:117 AliZDCReconstructor.h:118 AliZDCReconstructor.h:119 AliZDCReconstructor.h:120