]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/TRD/AliTRDrecoTask.h
update detector map plot (recoTask)
[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
8a3dd7a0 20#ifndef ALITRDEVENTINFO_H\r
21#include "info/AliTRDeventInfo.h"\r
22#endif\r
23\r
94b94be0 24class TH1;\r
25class TF1;\r
26class TList;\r
27class TObjArray;\r
28class TTreeSRedirector;\r
29class AliTRDtrackV1;\r
94b94be0 30class AliTRDrecoTask : public AliAnalysisTaskSE \r
31{\r
b05a637a 32friend class AliEveTRDTrackList;\r
94b94be0 33public:\r
34 enum AliTRDrecoSteeringBits{\r
35 kMCdata = BIT(18)\r
36 ,kFriends = BIT(19)\r
37 ,kPostProcess = BIT(20)\r
38 ,kHeavyIon = BIT(21)\r
39 };\r
40 \r
41 AliTRDrecoTask();\r
42 AliTRDrecoTask(const char *name, const char *title);\r
43 virtual ~AliTRDrecoTask();\r
44 \r
45 \r
46 virtual void UserCreateOutputObjects();\r
47 virtual void UserExec(Option_t *opt);\r
48 virtual void SetDebugLevel(Int_t level);\r
49 \r
50 \r
51 Int_t GetNRefFigures() const; \r
52 const Char_t* GetNameId() const { return fNameId;}\r
53 TList* GetPlotFunctors() const { return fPlotFuncList;}\r
54 virtual Bool_t GetRefFigure(Int_t ifig);\r
55 virtual void MakeSummary();\r
5591f3d6 56 void MakeDetectorPlot(Int_t ly=0, const Option_t *opt="eta");\r
94b94be0 57 Bool_t IsHeavyIon() const { return TestBit(kHeavyIon);};\r
58 Bool_t IsPP() const { return !TestBit(kHeavyIon);};\r
59 Bool_t HasFriends() const { return TestBit(kFriends);};\r
60 Bool_t HasMCdata() const { return TestBit(kMCdata);};\r
61 Bool_t HasPostProcess() const { return TestBit(kPostProcess);};\r
62 Bool_t HasRunTerminate() const { return fRunTerminate; }\r
63 virtual TObjArray* Histos() { return fContainer;}\r
64\r
65 virtual Bool_t Load(const Char_t *file = "AnalysisResults.root", const Char_t *dir = "TRD_Performance");\r
82e6e5dc 66 virtual Bool_t LoadDetectorMap(const Char_t *file = "AnalysisResults.root", const Char_t *dir = "TRD_Performance");\r
94b94be0 67 virtual Bool_t Save(TObjArray * const res);\r
68 virtual Bool_t PostProcess();\r
69 virtual Bool_t PutTrendValue(const Char_t *name, Double_t val);\r
70 virtual void SetFriends(Bool_t fr = kTRUE) {SetBit(kFriends, fr);}\r
71 virtual void SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);}\r
72 virtual void SetNameId(const Char_t *nid) {snprintf(fNameId, 10, "%s", nid);}\r
73 virtual void SetPostProcess(Bool_t pp = kTRUE) {SetBit(kPostProcess, pp);}\r
74 void SetRunTerminate(Bool_t runTerminate = kTRUE) { fRunTerminate = runTerminate; }\r
75 virtual void Terminate(Option_t *);\r
76\r
77protected:\r
78 static TTreeSRedirector* DebugStream() { return fgDebugStream;}\r
b05a637a 79 virtual void InitFunctorList();\r
94b94be0 80 void Adjust(TF1 *f, TH1 * const h);\r
81 Bool_t HasFunctorList() const { return fPlotFuncList != NULL; }\r
82e6e5dc 82 Char_t fNameId[10]; // unique identifier of task particularity\r
83 UChar_t fNRefFigures; // no of reference figures reported by task\r
84 TObjArray *fDets; //! container to store detector position and status\r
85 TObjArray *fContainer; //! container to store results\r
86 AliTRDeventInfo *fEvent; //! Event Info\r
87 TObjArray *fTracks; //! Array of tracks\r
f073d500 88 TObjArray *fClusters; //! Array of clusters\r
89 const TObjArray *fkClusters; //! current detector clusters array\r
3ceb45ae 90 const AliTRDtrackV1 *fkTrack; //! current track\r
94b94be0 91 const AliTRDtrackInfo::AliMCinfo *fkMC; //! MC info\r
92 const AliTRDtrackInfo::AliESDinfo *fkESD;//! ESD info\r
3ceb45ae 93 Char_t fSpecies; //! species index +1 with charge sign\r
94 Float_t fPt; //! p_t of the track being analyzed\r
95 Float_t fPhi; //! phi of the track being analyzed\r
96 Float_t fEta; //! eta of the track being analyzed\r
94b94be0 97\r
98private:\r
99 AliTRDrecoTask(const AliTRDrecoTask&);\r
100 AliTRDrecoTask& operator=(const AliTRDrecoTask&);\r
101\r
f073d500 102 TList *fPlotFuncList; //! track functors list\r
103 TList *fDetFuncList; //! detector functors list\r
104 Bool_t fRunTerminate; // Switch for Terminate Function\r
105 static TList *fgTrendPoint; //! trend point\r
106 static TTreeSRedirector *fgDebugStream; //! Debug stream\r
94b94be0 107\r
82e6e5dc 108 ClassDef(AliTRDrecoTask, 5) // base TRD reconstruction task\r
94b94be0 109};\r
110\r
111#endif\r
112\r