]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/TRD/AliTRDrecoTask.h
Update to adapt CF to D* case (Alessandro)
[u/mrichter/AliRoot.git] / PWG1 / TRD / AliTRDrecoTask.h
CommitLineData
94b94be0 1#ifndef ALITRDRECOTASK_H\r
2#define ALITRDRECOTASK_H\r
3\r
4///////////////////////////////////////////////////////\r
5//\r
6// Basic class for Performance/Calibration TRD tasks\r
7//\r
8// Author: Alexandru Bercuci, 10/09/2008\r
9//\r
10//////////////////////////////////////////////////\r
11\r
12#ifndef ALIANALYSISTASKSE_H\r
13#include "AliAnalysisTaskSE.h"\r
14#endif\r
15\r
16#ifndef ALITRDTRACKINFO_H\r
17#include "info/AliTRDtrackInfo.h"\r
18#endif\r
19\r
20class TH1;\r
21class TF1;\r
22class TList;\r
23class TObjArray;\r
24class TTreeSRedirector;\r
25class AliTRDtrackV1;\r
26class AliTRDeventInfo;\r
27\r
28class AliTRDrecoTask : public AliAnalysisTaskSE \r
29{\r
30public:\r
31 enum AliTRDrecoSteeringBits{\r
32 kMCdata = BIT(18)\r
33 ,kFriends = BIT(19)\r
34 ,kPostProcess = BIT(20)\r
35 ,kHeavyIon = BIT(21)\r
36 };\r
37 \r
38 AliTRDrecoTask();\r
39 AliTRDrecoTask(const char *name, const char *title);\r
40 virtual ~AliTRDrecoTask();\r
41 \r
42 \r
43 virtual void UserCreateOutputObjects();\r
44 virtual void UserExec(Option_t *opt);\r
45 virtual void SetDebugLevel(Int_t level);\r
46 \r
47 \r
48 Int_t GetNRefFigures() const; \r
49 const Char_t* GetNameId() const { return fNameId;}\r
50 TList* GetPlotFunctors() const { return fPlotFuncList;}\r
51 virtual Bool_t GetRefFigure(Int_t ifig);\r
52 virtual void MakeSummary();\r
53\r
54 Bool_t IsHeavyIon() const { return TestBit(kHeavyIon);};\r
55 Bool_t IsPP() const { return !TestBit(kHeavyIon);};\r
56 Bool_t HasFriends() const { return TestBit(kFriends);};\r
57 Bool_t HasMCdata() const { return TestBit(kMCdata);};\r
58 Bool_t HasPostProcess() const { return TestBit(kPostProcess);};\r
59 Bool_t HasRunTerminate() const { return fRunTerminate; }\r
60 virtual TObjArray* Histos() { return fContainer;}\r
61\r
62 virtual Bool_t Load(const Char_t *file = "AnalysisResults.root", const Char_t *dir = "TRD_Performance");\r
63 virtual Bool_t Save(TObjArray * const res);\r
64 virtual Bool_t PostProcess();\r
65 virtual Bool_t PutTrendValue(const Char_t *name, Double_t val);\r
66 virtual void SetFriends(Bool_t fr = kTRUE) {SetBit(kFriends, fr);}\r
67 virtual void SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);}\r
68 virtual void SetNameId(const Char_t *nid) {snprintf(fNameId, 10, "%s", nid);}\r
69 virtual void SetPostProcess(Bool_t pp = kTRUE) {SetBit(kPostProcess, pp);}\r
70 void SetRunTerminate(Bool_t runTerminate = kTRUE) { fRunTerminate = runTerminate; }\r
71 virtual void Terminate(Option_t *);\r
72\r
73protected:\r
74 static TTreeSRedirector* DebugStream() { return fgDebugStream;}\r
75 void InitFunctorList();\r
76 void Adjust(TF1 *f, TH1 * const h);\r
77 Bool_t HasFunctorList() const { return fPlotFuncList != NULL; }\r
78 Char_t fNameId[10]; // unique identifier of task particularity\r
79 UChar_t fNRefFigures; // no of reference figures reported by task\r
80 TObjArray *fContainer; //! container to store results\r
81 AliTRDeventInfo *fEvent; //! Event Info\r
82 TObjArray *fTracks; //! Array of tracks\r
83 const AliTRDtrackV1 *fkTrack; //! current track\r
84 const AliTRDtrackInfo::AliMCinfo *fkMC; //! MC info\r
85 const AliTRDtrackInfo::AliESDinfo *fkESD;//! ESD info\r
86\r
87private:\r
88 AliTRDrecoTask(const AliTRDrecoTask&);\r
89 AliTRDrecoTask& operator=(const AliTRDrecoTask&);\r
90\r
91 TList *fPlotFuncList;//! plot functors list\r
92 Bool_t fRunTerminate; // Switch for Terminate Function\r
93 static TList *fgTrendPoint; //! trend point\r
94 static TTreeSRedirector *fgDebugStream; //! Debug stream \r
95\r
96 ClassDef(AliTRDrecoTask, 3) // base TRD reconstruction task\r
97};\r
98\r
99#endif\r
100\r