]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ZDC/AliZDCReconstructor.h
180edfc2adcd650254eed3f888099b9d1deff928
[u/mrichter/AliRoot.git] / ZDC / AliZDCReconstructor.h
1 #ifndef ALIZDCRECONSTRUCTOR_H
2 #define ALIZDCRECONSTRUCTOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 /////////////////////////////////////////////
9 //                                         //
10 //       class for ZDC reconstruction      //
11 //                                         //
12 /////////////////////////////////////////////
13
14 #include "AliReconstructor.h"
15 #include "AliZDCRecoParam.h"
16
17 class AliCDBManager;
18 class AliCDBStorage;
19 class AliZDCPedestals;
20 class AliZDCEnCalib;
21 class AliZDCTowerCalib;
22 class AliZDCMBCalib;
23 class AliZDCRecoParampp;
24 class AliZDCRecoParamPbPb;
25 class AliLog;
26 class AliLoader;
27
28 class AliZDCReconstructor: public AliReconstructor {
29 public:
30   AliZDCReconstructor();
31   virtual ~AliZDCReconstructor();
32
33   virtual void   Init();
34   virtual Bool_t HasDigitConversion() const {return kFALSE;};
35   
36   virtual void Reconstruct(TTree*digitsTree, TTree* clustersTree) const; 
37   virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
38
39   virtual void FillESD(TTree* /*digitsTree*/, TTree* clustersTree, 
40                        AliESDEvent* esd) const {FillZDCintoESD(clustersTree, esd);}
41   virtual void FillESD(AliRawReader* /*rawReader*/, TTree* clustersTree, 
42                        AliESDEvent* esd) const {FillZDCintoESD(clustersTree, esd);}
43   
44   // parameter settings for reconstruction
45   void SetRecoMode(Int_t recoMode, Float_t beamEnergy) 
46        {fRecoMode=recoMode; fBeamEnergy=beamEnergy;}
47   static void SetRecoParam(AliZDCRecoParam * const param)
48               {fgRecoParam = param;}
49   
50   Int_t   GetRecoMode() const {return fRecoMode;}
51   Float_t GetBeamEnergy() const {return fBeamEnergy;}
52   
53   static const AliZDCRecoParam* GetRecoParam() 
54   {return dynamic_cast<const AliZDCRecoParam*>(AliReconstructor::GetRecoParam(9));}
55     
56   void  SetPedSubMode(Int_t pedsubMode) {fPedSubMode=pedsubMode;}
57   Int_t GetPedSubMode() const {return fPedSubMode;}
58   
59   void    SetSignalThreshold(Float_t val) {fSignalThreshold=val;}
60   Float_t GetSignalThreshold() const {return fSignalThreshold;}
61   
62   // OCDB objects for reconstruction
63   AliCDBStorage       *SetStorage(const char* uri);
64   AliZDCPedestals     *GetPedestalData() const; 
65   AliZDCEnCalib       *GetEnergyCalibData() const; 
66   AliZDCTowerCalib    *GetTowerCalibData() const; 
67   AliZDCMBCalib       *GetMBCalibData() const; 
68   AliZDCRecoParampp   *GetppRecoParamFromOCDB() const;  
69   AliZDCRecoParamPbPb *GetPbPbRecoParamFromOCDB() const;  
70   
71 private:
72   AliZDCReconstructor(const AliZDCReconstructor&); //Not implemented
73   AliZDCReconstructor& operator =(const AliZDCReconstructor&); //Not implemented
74
75   void   ReconstructEventpp(TTree *clustersTree, 
76          const Float_t* const corrADCZN1, const Float_t* const corrADCZP1, 
77          const Float_t* const corrADCZN2, const Float_t* const corrADCZP2,
78          const Float_t* const corrADCZEM1, const Float_t* const corrADCZEM2,
79          Float_t* sPMRef1, Float_t* sPMRef2, Bool_t isScalerOn, UInt_t* scaler, 
80          const Int_t* const evQualityBlock, const Int_t* const triggerBlock, 
81          const Int_t* const chBlock, UInt_t puBits) const;
82   void   ReconstructEventPbPb(TTree *clustersTree, 
83          const Float_t* const corrADCZN1, const Float_t* const corrADCZP1, 
84          const Float_t* const corrADCZN2, const Float_t* const corrADCZP2,
85          const Float_t* const corrADCZEM1, const Float_t* const corrADCZEM2,
86          Float_t* sPMRef1, Float_t* sPMRef2, Bool_t isScalerOn, UInt_t* scaler, 
87          const Int_t* const evQualityBlock, const Int_t* const triggerBlock, 
88          const Int_t* const chBlock, UInt_t puBits) const;
89   
90   void   FillZDCintoESD(TTree *clustersTree, AliESDEvent*esd) const;
91
92   static AliZDCRecoParam *fgRecoParam; // reconstruction parameters
93
94   static AliZDCMBCalib   *fgMBCalibData;   //! mb calibration data
95   AliZDCPedestals  *fPedData;             //! pedestal calibration data
96   AliZDCEnCalib    *fEnCalibData;         //! energy calibration data
97   AliZDCTowerCalib *fTowCalibData;        //! equalization calibration data
98   
99   Int_t   fRecoMode;        // =1->p-p, =2->A-A
100   Float_t fBeamEnergy;      // beam energy
101   Int_t   fNRun;            // Run Number (from raw data)
102   Bool_t  fIsCalibrationMB; // true if run type = "CALIBRATION_MB"
103   Int_t   fPedSubMode;      // =0->mean values, =1->from correlations
104   Float_t fSignalThreshold; // Threshold value for "triggering" in p-p
105
106   ClassDef(AliZDCReconstructor, 10)   // class for the ZDC reconstruction
107 };
108
109 #endif