1 #ifndef ALITRDRECOTASK_H
\r
2 #define ALITRDRECOTASK_H
\r
4 ///////////////////////////////////////////////////////
\r
6 // Basic class for Performance/Calibration TRD tasks
\r
8 // Author: Alexandru Bercuci, 10/09/2008
\r
10 //////////////////////////////////////////////////
\r
12 #ifndef ALIANALYSISTASKSE_H
\r
13 #include "AliAnalysisTaskSE.h"
\r
16 #ifndef ALITRDTRACKINFO_H
\r
17 #include "info/AliTRDtrackInfo.h"
\r
20 #ifndef ALITRDEVENTINFO_H
\r
21 #include "info/AliTRDeventInfo.h"
\r
28 class TTreeSRedirector;
\r
29 class AliTRDtrackV1;
\r
30 class AliTRDrecoTask : public AliAnalysisTaskSE
\r
32 friend class AliEveTRDTrackList;
\r
34 enum AliTRDrecoSteeringBits{
\r
37 ,kPostProcess = BIT(20)
\r
38 ,kHeavyIon = BIT(21)
\r
42 AliTRDrecoTask(const char *name, const char *title);
\r
43 virtual ~AliTRDrecoTask();
\r
46 virtual void UserCreateOutputObjects();
\r
47 virtual void UserExec(Option_t *opt);
\r
48 virtual void SetDebugLevel(Int_t level);
\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
56 void MakeDetectorPlot(Int_t ly=0, const Option_t *opt="eta");
\r
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
65 virtual Bool_t Load(const Char_t *file = "AnalysisResults.root", const Char_t *dir = "TRD_Performance");
\r
66 virtual Bool_t LoadDetectorMap(const Char_t *file = "AnalysisResults.root", const Char_t *dir = "TRD_Performance");
\r
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
78 static TTreeSRedirector* DebugStream() { return fgDebugStream;}
\r
79 virtual void InitFunctorList();
\r
80 void Adjust(TF1 *f, TH1 * const h);
\r
81 Bool_t HasFunctorList() const { return fPlotFuncList != NULL; }
\r
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
88 TObjArray *fClusters; //! Array of clusters
\r
89 const TObjArray *fkClusters; //! current detector clusters array
\r
90 const AliTRDtrackV1 *fkTrack; //! current track
\r
91 const AliTRDtrackInfo::AliMCinfo *fkMC; //! MC info
\r
92 const AliTRDtrackInfo::AliESDinfo *fkESD;//! ESD info
\r
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
99 AliTRDrecoTask(const AliTRDrecoTask&);
\r
100 AliTRDrecoTask& operator=(const AliTRDrecoTask&);
\r
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
108 ClassDef(AliTRDrecoTask, 5) // base TRD reconstruction task
\r