Macro to calculate the needed HV values as a function of the required MIP signal.
[u/mrichter/AliRoot.git] / VZERO / AliVZEROReconstructor.h
CommitLineData
b0d2c2d3 1#ifndef ALIVZERORECONSTRUCTOR_H
2#define ALIVZERORECONSTRUCTOR_H
35b120ff 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.*/
4/* See cxx source for full Copyright notice */
5/* $Id$ */
b0d2c2d3 6
35b120ff 7///////////////////////////////////////////////////////////////////////////
8/// //
9/// class for VZERO reconstruction //
10/// //
11///////////////////////////////////////////////////////////////////////////
b0d2c2d3 12
13#include "AliReconstructor.h"
ce7090f5 14#include "AliCDBManager.h"
15#include "AliCDBStorage.h"
ce7090f5 16#include "AliCDBEntry.h"
b0d2c2d3 17
35b120ff 18#include "AliLog.h"
19#include "AliESDVZERO.h"
75b6bc77 20#include "AliVZERORecoParam.h"
35b120ff 21
b44c933e 22class TF1;
1dc767cf 23class TH1F;
e58b4e66 24class AliVZEROCalibData;
1999c0f1 25class AliVZEROTriggerData;
b14e6eb4 26class AliESDEvent;
b090e6a3 27class AliESDVZEROfriend;
b0d2c2d3 28
29class AliVZEROReconstructor: public AliReconstructor {
30public:
ce7090f5 31 AliVZEROReconstructor();
32 virtual ~AliVZEROReconstructor();
d76c31f4 33 virtual void Init();
35b120ff 34
35 virtual void Reconstruct(AliRawReader* /*rawReader*/,
2e0ee64a 36 TTree* /*clustersTree*/) const {
84dee579 37 AliError("Method not implemented"); return;};
35b120ff 38 virtual void Reconstruct(TTree*, TTree*) const {return;};
39
2e0ee64a 40 virtual void FillESD(TTree* digitsTree, TTree* /*clustersTree*/,
b14e6eb4 41 AliESDEvent* esd) const;
2e0ee64a 42
35b120ff 43 virtual void FillESD(AliRawReader* /*rawReader*/, TTree* /*clustersTree*/,
b14e6eb4 44 AliESDEvent* /*esd*/) const {
84dee579 45 AliError("Method not implemented"); return;};
35b120ff 46
2e0ee64a 47 virtual Bool_t HasDigitConversion() const { return kTRUE; }
48 virtual void ConvertDigits(AliRawReader* rawReader,
49 TTree* digitsTree) const;
75b6bc77 50
51 static const AliVZERORecoParam* GetRecoParam() { return dynamic_cast<const AliVZERORecoParam*>(AliReconstructor::GetRecoParam(12)); }
84dee579 52
ce7090f5 53 AliCDBStorage *SetStorage(const char* uri);
fe0adf2a 54 void GetCollisionMode();
55
ce7090f5 56 AliVZEROCalibData *GetCalibData() const;
b44c933e 57 Float_t CorrectLeadingTime(Int_t i, Float_t time, Float_t adc) const;
ce7090f5 58
7495d2be 59 enum {kInvalidADC = -1024,
b44c933e 60 kInvalidTime = -1024};
7495d2be 61
829852e8 62 AliESDVZERO* GetESDVZERO() { return fESDVZERO; }
63
35b120ff 64protected:
fe0adf2a 65 AliESDVZERO* fESDVZERO; // ESD output object
66 AliESDEvent* fESD; // ESD object
b090e6a3 67 AliESDVZEROfriend* fESDVZEROfriend; // ESD friend object (complete raw data)
35b120ff 68
69private:
e58b4e66 70 AliVZEROReconstructor(const AliVZEROReconstructor& reconstructor);
71 AliVZEROReconstructor& operator = (const AliVZEROReconstructor& reconstructor);
ef314913 72
35b120ff 73 AliVZEROCalibData* fCalibData; //! calibration data
1999c0f1 74 AliVZEROTriggerData* fTriggerData; //! calibration data
b44c933e 75 Float_t fTimeOffset[64]; //! HPTDC time offsets channel by channel
76 TF1* fTimeSlewing; //! Function for time slewing correction
53ad561b 77 TObjArray* fSaturationCorr; //! Array with functions for correcting the signal saturation
1dc767cf 78 TH1F* fEqFactors; //! Histogram with the equalization factors used in event-plane reconstruction
fe0adf2a 79
80 Int_t fCollisionMode; // =0->p-p, =1->A-A
81 Float_t fBeamEnergy; // beam energy
dbf24214 82
83 mutable TClonesArray *fDigitsArray; // clones-array for ConvertDigits() and FillESD()
84
1dc767cf 85 ClassDef(AliVZEROReconstructor, 5) // class for the VZERO reconstruction
b0d2c2d3 86};
87
88#endif