]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ZDC/AliZDCReconstructor.h
Bug Fix.
[u/mrichter/AliRoot.git] / ZDC / AliZDCReconstructor.h
CommitLineData
8309c1ab 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
58671297 8/////////////////////////////////////////////
9// //
10// class for ZDC reconstruction //
11// //
12/////////////////////////////////////////////
8309c1ab 13
14#include "AliReconstructor.h"
7bff3766 15#include "AliZDCRecoParam.h"
af6f24c9 16#include "AliESDZDC.h"
8309c1ab 17
90936733 18class AliCDBManager;
19class AliCDBStorage;
20class AliZDCPedestals;
21class AliZDCEnCalib;
22class AliZDCTowerCalib;
23class AliZDCMBCalib;
24class AliZDCRecoParampp;
25class AliZDCRecoParamPbPb;
26class AliLog;
8309c1ab 27class AliLoader;
28
8309c1ab 29class AliZDCReconstructor: public AliReconstructor {
30public:
31 AliZDCReconstructor();
32 virtual ~AliZDCReconstructor();
33
73bc3a3f 34 virtual void Init();
af6f24c9 35 virtual void Init(TString beamType, Float_t beamEnergy);
a4cab348 36 virtual Bool_t HasDigitConversion() const {return kFALSE;};
73bc3a3f 37
90936733 38 virtual void Reconstruct(TTree*digitsTree, TTree* clustersTree) const;
1e319f71 39 virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
70f04f6d 40
90936733 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);}
73bc3a3f 45
af6f24c9 46 void FillZDCintoESD(TTree *clustersTree, AliESDEvent *esd) const;
47
7bff3766 48 // parameter settings for reconstruction
03be9e4f 49 void SetRecoMode(Int_t recoMode, Float_t beamEnergy)
90936733 50 {fRecoMode=recoMode; fBeamEnergy=beamEnergy;}
51 static void SetRecoParam(AliZDCRecoParam * const param)
52 {fgRecoParam = param;}
fd9afd60 53
90936733 54 Int_t GetRecoMode() const {return fRecoMode;}
55 Float_t GetBeamEnergy() const {return fBeamEnergy;}
42d8b8d5 56
af6f24c9 57 AliESDZDC* GetZDCESDData() const {return fESDZDC;}
58
90936733 59 static const AliZDCRecoParam* GetRecoParam()
60 {return dynamic_cast<const AliZDCRecoParam*>(AliReconstructor::GetRecoParam(9));}
81f09162 61
42d8b8d5 62 void SetPedSubMode(Int_t pedsubMode) {fPedSubMode=pedsubMode;}
90936733 63 Int_t GetPedSubMode() const {return fPedSubMode;}
7bff3766 64
58671297 65 void SetSignalThreshold(Float_t val) {fSignalThreshold=val;}
90936733 66 Float_t GetSignalThreshold() const {return fSignalThreshold;}
58671297 67
7bff3766 68 // OCDB objects for reconstruction
1e319f71 69 AliCDBStorage *SetStorage(const char* uri);
70 AliZDCPedestals *GetPedestalData() const;
71 AliZDCEnCalib *GetEnergyCalibData() const;
72 AliZDCTowerCalib *GetTowerCalibData() const;
0d579f58 73 AliZDCMBCalib *GetMBCalibData() const;
646f1679 74
8309c1ab 75private:
3abc001d 76 AliZDCReconstructor(const AliZDCReconstructor&); //Not implemented
77 AliZDCReconstructor& operator =(const AliZDCReconstructor&); //Not implemented
8309c1ab 78
7bff3766 79 void ReconstructEventpp(TTree *clustersTree,
90936733 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,
f53e5ecb 84 Int_t tdcData[32][4], const Int_t* const evQualityBlock,
82dffa48 85 const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const;
7bff3766 86 void ReconstructEventPbPb(TTree *clustersTree,
90936733 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,
f53e5ecb 91 Int_t tdcData[32][4], const Int_t* const evQualityBlock,
82dffa48 92 const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const;
7bff3766 93
90936733 94 static AliZDCRecoParam *fgRecoParam; // reconstruction parameters
42d8b8d5 95
90936733 96 static AliZDCMBCalib *fgMBCalibData; //! mb calibration data
91debfd4 97 AliZDCPedestals *fPedData; //! pedestal calibration data
98 AliZDCEnCalib *fEnCalibData; //! energy calibration data
99 AliZDCTowerCalib *fTowCalibData; //! equalization calibration data
73bc3a3f 100
9e05925b 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
af6f24c9 108
109 AliESDZDC* fESDZDC; // ESD output object
73bc3a3f 110
9e05925b 111 ClassDef(AliZDCReconstructor, 12) // class for the ZDC reconstruction
8309c1ab 112};
113
114#endif