]>
Commit | Line | Data |
---|---|---|
3d86166d | 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 | ||
de520d8f | 11 | #ifndef ALITRDTRACKINFO_H |
873458ab | 12 | #include "info/AliTRDtrackInfo.h" |
de520d8f | 13 | #endif |
14 | ||
fc0946a7 | 15 | class TH1; |
16 | class TF1; | |
de520d8f | 17 | class TList; |
3d86166d | 18 | class TObjArray; |
19 | class TTreeSRedirector; | |
de520d8f | 20 | class AliTRDtrackV1; |
21 | class AliTRDtrackInfo; | |
3d86166d | 22 | class AliTRDrecoTask : public AliAnalysisTask |
23 | { | |
24 | public: | |
25 | enum AliTRDrecoSteeringBits{ | |
d85cd79c | 26 | kMCdata = BIT(20) |
27 | ,kFriends = BIT(21) | |
28 | ,kPostProcess = BIT(22) | |
3d86166d | 29 | }; |
30 | AliTRDrecoTask(const char *name, const char *title); | |
31 | virtual ~AliTRDrecoTask(); | |
d85cd79c | 32 | |
33 | ||
3d86166d | 34 | void ConnectInputData(Option_t *); |
35 | virtual void CreateOutputObjects() = 0; | |
de520d8f | 36 | virtual void Exec(Option_t *); |
3d86166d | 37 | |
38 | Int_t GetDebugLevel() const { return fDebugLevel;} | |
39 | Int_t GetNRefFigures() const { return fNRefFigures; } | |
de520d8f | 40 | TList* GetPlotFunctors() const { return fPlotFuncList;} |
e15179be | 41 | virtual Bool_t GetRefFigure(Int_t ifig); |
d85cd79c | 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);}; | |
cf194b94 | 46 | virtual TObjArray* Histos() {return fContainer;} |
d85cd79c | 47 | |
1fd9389f | 48 | virtual Bool_t Load(const Char_t *filename = "TRD.Performance.root"); |
fbb00452 | 49 | virtual Bool_t Save(TObjArray *res); |
3d86166d | 50 | virtual Bool_t PostProcess(); |
a63b505e | 51 | virtual Bool_t PutTrendValue(Char_t *name, Double_t val, Double_t err); |
3d86166d | 52 | virtual void SetDebugLevel(Int_t level); |
d85cd79c | 53 | virtual void SetFriends(Bool_t fr = kTRUE) {SetBit(kFriends, fr);} |
54 | virtual void SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);} | |
55 | virtual void SetPostProcess(Bool_t pp = kTRUE) {SetBit(kPostProcess, pp);} | |
3d86166d | 56 | virtual void Terminate(Option_t *) = 0; |
57 | ||
de520d8f | 58 | protected: |
59 | void InitFunctorList(); | |
fc0946a7 | 60 | void Adjust(TF1 *f, TH1 *h); |
61 | ||
de520d8f | 62 | |
3d86166d | 63 | private: |
64 | AliTRDrecoTask(const AliTRDrecoTask&); | |
65 | AliTRDrecoTask& operator=(const AliTRDrecoTask&); | |
66 | ||
67 | protected: | |
68 | UChar_t fNRefFigures; //! no of reference figures reported by task | |
69 | UChar_t fDebugLevel; //! Debug level | |
de520d8f | 70 | TList *fPlotFuncList;//! plot functors list |
3d86166d | 71 | TObjArray *fContainer; //! container to store results |
72 | TObjArray *fTracks; //! Array of tracks | |
de520d8f | 73 | const AliTRDtrackV1 *fTrack; //! current track |
74 | const AliTRDtrackInfo::AliMCinfo *fMC; //! MC info | |
75 | const AliTRDtrackInfo::AliESDinfo *fESD;//! ESD info | |
76 | TTreeSRedirector *fDebugStream; //! Debug stream | |
a63b505e | 77 | static FILE *fgFile; //! trend file streamer |
3d86166d | 78 | |
a63b505e | 79 | ClassDef(AliTRDrecoTask, 1) // base TRD reconstruction task |
3d86166d | 80 | }; |
81 | ||
82 | #endif | |
83 |