]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ZDC/AliZDCReconstructor.h
Bug in ZEM2 TDC filling fixed
[u/mrichter/AliRoot.git] / ZDC / AliZDCReconstructor.h
index 58b92355c910a011444a9e5506c75543edbe037d..1957f26ede7c46ca817e0f19e705c044681cc697 100644 (file)
 /////////////////////////////////////////////
 
 #include "AliReconstructor.h"
-#include "AliCDBManager.h"
-#include "AliCDBStorage.h"
-#include "AliZDCPedestals.h"
-#include "AliZDCEnCalib.h"
-#include "AliZDCTowerCalib.h"
 #include "AliZDCRecoParam.h"
-#include "AliZDCRecoParampp.h"
-#include "AliZDCRecoParamPbPb.h"
-#include "AliLog.h"
+#include "AliESDZDC.h"
 
+class AliCDBManager;
+class AliCDBStorage;
+class AliZDCPedestals;
+class AliZDCEnCalib;
+class AliZDCTowerCalib;
+class AliZDCMBCalib;
+class AliZDCTDCCalib;
+class AliZDCRecoParampp;
+class AliZDCRecoParamPbPb;
+class AliLog;
 class AliLoader;
 
 class AliZDCReconstructor: public AliReconstructor {
@@ -30,73 +33,85 @@ public:
   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(TTree*digitsTree, TTree* clustersTree) const; 
   virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
 
-  virtual void FillESD(TTree* /*digitsTree*/, TTree* clustersTree, AliESDEvent* esd) const 
-               {FillZDCintoESD(clustersTree, esd);}
-  virtual void FillESD(AliRawReader* /*rawReader*/, TTree* clustersTree, AliESDEvent* esd) const 
-               {FillZDCintoESD(clustersTree, esd);}
+  virtual void FillESD(TTree* /*digitsTree*/, TTree* clustersTree, 
+                      AliESDEvent* esd) const {FillZDCintoESD(clustersTree, esd);}
+  virtual void FillESD(AliRawReader* /*rawReader*/, TTree* clustersTree, 
+                      AliESDEvent* esd) const {FillZDCintoESD(clustersTree, esd);}
+  
+  void   FillZDCintoESD(TTree *clustersTree, AliESDEvent *esd) const;
   
   // parameter settings for reconstruction
   void SetRecoMode(Int_t recoMode, Float_t beamEnergy) 
-                 {fRecoMode=recoMode; fBeamEnergy=beamEnergy;}
-  static void SetRecoParam(AliZDCRecoParam * param){fRecoParam = param;}
+       {fRecoMode=recoMode; fBeamEnergy=beamEnergy;}
+  static void SetRecoParam(AliZDCRecoParam * const param)
+             {fgRecoParam = param;}
   
-  Int_t   GetRecoMode() {return fRecoMode;}
-  Float_t GetBeamEnergy() {return fBeamEnergy;}
+  Int_t   GetRecoMode() const {return fRecoMode;}
+  Float_t GetBeamEnergy() const {return fBeamEnergy;}
   
-  static const AliZDCRecoParam* GetRecoParam() {return fRecoParam;}
-
+  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() {return fPedSubMode;}
+  Int_t GetPedSubMode() const {return fPedSubMode;}
   
   void    SetSignalThreshold(Float_t val) {fSignalThreshold=val;}
-  Float_t GetSignalThreshold() {return fSignalThreshold;}
+  Float_t GetSignalThreshold() const {return fSignalThreshold;}
   
   // OCDB objects for reconstruction
   AliCDBStorage       *SetStorage(const char* uri);
   AliZDCPedestals     *GetPedestalData() const; 
   AliZDCEnCalib       *GetEnergyCalibData() const; 
   AliZDCTowerCalib    *GetTowerCalibData() const; 
-  AliZDCRecoParampp   *GetppRecoParamFromOCDB() const;  
-  AliZDCRecoParamPbPb *GetPbPbRecoParamFromOCDB() const;  
+  AliZDCMBCalib       *GetMBCalibData() const; 
+  AliZDCTDCCalib      *GetTDCCalibData() const; 
   
-  void WritePbPbRecoParamInOCDB() const;
-
 private:
-  AliZDCReconstructor(const AliZDCReconstructor&);
-  AliZDCReconstructor& operator =(const AliZDCReconstructor&);
+  AliZDCReconstructor(const AliZDCReconstructor&); //Not implemented
+  AliZDCReconstructor& operator =(const AliZDCReconstructor&); //Not implemented
 
   void   ReconstructEventpp(TTree *clustersTree, 
-           Float_t* ZN1ADCCorr, Float_t* ZP1ADCCorr, Float_t* ZN2ADCCorr, Float_t* ZP2ADCCorr,
-           Float_t* ZEM1ADCCorr, Float_t* ZEM2ADCCorr, Float_t* PMRef1, Float_t* PMRef2,
-           Bool_t channelsOff, Bool_t chUnderflow, Bool_t chOverflow) const;
+        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, 
-           Float_t* ZN1ADCCorr, Float_t* ZP1ADCCorr, Float_t* ZN2ADCCorr, Float_t* ZP2ADCCorr,
-           Float_t* ZEM1ADCCorr, Float_t* ZEM2ADCCorr, Float_t* PMRef1, Float_t* PMRef2,
-           Bool_t channelsOff, Bool_t chUnderflow, Bool_t chOverflow) const;
-  void   BuildRecoParam(Float_t ZDCC, Float_t ZDCA, Float_t ZEM) const;
-  
-  void   FillZDCintoESD(TTree *clustersTree, AliESDEvent*esd) const;
-
+        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 *fRecoParam; // reconstruction parameters
+  static AliZDCRecoParam *fgRecoParam; // reconstruction parameters
 
-  AliZDCPedestals  *fPedData;      //! pedestal calibration data
-  AliZDCEnCalib    *fEnCalibData;   //! energy calibration data
-  AliZDCTowerCalib *fTowCalibData;  //! equalization calibration data
+  static AliZDCMBCalib   *fgMBCalibData;   //! mb calibration data
+  AliZDCPedestals  *fPedData;            //! pedestal calibration data
+  AliZDCEnCalib    *fEnCalibData;        //! energy calibration data
+  AliZDCTowerCalib *fTowCalibData;       //! equalization calibration data
+  AliZDCTDCCalib   *fTDCCalibData;       //! TDC offset data
+  
+  Int_t    fRecoMode;      // =1->p-p, =2->A-A
+  Float_t  fBeamEnergy;            // beam energy
+  Int_t           fNRun;           // Run Number (from raw data)
+  Bool_t   fIsCalibrationMB; // true if run type = "CALIBRATION_MB"
+  Int_t    fPedSubMode;            // =0->mean values, =1->from correlations
+  Float_t  fSignalThreshold; // Threshold value for "triggering" in p-p
+  Double_t fMeanPhase;      // LHC clock phase
   
-  Int_t   fRecoMode;       // =1->p-p, =2->A-A
-  Float_t fBeamEnergy;     // beam energy
-  Int_t          fNRun;            // Run Number (from raw data)
-  Bool_t  fIsCalibrationMB; // true if run type = "CALIBRATION_MB"
-  Int_t   fPedSubMode;     // =0->mean values, =1->from correlations
-  Float_t fSignalThreshold; // Threshold value for "triggering" in p-p
+  AliESDZDC* fESDZDC;       // ESD output object  
 
-  ClassDef(AliZDCReconstructor, 9)   // class for the ZDC reconstruction
+  ClassDef(AliZDCReconstructor, 13)   // class for the ZDC reconstruction
 };
 
 #endif