ROOT logo
#ifndef ALIADDigitizer_H
#define ALIADDigitizer_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */
  
///_________________________________________________________________________
///
///  Class for making Digits in AD 
///_________________________________________________________________________   


// --- Standard library ---

// --- AliRoot header files ---

#include "AliDigitizer.h"
#include "AliADConst.h"

class TClonesArray;
class TF1;
class AliDigitizationInput;
class AliCDBManager;
class AliCDBStorage;
class AliADCalibData;
class AliAD;

class AliADDigitizer: public AliDigitizer {

public:
   enum DigiTask_t { 
     kHits2Digits, 
     kHits2SDigits
   };
  
   AliADDigitizer() ;                       // default constructor
   AliADDigitizer(AliAD *AD, DigiTask_t task);         // constructor
   AliADDigitizer(AliDigitizationInput* digInput); // constructor
   virtual ~AliADDigitizer() ;              // destructor

   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();
						
   AliADCalibData *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);

 protected:
 
   AliADCalibData *fCalibData;  //! calibration data
 
 private:
 
   AliADDigitizer(const AliADDigitizer& /*digitizer*/); 
      
   AliADDigitizer& operator = (const AliADDigitizer& /*digitizer*/); 

   Int_t    fNdigits;                //! Number of digits
   TClonesArray *fDigits;            //! List of digits
   
   TF1*     fSignalShape;            // function which describes the PMT signal shape
   TF1*     fPMResponse;             // function which describes the PM time response
   TF1*     fSinglePhESpectrum;      // function which describes the single ph.e. PM response

   Float_t  fAdc[16][kNClocks];      //! Container for ADC samples
   Float_t  fLeadingTime[16];        //! Leading time container
   Float_t  fTimeWidth[16];          //! Time width container
   Float_t  fAdcPedestal[16][2];     //! Pedestals, one per integrator
   Float_t  fAdcSigma[16][2];        //! Sigma of pedestals
   Float_t  fPmGain[16];             //! PMT gains
   Int_t    fNBins[16];              //! Number of bins in fTime container
   Int_t    fNBinsLT[16];            //! Number of bins in fTime container (match window only)
   Float_t  fBinSize[16];            //! Bin size in fTime container
   Float_t  fHptdcOffset[16];        //! HPTDC time offsets channel by channel
   Float_t  fClockOffset[16];        //! Clock offsets channel by channel

   Float_t *fTime[16];               //! Main container used in digitization
   Int_t    fLabels[16][3];          //! Container for MC labels
   Bool_t   fEvenOrOdd;              //! Choise of integrator in central ADC sample

   DigiTask_t fTask;                 //! The task (to be) executed by the digitizer
   AliAD  *fAD;                //! Pointer to AliDetector object
   ClassDef(AliADDigitizer,1)     // digitizer for AD

};

#endif // AliADDigitizer_H
 AliADDigitizer.h:1
 AliADDigitizer.h:2
 AliADDigitizer.h:3
 AliADDigitizer.h:4
 AliADDigitizer.h:5
 AliADDigitizer.h:6
 AliADDigitizer.h:7
 AliADDigitizer.h:8
 AliADDigitizer.h:9
 AliADDigitizer.h:10
 AliADDigitizer.h:11
 AliADDigitizer.h:12
 AliADDigitizer.h:13
 AliADDigitizer.h:14
 AliADDigitizer.h:15
 AliADDigitizer.h:16
 AliADDigitizer.h:17
 AliADDigitizer.h:18
 AliADDigitizer.h:19
 AliADDigitizer.h:20
 AliADDigitizer.h:21
 AliADDigitizer.h:22
 AliADDigitizer.h:23
 AliADDigitizer.h:24
 AliADDigitizer.h:25
 AliADDigitizer.h:26
 AliADDigitizer.h:27
 AliADDigitizer.h:28
 AliADDigitizer.h:29
 AliADDigitizer.h:30
 AliADDigitizer.h:31
 AliADDigitizer.h:32
 AliADDigitizer.h:33
 AliADDigitizer.h:34
 AliADDigitizer.h:35
 AliADDigitizer.h:36
 AliADDigitizer.h:37
 AliADDigitizer.h:38
 AliADDigitizer.h:39
 AliADDigitizer.h:40
 AliADDigitizer.h:41
 AliADDigitizer.h:42
 AliADDigitizer.h:43
 AliADDigitizer.h:44
 AliADDigitizer.h:45
 AliADDigitizer.h:46
 AliADDigitizer.h:47
 AliADDigitizer.h:48
 AliADDigitizer.h:49
 AliADDigitizer.h:50
 AliADDigitizer.h:51
 AliADDigitizer.h:52
 AliADDigitizer.h:53
 AliADDigitizer.h:54
 AliADDigitizer.h:55
 AliADDigitizer.h:56
 AliADDigitizer.h:57
 AliADDigitizer.h:58
 AliADDigitizer.h:59
 AliADDigitizer.h:60
 AliADDigitizer.h:61
 AliADDigitizer.h:62
 AliADDigitizer.h:63
 AliADDigitizer.h:64
 AliADDigitizer.h:65
 AliADDigitizer.h:66
 AliADDigitizer.h:67
 AliADDigitizer.h:68
 AliADDigitizer.h:69
 AliADDigitizer.h:70
 AliADDigitizer.h:71
 AliADDigitizer.h:72
 AliADDigitizer.h:73
 AliADDigitizer.h:74
 AliADDigitizer.h:75
 AliADDigitizer.h:76
 AliADDigitizer.h:77
 AliADDigitizer.h:78
 AliADDigitizer.h:79
 AliADDigitizer.h:80
 AliADDigitizer.h:81
 AliADDigitizer.h:82
 AliADDigitizer.h:83
 AliADDigitizer.h:84
 AliADDigitizer.h:85
 AliADDigitizer.h:86
 AliADDigitizer.h:87
 AliADDigitizer.h:88
 AliADDigitizer.h:89
 AliADDigitizer.h:90
 AliADDigitizer.h:91
 AliADDigitizer.h:92
 AliADDigitizer.h:93
 AliADDigitizer.h:94
 AliADDigitizer.h:95
 AliADDigitizer.h:96
 AliADDigitizer.h:97
 AliADDigitizer.h:98
 AliADDigitizer.h:99
 AliADDigitizer.h:100
 AliADDigitizer.h:101
 AliADDigitizer.h:102
 AliADDigitizer.h:103