]> git.uio.no Git - u/mrichter/AliRoot.git/blame - VZERO/AliVZERODigitizer.h
Better weight function from the improved time slewing correction.
[u/mrichter/AliRoot.git] / VZERO / AliVZERODigitizer.h
CommitLineData
2434abb9 1#ifndef ALIVZERODigitizer_H
2#define ALIVZERODigitizer_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
b0d2c2d3 6///_________________________________________________________________________
7///
8/// Class for making Digits in VZERO
9///_________________________________________________________________________
2434abb9 10
11
b0d2c2d3 12// --- Standard library ---
13
14// --- AliRoot header files ---
15
2434abb9 16#include "AliDigitizer.h"
2434abb9 17
4e2652e8 18#include "AliVZEROConst.h"
19
2434abb9 20class TClonesArray;
9672d66e 21class TF1;
2434abb9 22class AliRunDigitizer;
ce7090f5 23class AliCDBManager;
24class AliCDBStorage;
25class AliVZEROCalibData;
2434abb9 26
27class AliVZERODigitizer: public AliDigitizer {
28
ce7090f5 29 public:
2434abb9 30
ce7090f5 31 AliVZERODigitizer() ; // constructor
32 AliVZERODigitizer(AliRunDigitizer *manager);// constructor
33 virtual ~AliVZERODigitizer() ; // destructor
2434abb9 34
ce7090f5 35 virtual Bool_t Init();
36 virtual void Exec(Option_t* option=0);
2434abb9 37
4e2652e8 38 void AddDigit(Int_t PMnumber, Float_t adc, Float_t time, Float_t width, Bool_t integrator);
ce7090f5 39 void ResetDigit();
fe0adf2a 40
ce7090f5 41 AliVZEROCalibData *GetCalibData() const;
8adc9b44 42
9672d66e 43 TF1* GetSignalShape() const { return fSignalShape; }
4e2652e8 44 TF1* GetPMResponse() const { return fPMResponse; }
45 TF1* GetSinglePhESpectrum() const { return fSinglePhESpectrum; }
9672d66e 46 double SignalShape(double *x, double *par);
4e2652e8 47 double PMResponse(double *x, double *par);
48 double SinglePhESpectrum(double *x, double *par);
49
50 Int_t Cell2Pmt(Int_t cell) const;
9672d66e 51
ce7090f5 52 protected:
53
54 AliVZEROCalibData *fCalibData; //! calibration data
55
2434abb9 56 private:
ce7090f5 57
0b2bea8b 58 AliVZERODigitizer(const AliVZERODigitizer& /*digitizer*/);
59
60 AliVZERODigitizer& operator = (const AliVZERODigitizer& /*digitizer*/);
2434abb9 61
fe0adf2a 62 Float_t fPhotoCathodeEfficiency; // Photocathode efficiency
2434abb9 63
fe0adf2a 64 Int_t fNdigits; //! Number of digits
65 TClonesArray *fDigits; //! List of digits
66
9672d66e 67 TF1* fSignalShape; // function which describes the PMT signal shape
4e2652e8 68 TF1* fPMResponse; // function which describes the PM time response
69 TF1* fSinglePhESpectrum; // function which describes the single ph.e. PM response
70
71 Float_t fAdc[64][kNClocks]; //! Container for ADC samples
72 Float_t fLeadingTime[64]; //! Leading time container
73 Float_t fTimeWidth[64]; //! Time width container
74 Float_t fAdcPedestal[64][2]; //! Pedestals, one per integrator
75 Float_t fAdcSigma[64][2]; //! Sigma of pedestals
76 Float_t fPmGain[64]; //! PMT gains
77 Int_t fNBins[64]; //! Number of bins in fTime container
78 Int_t fNBinsLT[64]; //! Number of bins in fTime container (match window only)
79 Float_t fBinSize[64]; //! Bin size in fTime container
80 Float_t fHptdcOffset[64]; //! HPTDC time offsets channel by channel
81
82 Float_t *fTime[64]; //! Main container used in digitization
fe0adf2a 83
4e2652e8 84 ClassDef(AliVZERODigitizer,5) // digitizer for VZERO
2434abb9 85
86};
87
88#endif // AliVZERODigitizer_H