1 #ifndef ALITRDRECOTASK_H
2 #define ALITRDRECOTASK_H
5 // Author: Alexandru Bercuci, 10/09/2008
7 #ifndef ALIANALYSISTASK_H
8 #include "AliAnalysisTask.h"
11 #ifndef ALITRDTRACKINFO_H
12 #include "AliTRDtrackInfo/AliTRDtrackInfo.h"
19 class TTreeSRedirector;
21 class AliTRDtrackInfo;
22 class AliTRDrecoTask : public AliAnalysisTask
25 enum AliTRDrecoSteeringBits{
28 ,kPostProcess = BIT(22)
30 AliTRDrecoTask(const char *name, const char *title);
31 virtual ~AliTRDrecoTask();
34 void ConnectInputData(Option_t *);
35 virtual void CreateOutputObjects() = 0;
36 virtual void Exec(Option_t *);
38 Int_t GetDebugLevel() const { return fDebugLevel;}
39 Int_t GetNRefFigures() const { return fNRefFigures; }
40 TList* GetPlotFunctors() const { return fPlotFuncList;}
41 virtual Bool_t GetRefFigure(Int_t ifig);
43 Bool_t HasFriends() const {return TestBit(kFriends);};
44 Bool_t HasMCdata() const {return TestBit(kMCdata);};
45 Bool_t HasPostProcess() const {return TestBit(kPostProcess);};
46 virtual TObjArray* Histos() {return fContainer;}
48 virtual Bool_t Load(const Char_t *filename);
49 virtual Bool_t PostProcess();
50 virtual void SetDebugLevel(Int_t level);
51 virtual void SetFriends(Bool_t fr = kTRUE) {SetBit(kFriends, fr);}
52 virtual void SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);}
53 virtual void SetPostProcess(Bool_t pp = kTRUE) {SetBit(kPostProcess, pp);}
54 virtual void Terminate(Option_t *) = 0;
57 void InitFunctorList();
58 void Adjust(TF1 *f, TH1 *h);
62 AliTRDrecoTask(const AliTRDrecoTask&);
63 AliTRDrecoTask& operator=(const AliTRDrecoTask&);
66 UChar_t fNRefFigures; //! no of reference figures reported by task
67 UChar_t fDebugLevel; //! Debug level
68 TList *fPlotFuncList;//! plot functors list
69 TObjArray *fContainer; //! container to store results
70 TObjArray *fTracks; //! Array of tracks
71 const AliTRDtrackV1 *fTrack; //! current track
72 const AliTRDtrackInfo::AliMCinfo *fMC; //! MC info
73 const AliTRDtrackInfo::AliESDinfo *fESD;//! ESD info
74 TTreeSRedirector *fDebugStream; //! Debug stream
76 ClassDef(AliTRDrecoTask, 0) // base TRD reconstruction task