]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ZDC/AliZDCReconstructor.h
update by Gaute:
[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 "AliCDBManager.h"
16 #include "AliCDBStorage.h"
17 #include "AliZDCPedestals.h"
18 #include "AliZDCCalib.h"
19 #include "AliZDCRecoParam.h"
20 #include "AliZDCRecoParampp.h"
21 #include "AliZDCRecoParamPbPb.h"
22 #include "AliLog.h"
23
24 class AliLoader;
25
26 class AliZDCReconstructor: public AliReconstructor {
27 public:
28   AliZDCReconstructor();
29   virtual ~AliZDCReconstructor();
30
31   virtual Bool_t HasDigitConversion() const {return kFALSE;};
32
33   virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const; 
34   virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
35
36   virtual void FillESD(TTree* /*digitsTree*/, TTree* clustersTree, AliESDEvent* esd) const 
37                 {FillZDCintoESD(clustersTree,esd);}
38   virtual void FillESD(AliRawReader* /*rawReader*/, TTree* clustersTree, AliESDEvent* esd) const 
39                 {FillZDCintoESD(clustersTree,esd);}
40
41   // parameter settings for reconstruction
42   void SetRecoMode();
43   void SetRecoMode(Int_t recoMode, Float_t beamEnergy) 
44           {fRecoMode=recoMode; fBeamEnergy=beamEnergy;}
45   static void SetRecoParam(AliZDCRecoParam * param){fRecoParam = param;}
46   
47   Int_t   GetRecoMode() {return fRecoMode;}
48   Float_t GetBeamEnergy() {return fBeamEnergy;}
49   
50   static const AliZDCRecoParam* GetRecoParam(){return fRecoParam;}
51
52   void  SetPedSubMode(Int_t pedsubMode) {fPedSubMode=pedsubMode;}
53   Int_t GetPedSubMode() {return fPedSubMode;}
54   
55   // OCDB objects for reconstruction
56   AliCDBStorage   *SetStorage(const char* uri);
57   AliZDCPedestals *GetPedData() const; 
58   AliZDCCalib     *GetECalibData() const; 
59   
60 private:
61   AliZDCReconstructor(const AliZDCReconstructor&);
62   AliZDCReconstructor& operator =(const AliZDCReconstructor&);
63
64   void   ReconstructEventpp(TTree *clustersTree, 
65             Float_t* ZN1ADCCorr, Float_t* ZP1ADCCorr, Float_t* ZN2ADCCorr, Float_t* ZP2ADCCorr,
66             Float_t* ZEM1ADCCorr, Float_t* ZEM2ADCCorr, Float_t* PMRef1, Float_t* PMRef2) const;
67   void   ReconstructEventPbPb(TTree *clustersTree, 
68             Float_t* ZN1ADCCorr, Float_t* ZP1ADCCorr, Float_t* ZN2ADCCorr, Float_t* ZP2ADCCorr,
69             Float_t* ZEM1ADCCorr, Float_t* ZEM2ADCCorr, Float_t* PMRef1, Float_t* PMRef2) const;
70   void   FillZDCintoESD(TTree *clustersTree, AliESDEvent*esd) const;
71
72   static AliZDCRecoParam *fRecoParam; // reconstruction parameters
73
74   AliZDCPedestals *fPedData;    //! pedestal calibration data
75   AliZDCCalib     *fECalibData; //! energy and equalization calibration data
76   Int_t           fRecoMode;    // =0->p-p, =1->A-A
77   Float_t         fBeamEnergy;  // beam energy
78
79   Int_t           fPedSubMode;  // =0->mean values, =1->from correlations
80
81   ClassDef(AliZDCReconstructor, 6)   // class for the ZDC reconstruction
82 };
83
84 #endif