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 */
8 /////////////////////////////////////////////
10 // class for ZDC reconstruction //
12 /////////////////////////////////////////////
14 #include "AliReconstructor.h"
15 #include "AliZDCRecoParam.h"
19 class AliZDCPedestals;
21 class AliZDCTowerCalib;
23 class AliZDCRecoParampp;
24 class AliZDCRecoParamPbPb;
28 class AliZDCReconstructor: public AliReconstructor {
30 AliZDCReconstructor();
31 virtual ~AliZDCReconstructor();
34 virtual Bool_t HasDigitConversion() const {return kFALSE;};
36 virtual void Reconstruct(TTree*digitsTree, TTree* clustersTree) const;
37 virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
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);}
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;}
50 Int_t GetRecoMode() const {return fRecoMode;}
51 Float_t GetBeamEnergy() const {return fBeamEnergy;}
53 static const AliZDCRecoParam* GetRecoParam()
54 {return dynamic_cast<const AliZDCRecoParam*>(AliReconstructor::GetRecoParam(9));}
56 void SetPedSubMode(Int_t pedsubMode) {fPedSubMode=pedsubMode;}
57 Int_t GetPedSubMode() const {return fPedSubMode;}
59 void SetSignalThreshold(Float_t val) {fSignalThreshold=val;}
60 Float_t GetSignalThreshold() const {return fSignalThreshold;}
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;
72 AliZDCReconstructor(const AliZDCReconstructor&); //Not implemented
73 AliZDCReconstructor& operator =(const AliZDCReconstructor&); //Not implemented
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;
90 void FillZDCintoESD(TTree *clustersTree, AliESDEvent*esd) const;
92 static AliZDCRecoParam *fgRecoParam; // reconstruction parameters
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
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
106 ClassDef(AliZDCReconstructor, 10) // class for the ZDC reconstruction