Line data Source code
1 : #ifndef ALIADRECONSTRUCTOR_H
2 : #define ALIADRECONSTRUCTOR_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.*/
4 : /* See cxx source for full Copyright notice */
5 : /* $Id: AliADReconstructor.h 20956 2007-09-26 14:22:18Z cvetan $ */
6 :
7 : ///////////////////////////////////////////////////////////////////////////
8 : /// //
9 : /// class for AD reconstruction //
10 : /// //
11 : ///////////////////////////////////////////////////////////////////////////
12 :
13 : #include "AliReconstructor.h"
14 : #include "AliLog.h"
15 : #include "AliADConst.h"
16 : #include "AliCDBManager.h"
17 : #include "AliCDBStorage.h"
18 : #include "AliCDBEntry.h"
19 : #include "AliADRecoParam.h"
20 : #include "TSpline.h"
21 :
22 : class AliESDAD;
23 : class AliESDADfriend;
24 : class AliESDEvent;
25 : class AliADCalibData;
26 : class TSpline3;
27 : class TTree;
28 :
29 : class AliADReconstructor: public AliReconstructor {
30 : public:
31 : AliADReconstructor();
32 : virtual ~AliADReconstructor();
33 : virtual void Init();
34 :
35 : virtual void Reconstruct(AliRawReader* /*rawReader*/,
36 : TTree* /*clustersTree*/) const {
37 0 : AliError("Method not implemented"); return;};
38 0 : virtual void Reconstruct(TTree*, TTree*) const {return;};
39 :
40 : virtual void FillESD(TTree* digitsTree, TTree* /*clustersTree*/,
41 : AliESDEvent* esd) const;
42 :
43 : virtual void FillESD(AliRawReader* /*rawReader*/, TTree* /*clustersTree*/,
44 : AliESDEvent* /*esd*/) const {
45 0 : AliError("Method not implemented"); return;};
46 :
47 0 : virtual Bool_t HasDigitConversion() const { return kTRUE; }
48 : virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
49 :
50 0 : static const AliADRecoParam* GetRecoParam() { return dynamic_cast<const AliADRecoParam*>(AliReconstructor::GetRecoParam(14)); }
51 :
52 : AliCDBStorage *SetStorage(const char* uri);
53 : void GetCollisionMode();
54 : Double_t GetZPosition(const char* symname);
55 :
56 : const AliADCalibData *GetCalibData() const;
57 : void GetTimeSlewingSplines();
58 : Float_t CorrectLeadingTime(Int_t i, Float_t time, Float_t adc) const;
59 :
60 : enum {kInvalidADC = -1024,
61 : kInvalidTime = -1024};
62 :
63 : void SetOption(Option_t *opt);
64 :
65 0 : AliESDAD* GetESDAD() { return fESDAD; }
66 :
67 : protected:
68 : AliESDAD *fESDAD; // AD ESD object
69 : AliESDEvent *fESD; // ESD object
70 : AliESDADfriend *fESDADfriend; // AD ESDfriend object
71 :
72 : private:
73 : AliADReconstructor(const AliADReconstructor &reconstructor); //Not implemented
74 : AliADReconstructor& operator = (const AliADReconstructor &reconstructor); //Not implemented
75 :
76 : const AliADCalibData *fCalibData; //! calibration data
77 : mutable TClonesArray *fDigitsArray; // clones-array for ConvertDigits() and FillESD()
78 : TTree *fSaturationCorrection; //! used to correct for saturation
79 :
80 : Int_t fCollisionMode; // =0->p-p, =1->A-A
81 : Float_t fBeamEnergy; // beam energy
82 : Float_t fHptdcOffset[16]; //! HPTDC time offsets channel by channel
83 : TSpline3 *fTimeSlewingSpline[16]; //Time slewing splines
84 : Float_t fLayerDist[4]; //Z position of layers
85 :
86 : Bool_t fCorrectForSaturation; //
87 :
88 16 : ClassDef(AliADReconstructor, 5) // class for the AD reconstruction
89 : };
90 :
91 : #endif
|