]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/TRD/AliTRDrecoTask.h
memory leak (Markus)
[u/mrichter/AliRoot.git] / PWG1 / TRD / AliTRDrecoTask.h
CommitLineData
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
20class TH1;
21class TF1;
22class TList;
23class TObjArray;
24class TTreeSRedirector;
25class AliTRDtrackV1;
26class AliTRDtrackInfo;
f8f46e4d 27class AliTRDrecoTask : public AliAnalysisTaskSE
1ee39b3a 28{
29public:
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
068e2c00 41 virtual void UserCreateOutputObjects();
f8f46e4d 42 virtual void UserExec(Option_t *opt);
f8f46e4d 43 virtual void SetDebugLevel(Int_t level);
44
45
45d01ff8 46 Int_t GetNRefFigures() const;
3d2a3dff 47 const Char_t* GetNameId() const { return fNameId;}
1ee39b3a 48 TList* GetPlotFunctors() const { return fPlotFuncList;}
49 virtual Bool_t GetRefFigure(Int_t ifig);
b795b480 50 virtual void MakeSummary();
1ee39b3a 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
2ba7720d 57 virtual Bool_t Load(const Char_t *file = "AnalysisResults.root", const Char_t *dir = "TRD_Performance");
1ee39b3a 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
67protected:
1ee39b3a 68 static TTreeSRedirector* DebugStream() { return fgDebugStream;}
69 void InitFunctorList();
70 void Adjust(TF1 *f, TH1 * const h);
e9098806 71 Bool_t HasFunctorList() const { return fPlotFuncList != NULL; }
72 Char_t fNameId[10]; // unique identifier of task particularity
73 UChar_t fNRefFigures; // no of reference figures reported by task
1ee39b3a 74 TObjArray *fContainer; //! container to store results
75 TObjArray *fTracks; //! Array of tracks
76 const AliTRDtrackV1 *fkTrack; //! current track
77 const AliTRDtrackInfo::AliMCinfo *fkMC; //! MC info
78 const AliTRDtrackInfo::AliESDinfo *fkESD;//! ESD info
79
80private:
81 AliTRDrecoTask(const AliTRDrecoTask&);
82 AliTRDrecoTask& operator=(const AliTRDrecoTask&);
83
afca20ef 84 TList *fPlotFuncList;//! plot functors list
85 static TList *fgTrendPoint; //! trend point
1ee39b3a 86 static TTreeSRedirector *fgDebugStream; //! Debug stream
87
e9098806 88 ClassDef(AliTRDrecoTask, 3) // base TRD reconstruction task
1ee39b3a 89};
90
91#endif
92