Bug #92237 fixed as Barth suggested
[u/mrichter/AliRoot.git] / ZDC / AliZDCDigitizer.h
index ba786d0..23b3924 100644 (file)
 #include "AliDigitizer.h"
 #include "AliCDBManager.h"
 #include "AliCDBStorage.h"
-#include "AliZDCCalibData.h"
+#include "AliZDCPedestals.h"
 
-class AliRunDigitizer;
+class AliDigitizationInput;
 
 class AliZDC;
 class AliZDCHit;
-class AliZDCMergedHit;
 class AliZDCDigit;
 
 class AliZDCDigitizer: public AliDigitizer {
 
 public:
   AliZDCDigitizer();
-  AliZDCDigitizer(AliRunDigitizer* manager);
+  AliZDCDigitizer(AliDigitizationInput* digInput);
   virtual ~AliZDCDigitizer();
    
   virtual Bool_t Init();
-  virtual void Exec(Option_t* option=0);    
+  virtual void Digitize(Option_t* option=0);    
 
   //  PM gain
   void    SetPMGain(Int_t det, Int_t pmDet, Int_t pmGain)
@@ -38,16 +37,31 @@ public:
     {return fPMGain[det][pmDet];}
   //  Conversion factor from charge to ADC channels
   //         F = 1.6E-19 / Resolution [Coulomb/ch]
-  void    SetADCRes(Int_t *adcRes)
+  void    SetADCRes(Int_t *adcRes) {for (Int_t i=0;i<2;i++) fADCRes[i] = adcRes[i];}
   //  Two conversion factor are needed for ADC CAEN V965 
-    {for (Int_t i=0;i<2;i++) fADCRes[i] = adcRes[i];}
   Float_t GetADCRes(Int_t i) const {return fADCRes[i];}
   
-  void   GetStorage(const char* uri) {fStorage = AliCDBManager::Instance()->GetStorage(uri);}
-  AliCDBStorage   *SetStorage(const char* uri);
-  AliZDCCalibData *GetCalibData(int runNumber) const; 
+  void   SetCalibrationOn() {fIsCalibration=1;}  
+  AliCDBStorage    *SetStorage(const char* uri);
+  AliZDCPedestals  *GetPedData() const; 
+  
+  void    SetSpectators2Track() {fSpectators2Track=kTRUE;}
+  void    SetBeamEnergy(Float_t beamEnergy) {fBeamEnergy = beamEnergy;}
+
+  // Added for p-A simulations
+  void    SetpAsystem() {fIspASystem=kTRUE;}
+
+  // Added for RELDIS
+  void    SetRELDISGenerator() {fIsRELDISgen=kTRUE;}
 
 private:
+
+  AliZDCDigitizer(const AliZDCDigitizer&);
+  AliZDCDigitizer& operator=(const AliZDCDigitizer&);
+
+  void    CalculatePMTGains();
+  void    ReadPMTGains();
+
   void    Fragmentation(Float_t impPar, Int_t specN, Int_t specP,
                         Int_t &freeSpecN, Int_t &freeSpecP) const;
   void    SpectatorSignal(Int_t SpecType, Int_t numEvents, 
@@ -57,12 +71,24 @@ private:
                     Int_t Res) const;
   Int_t   Pedestal(Int_t Detector, Int_t Quadrant, Int_t Res) const;
 
-  Float_t fPMGain[3][5];       // PM gain
+  Float_t fPMGain[5][5];       // PM gain
   Float_t fADCRes[2];          // ADC conversion factors
+  Int_t   fIsCalibration;      // !=0 if simulation creates calibration data
+  Bool_t  fIsSignalInADCGate;   // true if signal in ADC gate
+  Float_t fFracLostSignal;      // fraction of lost signal
+  
+  AliZDCPedestals  *fPedData;     //! pedestal calibration data
   
-  AliCDBStorage *fStorage;     //! storage
-  AliZDCCalibData *fCalibData;         //! calibration data
+  Bool_t  fSpectators2Track;    // should digitizer track spectators
+  Float_t fBeamEnergy;          // beam energy
+  TString fBeamType;           // beam type
+  
+  // Added for p-A simulations
+  Bool_t  fIspASystem;         // true if collision system is p-A
+
+  // Added for RELDIS
+  Bool_t  fIsRELDISgen;        // treu if generator is RELDIS
        
-  ClassDef(AliZDCDigitizer, 3)     // digitizer for ZDC
+  ClassDef(AliZDCDigitizer, 14)     // digitizer for ZDC
 };    
 #endif