#ifndef ALIVZERODigitizer_H
#define ALIVZERODigitizer_H
#include "AliDigitizer.h"
#include "AliVZEROConst.h"
class TClonesArray;
class TF1;
class AliDigitizationInput;
class AliCDBManager;
class AliCDBStorage;
class AliVZEROCalibData;
class AliVZERO;
class AliVZERODigitizer: public AliDigitizer {
public:
enum DigiTask_t {
kHits2Digits,
kHits2SDigits
};
AliVZERODigitizer() ;
AliVZERODigitizer(AliVZERO *vzero, DigiTask_t task);
AliVZERODigitizer(AliDigitizationInput* digInput);
virtual ~AliVZERODigitizer() ;
virtual Bool_t Init();
virtual void Digitize(Option_t* option=0);
void DigitizeHits();
void DigitizeSDigits();
void WriteDigits(AliLoader *loader);
void WriteSDigits(AliLoader *loader);
void ReadSDigits();
void AddDigit(Int_t pmnumber, Float_t time, Float_t width, Bool_t integrator, Short_t *chargeADC, Int_t *labels);
void AddSDigit(Int_t pmnumber, Int_t nbins, Float_t *charges, Int_t *labels);
TClonesArray* DigitsArray();
TClonesArray* SDigitsArray();
void ResetDigits();
AliVZEROCalibData *GetCalibData() const;
TF1* GetSignalShape() const { return fSignalShape; }
TF1* GetPMResponse() const { return fPMResponse; }
TF1* GetSinglePhESpectrum() const { return fSinglePhESpectrum; }
double SignalShape(double *x, double *par);
double PMResponse(double *x, double *par);
double SinglePhESpectrum(double *x, double *par);
Int_t Cell2Pmt(Int_t cell) const;
protected:
AliVZEROCalibData *fCalibData;
private:
AliVZERODigitizer(const AliVZERODigitizer& );
AliVZERODigitizer& operator = (const AliVZERODigitizer& );
Float_t fPhotoCathodeEfficiency;
Int_t fNdigits;
TClonesArray *fDigits;
TF1* fSignalShape;
TF1* fPMResponse;
TF1* fSinglePhESpectrum;
Float_t fAdc[64][kNClocks];
Float_t fLeadingTime[64];
Float_t fTimeWidth[64];
Float_t fAdcPedestal[64][2];
Float_t fAdcSigma[64][2];
Float_t fPmGain[64];
Int_t fNBins[64];
Int_t fNBinsLT[64];
Float_t fBinSize[64];
Float_t fHptdcOffset[64];
Float_t fClockOffset[64];
Float_t *fTime[64];
Int_t fLabels[64][3];
Bool_t fEvenOrOdd;
DigiTask_t fTask;
AliVZERO *fVZERO;
ClassDef(AliVZERODigitizer,7)
};
#endif // AliVZERODigitizer_H