1 #ifndef ALITRDRECOTASK_H
2 #define ALITRDRECOTASK_H
4 ///////////////////////////////////////////////////////
6 // Basic class for Performance/Calibration TRD tasks
8 // Author: Alexandru Bercuci, 10/09/2008
10 //////////////////////////////////////////////////
12 #ifndef ALIANALYSISTASKSE_H
13 #include "AliAnalysisTaskSE.h"
16 #ifndef ALITRDTRACKINFO_H
17 #include "info/AliTRDtrackInfo.h"
24 class TTreeSRedirector;
26 class AliTRDtrackInfo;
27 class AliTRDrecoTask : public AliAnalysisTaskSE
30 enum AliTRDrecoSteeringBits{
33 ,kPostProcess = BIT(20)
37 AliTRDrecoTask(const char *name, const char *title);
38 virtual ~AliTRDrecoTask();
41 virtual void UserCreateOutputObjects() = 0;
42 virtual void UserExec(Option_t *opt);
43 virtual void SetDebugLevel(Int_t level);
46 Int_t GetNRefFigures() const { return fNRefFigures; }
47 const Char_t* GetNameId() const { return fNameId;}
48 TList* GetPlotFunctors() const { return fPlotFuncList;}
49 virtual Bool_t GetRefFigure(Int_t ifig);
51 Bool_t HasFriends() const { return TestBit(kFriends);};
52 Bool_t HasMCdata() const { return TestBit(kMCdata);};
53 Bool_t HasPostProcess() const { return TestBit(kPostProcess);};
54 virtual TObjArray* Histos() { return fContainer;}
56 virtual Bool_t Load(const Char_t *file = "AnalysisResults.root", const Char_t *dir = "TRD_Performance");
57 virtual Bool_t Save(TObjArray * const res);
58 virtual Bool_t PostProcess();
59 virtual Bool_t PutTrendValue(const Char_t *name, Double_t val);
60 virtual void SetFriends(Bool_t fr = kTRUE) {SetBit(kFriends, fr);}
61 virtual void SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);}
62 virtual void SetNameId(const Char_t *nid) {sprintf(fNameId, "%s", nid);}
63 virtual void SetPostProcess(Bool_t pp = kTRUE) {SetBit(kPostProcess, pp);}
64 virtual void Terminate(Option_t *);
67 static TTreeSRedirector* DebugStream() { return fgDebugStream;}
68 void InitFunctorList();
69 void Adjust(TF1 *f, TH1 * const h);
70 Bool_t HasFunctorList() const { return fPlotFuncList != NULL; }
71 Char_t fNameId[10]; // unique identifier of task particularity
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
80 AliTRDrecoTask(const AliTRDrecoTask&);
81 AliTRDrecoTask& operator=(const AliTRDrecoTask&);
83 TList *fPlotFuncList;//! plot functors list
84 static TList *fgTrendPoint; //! trend point
85 static TTreeSRedirector *fgDebugStream; //! Debug stream
87 ClassDef(AliTRDrecoTask, 3) // base TRD reconstruction task