]>
Commit | Line | Data |
---|---|---|
1ee39b3a | 1 | #ifndef ALITRDRECOTASK_H |
2 | #define ALITRDRECOTASK_H | |
3 | ||
4 | /////////////////////////////////////////////////////// | |
5 | // | |
6 | // Basic class for Performance/Calibration TRD tasks | |
7 | // | |
8 | // Author: Alexandru Bercuci, 10/09/2008 | |
9 | // | |
10 | ////////////////////////////////////////////////// | |
11 | ||
705f8b0a | 12 | #ifndef ALIANALYSISTASKSE_H |
f8f46e4d | 13 | #include "AliAnalysisTaskSE.h" |
705f8b0a | 14 | #endif |
1ee39b3a | 15 | |
16 | #ifndef ALITRDTRACKINFO_H | |
17 | #include "info/AliTRDtrackInfo.h" | |
18 | #endif | |
19 | ||
20 | class TH1; | |
21 | class TF1; | |
22 | class TList; | |
23 | class TObjArray; | |
24 | class TTreeSRedirector; | |
25 | class AliTRDtrackV1; | |
26 | class AliTRDtrackInfo; | |
f8f46e4d | 27 | class AliTRDrecoTask : public AliAnalysisTaskSE |
1ee39b3a | 28 | { |
29 | public: | |
30 | enum AliTRDrecoSteeringBits{ | |
3f19c2cd | 31 | kMCdata = BIT(18) |
32 | ,kFriends = BIT(19) | |
33 | ,kPostProcess = BIT(20) | |
1ee39b3a | 34 | }; |
f8f46e4d | 35 | |
36 | AliTRDrecoTask(); | |
1ee39b3a | 37 | AliTRDrecoTask(const char *name, const char *title); |
38 | virtual ~AliTRDrecoTask(); | |
39 | ||
40 | ||
f8f46e4d | 41 | virtual void UserCreateOutputObjects() = 0; |
42 | virtual void UserExec(Option_t *opt); | |
43 | virtual void ConnectInputData(Option_t *); | |
44 | virtual void SetDebugLevel(Int_t level); | |
45 | ||
46 | ||
1ee39b3a | 47 | Int_t GetNRefFigures() const { return fNRefFigures; } |
3d2a3dff | 48 | const Char_t* GetNameId() const { return fNameId;} |
1ee39b3a | 49 | TList* GetPlotFunctors() const { return fPlotFuncList;} |
50 | virtual Bool_t GetRefFigure(Int_t ifig); | |
51 | ||
52 | Bool_t HasFriends() const { return TestBit(kFriends);}; | |
53 | Bool_t HasMCdata() const { return TestBit(kMCdata);}; | |
54 | Bool_t HasPostProcess() const { return TestBit(kPostProcess);}; | |
55 | virtual TObjArray* Histos() { return fContainer;} | |
56 | ||
57 | virtual Bool_t Load(const Char_t *filename = "TRD.Performance.root"); | |
58 | virtual Bool_t Save(TObjArray * const res); | |
59 | virtual Bool_t PostProcess(); | |
60 | virtual Bool_t PutTrendValue(const Char_t *name, Double_t val); | |
1ee39b3a | 61 | virtual void SetFriends(Bool_t fr = kTRUE) {SetBit(kFriends, fr);} |
62 | virtual void SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);} | |
3d2a3dff | 63 | virtual void SetNameId(const Char_t *nid) {sprintf(fNameId, "%s", nid);} |
1ee39b3a | 64 | virtual void SetPostProcess(Bool_t pp = kTRUE) {SetBit(kPostProcess, pp);} |
65 | virtual void Terminate(Option_t *); | |
66 | ||
67 | protected: | |
1ee39b3a | 68 | static TTreeSRedirector* DebugStream() { return fgDebugStream;} |
69 | void InitFunctorList(); | |
70 | void Adjust(TF1 *f, TH1 * const h); | |
3d2a3dff | 71 | Char_t fNameId[10]; //! unique identifier of task particularity |
1ee39b3a | 72 | UChar_t fNRefFigures; //! no of reference figures reported by task |
73 | TObjArray *fContainer; //! container to store results | |
74 | TObjArray *fTracks; //! Array of tracks | |
75 | const AliTRDtrackV1 *fkTrack; //! current track | |
76 | const AliTRDtrackInfo::AliMCinfo *fkMC; //! MC info | |
77 | const AliTRDtrackInfo::AliESDinfo *fkESD;//! ESD info | |
78 | ||
79 | private: | |
80 | AliTRDrecoTask(const AliTRDrecoTask&); | |
81 | AliTRDrecoTask& operator=(const AliTRDrecoTask&); | |
82 | ||
afca20ef | 83 | TList *fPlotFuncList;//! plot functors list |
84 | static TList *fgTrendPoint; //! trend point | |
1ee39b3a | 85 | static TTreeSRedirector *fgDebugStream; //! Debug stream |
86 | ||
afca20ef | 87 | ClassDef(AliTRDrecoTask, 2) // base TRD reconstruction task |
1ee39b3a | 88 | }; |
89 | ||
90 | #endif | |
91 |