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 #include "AliAnalysisTaskSE.h"
14 #ifndef ALITRDTRACKINFO_H
15 #include "info/AliTRDtrackInfo.h"
22 class TTreeSRedirector;
24 class AliTRDtrackInfo;
25 class AliTRDrecoTask : public AliAnalysisTaskSE
28 enum AliTRDrecoSteeringBits{
31 ,kPostProcess = BIT(20)
35 AliTRDrecoTask(const char *name, const char *title);
36 virtual ~AliTRDrecoTask();
39 virtual void UserCreateOutputObjects() = 0;
40 virtual void UserExec(Option_t *opt);
41 virtual void ConnectInputData(Option_t *);
42 virtual void SetDebugLevel(Int_t level);
45 Int_t GetNRefFigures() const { return fNRefFigures; }
46 TList* GetPlotFunctors() const { return fPlotFuncList;}
47 virtual Bool_t GetRefFigure(Int_t ifig);
49 Bool_t HasFriends() const { return TestBit(kFriends);};
50 Bool_t HasMCdata() const { return TestBit(kMCdata);};
51 Bool_t HasPostProcess() const { return TestBit(kPostProcess);};
52 virtual TObjArray* Histos() { return fContainer;}
54 virtual Bool_t Load(const Char_t *filename = "TRD.Performance.root");
55 virtual Bool_t Save(TObjArray * const res);
56 virtual Bool_t PostProcess();
57 virtual Bool_t PutTrendValue(const Char_t *name, Double_t val);
58 virtual void SetFriends(Bool_t fr = kTRUE) {SetBit(kFriends, fr);}
59 virtual void SetMCdata(Bool_t mc = kTRUE) {SetBit(kMCdata, mc);}
60 virtual void SetPostProcess(Bool_t pp = kTRUE) {SetBit(kPostProcess, pp);}
61 virtual void Terminate(Option_t *);
64 static TTreeSRedirector* DebugStream() { return fgDebugStream;}
65 void InitFunctorList();
66 void Adjust(TF1 *f, TH1 * const h);
68 UChar_t fNRefFigures; //! no of reference figures reported by task
69 TObjArray *fContainer; //! container to store results
70 TObjArray *fTracks; //! Array of tracks
71 const AliTRDtrackV1 *fkTrack; //! current track
72 const AliTRDtrackInfo::AliMCinfo *fkMC; //! MC info
73 const AliTRDtrackInfo::AliESDinfo *fkESD;//! ESD info
76 AliTRDrecoTask(const AliTRDrecoTask&);
77 AliTRDrecoTask& operator=(const AliTRDrecoTask&);
79 UChar_t fDebugLevel; //! Debug level
80 TList *fPlotFuncList;//! plot functors list
81 static TList *fgTrendPoint; //! trend point
82 static TTreeSRedirector *fgDebugStream; //! Debug stream
84 ClassDef(AliTRDrecoTask, 1) // base TRD reconstruction task