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