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