]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/qaRec/AliTRDrecoTask.h
fix PID reference figures style (AlexW)
[u/mrichter/AliRoot.git] / TRD / qaRec / AliTRDrecoTask.h
1 #ifndef ALITRDRECOTASK_H
2 #define ALITRDRECOTASK_H
3
4
5 // Author: Alexandru Bercuci, 10/09/2008
6
7 #ifndef ALIANALYSISTASK_H
8 #include "AliAnalysisTask.h"
9 #endif
10
11 #ifndef ALITRDTRACKINFO_H
12 #include "AliTRDtrackInfo/AliTRDtrackInfo.h"
13 #endif
14
15 class TH1;
16 class TF1;
17 class TList;
18 class TObjArray;
19 class TTreeSRedirector;
20 class AliTRDtrackV1;
21 class AliTRDtrackInfo;
22 class AliTRDrecoTask : public AliAnalysisTask 
23 {
24 public:
25   enum AliTRDrecoSteeringBits{
26     kMCdata       = BIT(20)
27     ,kFriends     = BIT(21)
28     ,kPostProcess = BIT(22)
29   };
30   AliTRDrecoTask(const char *name, const char *title);
31   virtual ~AliTRDrecoTask();
32   
33   
34   void           ConnectInputData(Option_t *);
35   virtual void   CreateOutputObjects() = 0;
36   virtual void   Exec(Option_t *);
37
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);
42
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;}
47
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;
55
56 protected:
57   void   InitFunctorList();
58   void   Adjust(TF1 *f, TH1 *h);
59
60
61 private:
62   AliTRDrecoTask(const AliTRDrecoTask&);
63   AliTRDrecoTask& operator=(const AliTRDrecoTask&);
64
65 protected:
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 
75
76   ClassDef(AliTRDrecoTask, 0) // base TRD reconstruction task
77 };
78
79 #endif
80